From bed8dbcc246f137f67e6dcac3cb021187a928f84 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:30:08 +0100 Subject: [PATCH 01/12] =?UTF-8?q?create=20code=20examples=20=D7=93=D7=9D?= =?UTF-8?q?=20=D7=9B=D7=A9=D7=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 7 + .speakeasy/gen.lock | 577 + .speakeasy/gen.yaml | 3 + .../speakeasy-modifications-overlay.yaml | 464 + .speakeasy/workflow.lock | 21 +- .speakeasy/workflow.yaml | 13 +- FUNCTIONS.md | 8 + README.md | 365 +- USAGE.md | 101 + .../components/activitiesresponsedto.md | 5 + .../components/activitygraphstatesresponse.md | 6 + .../activitynotificationresponsedto.md | 6 + ...activitynotificationresponsedtochannels.md | 4 + .../components/activitystatsresponsedto.md | 5 + docs/models/components/actor.md | 13 + docs/models/components/apikey.md | 4 + docs/models/components/backoffunit.md | 4 + docs/models/components/bulktriggereventdto.md | 13 + docs/models/components/channel.md | 4 + docs/models/components/channelcredentials.md | 4 + docs/models/components/channelpreference.md | 12 +- docs/models/components/channels.md | 4 + docs/models/components/channelsettings.md | 14 +- docs/models/components/content.md | 14 + .../components/createintegrationrequestdto.md | 5 + .../components/createsubscriberrequestdto.md | 4 + .../components/digestregularmetadataunit.md | 4 + .../components/digesttimedmetadataunit.md | 4 + docs/models/components/emailblock.md | 4 + docs/models/components/emailblockstyles.md | 4 + .../components/environmentresponsedto.md | 12 +- .../components/executiondetailsresponsedto.md | 16 + .../executiondetailsresponsedtochannel.md | 4 + .../executiondetailsresponsedtostatus.md | 4 + docs/models/components/feedidentifier.md | 13 + docs/models/components/feedresponsedto.md | 5 + docs/models/components/fieldfilterpart.md | 5 + .../components/filtertopicsresponsedto.md | 11 + docs/models/components/gettopicresponsedto.md | 5 + .../components/integrationresponsedto.md | 9 + .../integrationresponsedtochannel.md | 4 + docs/models/components/markas.md | 4 + .../components/markmessageactionasseendto.md | 4 + .../components/messageactionresulttype.md | 4 + docs/models/components/messageactionstatus.md | 4 + docs/models/components/messagebutton.md | 4 + docs/models/components/messageid.md | 13 + .../components/messagemarkasrequestdto.md | 6 + .../messagemarkasrequestdtomarkas.md | 4 + docs/models/components/messageresponsedto.md | 18 + .../components/messageresponsedtochannel.md | 4 + .../components/messageresponsedtostatus.md | 4 + docs/models/components/metadata.md | 28 + docs/models/components/monthlytype.md | 4 + docs/models/components/notificationgroup.md | 5 + .../notificationgroupresponsedto.md | 5 + .../notificationstepvariantmetadata.md | 28 + docs/models/components/on.md | 4 + docs/models/components/operator.md | 4 + docs/models/components/ordinal.md | 4 + docs/models/components/ordinalvalue.md | 4 + docs/models/components/providerid.md | 17 + .../components/renametopicresponsedto.md | 5 + docs/models/components/source.md | 4 + docs/models/components/stepfilter.md | 9 + .../models/components/subscriberpayloaddto.md | 4 + .../components/subscriberresponsedto.md | 9 + docs/models/components/tenant.md | 11 + docs/models/components/textalign.md | 4 + docs/models/components/to.md | 20 + docs/models/components/topicdto.md | 5 + docs/models/components/topicsubscriberdto.md | 8 + .../components/triggereventrequestdto.md | 4 + .../components/triggereventresponsedto.md | 4 + .../triggereventtoallrequestdtoactor.md | 13 + .../triggereventtoallrequestdtotenant.md | 11 + docs/models/components/type.md | 13 + docs/models/components/unit.md | 4 + docs/models/components/unseencountresponse.md | 4 + .../updatesubscriberchannelrequestdto.md | 6 + ...tesubscriberchannelrequestdtoproviderid.md | 17 + .../components/updatesubscriberrequestdto.md | 1 + docs/models/components/value.md | 4 + docs/models/components/workflowresponse.md | 31 + docs/models/operations/channel.md | 4 + docs/models/operations/channels.md | 4 + .../eventscontrollercancelrequest.md | 4 + ...texecutiondetailsfornotificationrequest.md | 5 + ...ontrollergetwebhooksupportstatusrequest.md | 4 + ...tionscontrollerremoveintegrationrequest.md | 4 + ...ontrollersetintegrationasprimaryrequest.md | 4 + ...scontrollerupdateintegrationbyidrequest.md | 4 + .../messagescontrollerdeletemessagerequest.md | 4 + ...lerdeletemessagesbytransactionidrequest.md | 4 + ...cationscontrollergetnotificationrequest.md | 4 + ...tionscontrollerlistnotificationsrequest.md | 4 + docs/models/operations/parameter.md | 12 + docs/models/operations/queryparamchannel.md | 4 + ...criberscontrollerchataccessoauthrequest.md | 7 + ...iberscontrollerchatoauthcallbackrequest.md | 8 + ...ollerdeletesubscribercredentialsrequest.md | 5 + ...rscontrollergetnotificationsfeedrequest.md | 4 + ...trollergetnotificationsfeedresponsebody.md | 10 + ...ergetsubscriberpreferencebylevelrequest.md | 15 +- ...bscriberscontrollergetsubscriberrequest.md | 11 +- ...scriberscontrollergetunseencountrequest.md | 5 + ...trollerlistsubscriberpreferencesrequest.md | 11 +- ...riberscontrollerlistsubscribersresponse.md | 13 + ...rscontrollerlistsubscribersresponsebody.md | 13 + ...riberscontrollermarkactionasseenrequest.md | 6 + ...erscontrollermarkallunreadasreadrequest.md | 6 + ...scriberscontrollermarkmessagesasrequest.md | 9 + ...ontrollermodifysubscriberchannelrequest.md | 9 + ...riberscontrollerremovesubscriberrequest.md | 4 + ...ontrollerupdatesubscriberchannelrequest.md | 9 + ...pdatesubscriberglobalpreferencesrequest.md | 4 + ...rollerupdatesubscriberonlineflagrequest.md | 4 + ...rollerupdatesubscriberpreferencerequest.md | 4 + ...riberscontrollerupdatesubscriberrequest.md | 4 + ...picscontrollergettopicsubscriberrequest.md | 4 + docs/sdks/authentication/README.md | 106 +- docs/sdks/environments/README.md | 90 +- docs/sdks/executiondetails/README.md | 47 +- docs/sdks/integrationswebhooks/README.md | 116 + docs/sdks/notifications/README.md | 152 +- .../README.md | 30 +- docs/sdks/novu/README.md | 328 +- docs/sdks/novumessages/README.md | 60 +- .../README.md | 35 +- .../README.md | 163 +- docs/sdks/preferences/README.md | 146 +- docs/sdks/properties/README.md | 48 +- docs/sdks/stats/README.md | 47 +- .../README.md | 130 +- docs/sdks/subscribersnotifications/README.md | 128 + .../README.md | 60 +- sources/code-samples.json | 333 + sources/json-development.json | 12699 ++++++++++------ src/funcs/cancel.ts | 94 + src/funcs/environmentsApiKeysList.ts | 70 + src/funcs/environmentsGetAll.ts | 115 + src/funcs/environmentsGetCurrent.ts | 114 + src/funcs/executionDetailsGet.ts | 149 + src/funcs/integrationsCreate.ts | 85 + src/funcs/integrationsDelete.ts | 95 + src/funcs/integrationsList.ts | 70 + src/funcs/integrationsListActive.ts | 70 + src/funcs/integrationsSetPrimary.ts | 147 + src/funcs/integrationsUpdate.ts | 101 + src/funcs/integrationsWebhooksGetStatus.ts | 151 + src/funcs/messagesDelete.ts | 96 + src/funcs/messagesDeleteByTransactionId.ts | 105 + src/funcs/messagesGet.ts | 145 + src/funcs/notificationsGet.ts | 143 + src/funcs/notificationsList.ts | 97 + src/funcs/notificationsStatsGet.ts | 114 + .../subscribersAuthenticationHandleOauth.ts | 152 + ...ribersAuthenticationHandleOauthCallback.ts | 156 + src/funcs/subscribersCreate.ts | 85 + src/funcs/subscribersCreateBulk.ts | 84 + src/funcs/subscribersCredentialsAppend.ts | 109 + src/funcs/subscribersCredentialsDelete.ts | 102 + src/funcs/subscribersCredentialsUpdate.ts | 105 + src/funcs/subscribersDelete.ts | 95 + src/funcs/subscribersGet.ts | 154 + src/funcs/subscribersGetAll.ts | 202 + src/funcs/subscribersMessagesMark.ts | 151 + src/funcs/subscribersMessagesMarkAll.ts | 102 + src/funcs/subscribersMessagesUpdateAsSeen.ts | 103 + src/funcs/subscribersNotificationsGetFeed.ts | 153 + .../subscribersNotificationsGetUnseenCount.ts | 147 + src/funcs/subscribersPreferencesGet.ts | 158 + src/funcs/subscribersPreferencesGetByLevel.ts | 156 + src/funcs/subscribersPreferencesUpdate.ts | 102 + .../subscribersPreferencesUpdateGlobal.ts | 108 + ...subscribersPropertiesUpdateOnlineStatus.ts | 159 + src/funcs/subscribersUpdate.ts | 100 + src/funcs/topicsCreate.ts | 84 + src/funcs/topicsDelete.ts | 94 + src/funcs/topicsGet.ts | 145 + src/funcs/topicsGetAll.ts | 141 + src/funcs/topicsRename.ts | 99 + src/funcs/topicsSubscribersAdd.ts | 153 + src/funcs/topicsSubscribersCheck.ts | 156 + src/funcs/topicsSubscribersRemove.ts | 155 + src/funcs/trigger.ts | 84 + src/funcs/triggerBroadcast.ts | 89 + src/funcs/triggerBulk.ts | 84 + src/funcs/workflowGroupsCreate.ts | 85 + src/funcs/workflowGroupsDelete.ts | 96 + src/funcs/workflowGroupsGet.ts | 148 + src/funcs/workflowGroupsList.ts | 70 + src/funcs/workflowGroupsUpdate.ts | 103 + src/hooks/types.ts | 10 + src/lib/config.ts | 5 + src/lib/matchers.ts | 4 + src/lib/primitives.ts | 20 + src/lib/retries.ts | 94 +- src/lib/sdks.ts | 90 + src/lib/security.ts | 64 + src/sdk/authentication.ts | 21 + src/sdk/credentials.ts | 26 + src/sdk/environments.ts | 23 + src/sdk/executiondetails.ts | 12 + src/sdk/integrations.ts | 86 + src/sdk/integrationswebhooks.ts | 26 + src/sdk/messages.ts | 12 + src/sdk/notifications.ts | 33 + src/sdk/notificationsstats.ts | 24 + src/sdk/novumessages.ts | 20 + src/sdk/novusubscribersnotifications.ts | 24 + src/sdk/novutopicssubscribers.ts | 69 + src/sdk/preferences.ts | 32 + src/sdk/properties.ts | 17 + src/sdk/sdk.ts | 143 + src/sdk/stats.ts | 13 + src/sdk/subscribers.ts | 79 + src/sdk/subscribersmessages.ts | 42 + src/sdk/subscribersnotifications.ts | 25 + src/sdk/subscriberspreferences.ts | 27 + src/sdk/topics.ts | 61 + src/sdk/workflowgroups.ts | 42 + 222 files changed, 19612 insertions(+), 5057 deletions(-) create mode 100644 .speakeasy/speakeasy-modifications-overlay.yaml create mode 100644 docs/models/components/providerid.md create mode 100644 docs/models/components/updatesubscriberchannelrequestdtoproviderid.md create mode 100644 docs/sdks/integrationswebhooks/README.md rename docs/sdks/{webhooks => notificationsstats}/README.md (85%) rename docs/sdks/{variables => novusubscribersnotifications}/README.md (71%) rename docs/sdks/{novusubscribers => novutopicssubscribers}/README.md (68%) rename docs/sdks/{novunotifications => subscribersmessages}/README.md (70%) create mode 100644 docs/sdks/subscribersnotifications/README.md rename docs/sdks/{status => subscriberspreferences}/README.md (76%) create mode 100644 src/funcs/environmentsGetAll.ts create mode 100644 src/funcs/environmentsGetCurrent.ts create mode 100644 src/funcs/executionDetailsGet.ts create mode 100644 src/funcs/integrationsSetPrimary.ts create mode 100644 src/funcs/integrationsWebhooksGetStatus.ts create mode 100644 src/funcs/messagesGet.ts create mode 100644 src/funcs/notificationsGet.ts create mode 100644 src/funcs/notificationsStatsGet.ts create mode 100644 src/funcs/subscribersAuthenticationHandleOauth.ts create mode 100644 src/funcs/subscribersAuthenticationHandleOauthCallback.ts create mode 100644 src/funcs/subscribersGet.ts create mode 100644 src/funcs/subscribersGetAll.ts create mode 100644 src/funcs/subscribersMessagesMark.ts create mode 100644 src/funcs/subscribersNotificationsGetFeed.ts create mode 100644 src/funcs/subscribersNotificationsGetUnseenCount.ts create mode 100644 src/funcs/subscribersPreferencesGet.ts create mode 100644 src/funcs/subscribersPreferencesGetByLevel.ts create mode 100644 src/funcs/subscribersPropertiesUpdateOnlineStatus.ts create mode 100644 src/funcs/topicsGet.ts create mode 100644 src/funcs/topicsGetAll.ts create mode 100644 src/funcs/topicsSubscribersAdd.ts create mode 100644 src/funcs/topicsSubscribersCheck.ts create mode 100644 src/funcs/topicsSubscribersRemove.ts create mode 100644 src/funcs/workflowGroupsGet.ts create mode 100644 src/sdk/integrationswebhooks.ts create mode 100644 src/sdk/notificationsstats.ts create mode 100644 src/sdk/novusubscribersnotifications.ts create mode 100644 src/sdk/novutopicssubscribers.ts create mode 100644 src/sdk/subscribersmessages.ts create mode 100644 src/sdk/subscribersnotifications.ts create mode 100644 src/sdk/subscriberspreferences.ts diff --git a/.gitignore b/.gitignore index 09c4b62a..da4f0964 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,17 @@ +<<<<<<< Updated upstream /__tests__ +======= +>>>>>>> Stashed changes /funcs /core.* /esm /dist /.tshy /.tshy-* +<<<<<<< Updated upstream +======= +/__tests__ +>>>>>>> Stashed changes /models /models/errors /types diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index d221b422..c501572a 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,6 +1,7 @@ lockVersion: 2.0.0 id: f50499c4-d106-4975-983f-ead3a386ec53 management: +<<<<<<< Updated upstream docChecksum: d35f4f2287646adf6b222b56b786719d docVersion: "1.0" speakeasyVersion: 1.399.2 @@ -9,11 +10,22 @@ management: configChecksum: 3a75dd73a304fb0621acb8c3a38cdf41 repoURL: https://github.com/novuhq/novu-ts.git installationURL: https://github.com/novuhq/novu-ts +======= + docChecksum: 04230eaab3e3bff1a8783517be37ad60 + docVersion: "1.0" + speakeasyVersion: 1.444.1 + generationVersion: 2.461.4 + releaseVersion: 0.0.1-alpha.11 + configChecksum: 818568f42529f4a1a2a504b605a99baf + repoURL: https://github.com/novuhq/novu-node.git + installationURL: https://github.com/novuhq/novu-node +>>>>>>> Stashed changes published: true features: typescript: additionalDependencies: 0.1.0 constsAndDefaults: 0.1.11 +<<<<<<< Updated upstream core: 3.17.4 defaultEnabledRetries: 0.1.0 deprecations: 2.81.1 @@ -21,6 +33,15 @@ features: envVarSecurityUsage: 0.1.1 examples: 2.81.4 flattening: 2.81.1 +======= + core: 3.18.6 + defaultEnabledRetries: 0.1.0 + deprecations: 2.81.1 + enumUnions: 0.1.0 + envVarSecurityUsage: 0.1.2 + examples: 2.81.4 + flattening: 2.82.0 +>>>>>>> Stashed changes globalSecurity: 2.82.11 globalSecurityCallbacks: 0.1.0 globalSecurityFlattening: 0.1.0 @@ -28,11 +49,20 @@ features: groups: 2.81.2 nameOverrides: 2.81.2 nullables: 0.1.0 +<<<<<<< Updated upstream pagination: 2.82.6 responseFormat: 0.2.3 retries: 2.83.0 sdkHooks: 0.1.0 unions: 2.85.7 +======= + pagination: 2.82.7 + responseFormat: 0.2.3 + retries: 2.83.0 + sdkHooks: 0.2.0 + tests: 0.7.0 + unions: 2.85.8 +>>>>>>> Stashed changes generatedFiles: - .eslintrc.cjs - .gitattributes @@ -53,6 +83,7 @@ generatedFiles: - docs/models/components/addsubscribersrequestdto.md - docs/models/components/apikey.md - docs/models/components/backoffunit.md +<<<<<<< Updated upstream - docs/models/components/bulkapplychangedto.md - docs/models/components/bulksubscribercreatedto.md - docs/models/components/bulktriggereventdto.md @@ -64,10 +95,18 @@ generatedFiles: - docs/models/components/channelcredentials.md - docs/models/components/channelpreference.md - docs/models/components/channelpreferencetype.md +======= + - docs/models/components/bulksubscribercreatedto.md + - docs/models/components/bulktriggereventdto.md + - docs/models/components/channel.md + - docs/models/components/channelcredentials.md + - docs/models/components/channelpreference.md +>>>>>>> Stashed changes - docs/models/components/channels.md - docs/models/components/channelsettings.md - docs/models/components/content.md - docs/models/components/controls.md +<<<<<<< Updated upstream - docs/models/components/createfeedrequestdto.md - docs/models/components/createintegrationrequestdto.md - docs/models/components/createlayoutresponsedto.md @@ -86,6 +125,16 @@ generatedFiles: - docs/models/components/data.md - docs/models/components/databooleandto.md - docs/models/components/datanumberdto.md +======= + - docs/models/components/createintegrationrequestdto.md + - docs/models/components/createnotificationgrouprequestdto.md + - docs/models/components/createsubscriberrequestdto.md + - docs/models/components/createtopicrequestdto.md + - docs/models/components/createtopicresponsedto.md + - docs/models/components/credentialsdto.md + - docs/models/components/data.md + - docs/models/components/databooleandto.md +>>>>>>> Stashed changes - docs/models/components/delayregularmetadata.md - docs/models/components/delayregularmetadatatype.md - docs/models/components/delayscheduledmetadata.md @@ -101,7 +150,10 @@ generatedFiles: - docs/models/components/digesttimedmetadata.md - docs/models/components/digesttimedmetadatatype.md - docs/models/components/digesttimedmetadataunit.md +<<<<<<< Updated upstream - docs/models/components/direction.md +======= +>>>>>>> Stashed changes - docs/models/components/emailblock.md - docs/models/components/emailblockstyles.md - docs/models/components/emailblocktype.md @@ -114,11 +166,15 @@ generatedFiles: - docs/models/components/feedresponsedto.md - docs/models/components/fieldfilterpart.md - docs/models/components/filtertopicsresponsedto.md +<<<<<<< Updated upstream - docs/models/components/getlayoutresponsedto.md - docs/models/components/getlayoutresponsedtochannel.md - docs/models/components/getsubscriberpreferencesresponsedto.md - docs/models/components/gettenantresponsedto.md - docs/models/components/gettenantresponsedtodata.md +======= + - docs/models/components/getsubscriberpreferencesresponsedto.md +>>>>>>> Stashed changes - docs/models/components/gettopicresponsedto.md - docs/models/components/integrationresponsedto.md - docs/models/components/integrationresponsedtochannel.md @@ -161,15 +217,23 @@ generatedFiles: - docs/models/components/operator.md - docs/models/components/ordinal.md - docs/models/components/ordinalvalue.md +<<<<<<< Updated upstream - docs/models/components/organizationbrandingresponsedto.md - docs/models/components/organizationresponsedto.md +======= +>>>>>>> Stashed changes - docs/models/components/overrides.md - docs/models/components/parentid.md - docs/models/components/payload.md - docs/models/components/preference.md - docs/models/components/preferencechannels.md +<<<<<<< Updated upstream - docs/models/components/removesubscribersrequestdto.md - docs/models/components/renameorganizationdto.md +======= + - docs/models/components/providerid.md + - docs/models/components/removesubscribersrequestdto.md +>>>>>>> Stashed changes - docs/models/components/renametopicrequestdto.md - docs/models/components/renametopicresponsedto.md - docs/models/components/replycallback.md @@ -181,7 +245,10 @@ generatedFiles: - docs/models/components/subscriberpayloaddto.md - docs/models/components/subscriberpayloaddtodata.md - docs/models/components/subscriberresponsedto.md +<<<<<<< Updated upstream - docs/models/components/system.md +======= +>>>>>>> Stashed changes - docs/models/components/templateresponse.md - docs/models/components/tenant.md - docs/models/components/tenantpayloaddto.md @@ -194,7 +261,10 @@ generatedFiles: - docs/models/components/topicpayloaddto.md - docs/models/components/topicpayloaddtotype.md - docs/models/components/topicsubscriberdto.md +<<<<<<< Updated upstream - docs/models/components/translations.md +======= +>>>>>>> Stashed changes - docs/models/components/triggereventrequestdto.md - docs/models/components/triggereventrequestdtooverrides.md - docs/models/components/triggereventrequestdtopayload.md @@ -208,18 +278,25 @@ generatedFiles: - docs/models/components/type.md - docs/models/components/unit.md - docs/models/components/unseencountresponse.md +<<<<<<< Updated upstream - docs/models/components/updatebrandingdetailsdto.md - docs/models/components/updateintegrationrequestdto.md - docs/models/components/updatelayoutrequestdto.md - docs/models/components/updatelayoutresponsedto.md - docs/models/components/updatelayoutresponsedtochannel.md - docs/models/components/updatesubscriberchannelrequestdto.md +======= + - docs/models/components/updateintegrationrequestdto.md + - docs/models/components/updatesubscriberchannelrequestdto.md + - docs/models/components/updatesubscriberchannelrequestdtoproviderid.md +>>>>>>> Stashed changes - docs/models/components/updatesubscriberglobalpreferencesrequestdto.md - docs/models/components/updatesubscriberonlineflagrequestdto.md - docs/models/components/updatesubscriberpreferencerequestdto.md - docs/models/components/updatesubscriberpreferenceresponsedto.md - docs/models/components/updatesubscriberrequestdto.md - docs/models/components/updatesubscriberrequestdtodata.md +<<<<<<< Updated upstream - docs/models/components/updatetenantrequestdto.md - docs/models/components/updatetenantrequestdtodata.md - docs/models/components/updatetenantresponsedto.md @@ -229,27 +306,39 @@ generatedFiles: - docs/models/components/value.md - docs/models/components/variables.md - docs/models/components/variablesresponsedto.md +======= + - docs/models/components/value.md +>>>>>>> Stashed changes - docs/models/components/weekdays.md - docs/models/components/workflowintegrationstatus.md - docs/models/components/workflowresponse.md - docs/models/components/workflowresponsedata.md +<<<<<<< Updated upstream - docs/models/components/workflowsresponsedto.md - docs/models/operations/changescontrollerapplydiffrequest.md - docs/models/operations/changescontrollergetchangesrequest.md +======= +>>>>>>> Stashed changes - docs/models/operations/channel.md - docs/models/operations/channels.md - docs/models/operations/eventscontrollercancelrequest.md - docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md +<<<<<<< Updated upstream - docs/models/operations/feedscontrollerdeletefeedbyidrequest.md +======= +>>>>>>> Stashed changes - docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md - docs/models/operations/integrationscontrollerremoveintegrationrequest.md - docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md - docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md +<<<<<<< Updated upstream - docs/models/operations/layoutscontrollerdeletelayoutrequest.md - docs/models/operations/layoutscontrollergetlayoutrequest.md - docs/models/operations/layoutscontrollerlistlayoutsrequest.md - docs/models/operations/layoutscontrollersetdefaultlayoutrequest.md - docs/models/operations/layoutscontrollerupdatelayoutrequest.md +======= +>>>>>>> Stashed changes - docs/models/operations/messagescontrollerdeletemessagerequest.md - docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md - docs/models/operations/messagescontrollergetmessagesrequest.md @@ -259,7 +348,10 @@ generatedFiles: - docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md - docs/models/operations/notificationscontrollergetnotificationrequest.md - docs/models/operations/notificationscontrollerlistnotificationsrequest.md +<<<<<<< Updated upstream - docs/models/operations/orderby.md +======= +>>>>>>> Stashed changes - docs/models/operations/parameter.md - docs/models/operations/queryparamchannel.md - docs/models/operations/subscriberscontrollerchataccessoauthrequest.md @@ -285,12 +377,15 @@ generatedFiles: - docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md - docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md - docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md +<<<<<<< Updated upstream - docs/models/operations/tenantcontrollergettenantbyidrequest.md - docs/models/operations/tenantcontrollerlisttenantsrequest.md - docs/models/operations/tenantcontrollerlisttenantsresponse.md - docs/models/operations/tenantcontrollerlisttenantsresponsebody.md - docs/models/operations/tenantcontrollerremovetenantrequest.md - docs/models/operations/tenantcontrollerupdatetenantrequest.md +======= +>>>>>>> Stashed changes - docs/models/operations/topicscontrolleraddsubscribersrequest.md - docs/models/operations/topicscontrollerdeletetopicrequest.md - docs/models/operations/topicscontrollergettopicrequest.md @@ -298,6 +393,7 @@ generatedFiles: - docs/models/operations/topicscontrollerlisttopicsrequest.md - docs/models/operations/topicscontrollerremovesubscribersrequest.md - docs/models/operations/topicscontrollerrenametopicrequest.md +<<<<<<< Updated upstream - docs/models/operations/workflowcontrollerdeleteworkflowbyidrequest.md - docs/models/operations/workflowcontrollergetworkflowbyidrequest.md - docs/models/operations/workflowcontrollerlistworkflowsrequest.md @@ -330,10 +426,36 @@ generatedFiles: - docs/sdks/webhooks/README.md - docs/sdks/workflowgroups/README.md - docs/sdks/workflows/README.md +======= + - docs/sdks/apikeys/README.md + - docs/sdks/authentication/README.md + - docs/sdks/credentials/README.md + - docs/sdks/environments/README.md + - docs/sdks/executiondetails/README.md + - docs/sdks/integrations/README.md + - docs/sdks/integrationswebhooks/README.md + - docs/sdks/messages/README.md + - docs/sdks/notifications/README.md + - docs/sdks/notificationsstats/README.md + - docs/sdks/novu/README.md + - docs/sdks/novumessages/README.md + - docs/sdks/novusubscribersnotifications/README.md + - docs/sdks/novutopicssubscribers/README.md + - docs/sdks/preferences/README.md + - docs/sdks/properties/README.md + - docs/sdks/stats/README.md + - docs/sdks/subscribers/README.md + - docs/sdks/subscribersmessages/README.md + - docs/sdks/subscribersnotifications/README.md + - docs/sdks/subscriberspreferences/README.md + - docs/sdks/topics/README.md + - docs/sdks/workflowgroups/README.md +>>>>>>> Stashed changes - jsr.json - package.json - src/core.ts - src/funcs/cancel.ts +<<<<<<< Updated upstream - src/funcs/changesApply.ts - src/funcs/changesApplyBulk.ts - src/funcs/changesCount.ts @@ -345,10 +467,17 @@ generatedFiles: - src/funcs/feedsCreate.ts - src/funcs/feedsDelete.ts - src/funcs/feedsRetrieve.ts +======= + - src/funcs/environmentsApiKeysList.ts + - src/funcs/environmentsGetAll.ts + - src/funcs/environmentsGetCurrent.ts + - src/funcs/executionDetailsGet.ts +>>>>>>> Stashed changes - src/funcs/integrationsCreate.ts - src/funcs/integrationsDelete.ts - src/funcs/integrationsList.ts - src/funcs/integrationsListActive.ts +<<<<<<< Updated upstream - src/funcs/integrationsSetAsPrimary.ts - src/funcs/integrationsUpdate.ts - src/funcs/integrationsWebhooksRetrieve.ts @@ -370,12 +499,26 @@ generatedFiles: - src/funcs/organizationsUpdate.ts - src/funcs/subscribersAuthenticationChatAccessOauth.ts - src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts +======= + - src/funcs/integrationsSetPrimary.ts + - src/funcs/integrationsUpdate.ts + - src/funcs/integrationsWebhooksGetStatus.ts + - src/funcs/messagesDelete.ts + - src/funcs/messagesDeleteByTransactionId.ts + - src/funcs/messagesGet.ts + - src/funcs/notificationsGet.ts + - src/funcs/notificationsList.ts + - src/funcs/notificationsStatsGet.ts + - src/funcs/subscribersAuthenticationHandleOauth.ts + - src/funcs/subscribersAuthenticationHandleOauthCallback.ts +>>>>>>> Stashed changes - src/funcs/subscribersCreate.ts - src/funcs/subscribersCreateBulk.ts - src/funcs/subscribersCredentialsAppend.ts - src/funcs/subscribersCredentialsDelete.ts - src/funcs/subscribersCredentialsUpdate.ts - src/funcs/subscribersDelete.ts +<<<<<<< Updated upstream - src/funcs/subscribersList.ts - src/funcs/subscribersMessagesMarkAll.ts - src/funcs/subscribersMessagesMarkAllAs.ts @@ -402,11 +545,35 @@ generatedFiles: - src/funcs/topicsSubscribersAssign.ts - src/funcs/topicsSubscribersDelete.ts - src/funcs/topicsSubscribersRetrieve.ts +======= + - src/funcs/subscribersGet.ts + - src/funcs/subscribersGetAll.ts + - src/funcs/subscribersMessagesMark.ts + - src/funcs/subscribersMessagesMarkAll.ts + - src/funcs/subscribersMessagesUpdateAsSeen.ts + - src/funcs/subscribersNotificationsGetFeed.ts + - src/funcs/subscribersNotificationsGetUnseenCount.ts + - src/funcs/subscribersPreferencesGet.ts + - src/funcs/subscribersPreferencesGetByLevel.ts + - src/funcs/subscribersPreferencesUpdate.ts + - src/funcs/subscribersPreferencesUpdateGlobal.ts + - src/funcs/subscribersPropertiesUpdateOnlineStatus.ts + - src/funcs/subscribersUpdate.ts + - src/funcs/topicsCreate.ts + - src/funcs/topicsDelete.ts + - src/funcs/topicsGet.ts + - src/funcs/topicsGetAll.ts + - src/funcs/topicsRename.ts + - src/funcs/topicsSubscribersAdd.ts + - src/funcs/topicsSubscribersCheck.ts + - src/funcs/topicsSubscribersRemove.ts +>>>>>>> Stashed changes - src/funcs/trigger.ts - src/funcs/triggerBroadcast.ts - src/funcs/triggerBulk.ts - src/funcs/workflowGroupsCreate.ts - src/funcs/workflowGroupsDelete.ts +<<<<<<< Updated upstream - src/funcs/workflowGroupsList.ts - src/funcs/workflowGroupsRetrieve.ts - src/funcs/workflowGroupsUpdate.ts @@ -417,6 +584,11 @@ generatedFiles: - src/funcs/workflowsStatusUpdate.ts - src/funcs/workflowsUpdate.ts - src/funcs/workflowsVariablesRetrieve.ts +======= + - src/funcs/workflowGroupsGet.ts + - src/funcs/workflowGroupsList.ts + - src/funcs/workflowGroupsUpdate.ts +>>>>>>> Stashed changes - src/hooks/hooks.ts - src/hooks/index.ts - src/hooks/types.ts @@ -444,6 +616,7 @@ generatedFiles: - src/models/components/activitystatsresponsedto.ts - src/models/components/addsubscribersrequestdto.ts - src/models/components/apikey.ts +<<<<<<< Updated upstream - src/models/components/bulkapplychangedto.ts - src/models/components/bulksubscribercreatedto.ts - src/models/components/bulktriggereventdto.ts @@ -466,6 +639,20 @@ generatedFiles: - src/models/components/credentialsdto.ts - src/models/components/databooleandto.ts - src/models/components/datanumberdto.ts +======= + - src/models/components/bulksubscribercreatedto.ts + - src/models/components/bulktriggereventdto.ts + - src/models/components/channelcredentials.ts + - src/models/components/channelpreference.ts + - src/models/components/channelsettings.ts + - src/models/components/createintegrationrequestdto.ts + - src/models/components/createnotificationgrouprequestdto.ts + - src/models/components/createsubscriberrequestdto.ts + - src/models/components/createtopicrequestdto.ts + - src/models/components/createtopicresponsedto.ts + - src/models/components/credentialsdto.ts + - src/models/components/databooleandto.ts +>>>>>>> Stashed changes - src/models/components/delayregularmetadata.ts - src/models/components/delayscheduledmetadata.ts - src/models/components/deletemessageresponsedto.ts @@ -480,9 +667,13 @@ generatedFiles: - src/models/components/feedresponsedto.ts - src/models/components/fieldfilterpart.ts - src/models/components/filtertopicsresponsedto.ts +<<<<<<< Updated upstream - src/models/components/getlayoutresponsedto.ts - src/models/components/getsubscriberpreferencesresponsedto.ts - src/models/components/gettenantresponsedto.ts +======= + - src/models/components/getsubscriberpreferencesresponsedto.ts +>>>>>>> Stashed changes - src/models/components/gettopicresponsedto.ts - src/models/components/index.ts - src/models/components/integrationresponsedto.ts @@ -503,12 +694,18 @@ generatedFiles: - src/models/components/notificationstepvariant.ts - src/models/components/notificationtrigger.ts - src/models/components/notificationtriggervariable.ts +<<<<<<< Updated upstream - src/models/components/organizationbrandingresponsedto.ts - src/models/components/organizationresponsedto.ts - src/models/components/preference.ts - src/models/components/preferencechannels.ts - src/models/components/removesubscribersrequestdto.ts - src/models/components/renameorganizationdto.ts +======= + - src/models/components/preference.ts + - src/models/components/preferencechannels.ts + - src/models/components/removesubscribersrequestdto.ts +>>>>>>> Stashed changes - src/models/components/renametopicrequestdto.ts - src/models/components/renametopicresponsedto.ts - src/models/components/security.ts @@ -525,41 +722,57 @@ generatedFiles: - src/models/components/triggereventresponsedto.ts - src/models/components/triggereventtoallrequestdto.ts - src/models/components/unseencountresponse.ts +<<<<<<< Updated upstream - src/models/components/updatebrandingdetailsdto.ts - src/models/components/updateintegrationrequestdto.ts - src/models/components/updatelayoutrequestdto.ts - src/models/components/updatelayoutresponsedto.ts +======= + - src/models/components/updateintegrationrequestdto.ts +>>>>>>> Stashed changes - src/models/components/updatesubscriberchannelrequestdto.ts - src/models/components/updatesubscriberglobalpreferencesrequestdto.ts - src/models/components/updatesubscriberonlineflagrequestdto.ts - src/models/components/updatesubscriberpreferencerequestdto.ts - src/models/components/updatesubscriberpreferenceresponsedto.ts - src/models/components/updatesubscriberrequestdto.ts +<<<<<<< Updated upstream - src/models/components/updatetenantrequestdto.ts - src/models/components/updatetenantresponsedto.ts - src/models/components/updateworkflowrequestdto.ts - src/models/components/variablesresponsedto.ts - src/models/components/workflowresponse.ts - src/models/components/workflowsresponsedto.ts +======= + - src/models/components/workflowresponse.ts +>>>>>>> Stashed changes - src/models/errors/httpclienterrors.ts - src/models/errors/index.ts - src/models/errors/sdkerror.ts - src/models/errors/sdkvalidationerror.ts +<<<<<<< Updated upstream - src/models/operations/changescontrollerapplydiff.ts - src/models/operations/changescontrollergetchanges.ts - src/models/operations/eventscontrollercancel.ts - src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts - src/models/operations/feedscontrollerdeletefeedbyid.ts +======= + - src/models/operations/eventscontrollercancel.ts + - src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts +>>>>>>> Stashed changes - src/models/operations/index.ts - src/models/operations/integrationscontrollergetwebhooksupportstatus.ts - src/models/operations/integrationscontrollerremoveintegration.ts - src/models/operations/integrationscontrollersetintegrationasprimary.ts - src/models/operations/integrationscontrollerupdateintegrationbyid.ts +<<<<<<< Updated upstream - src/models/operations/layoutscontrollerdeletelayout.ts - src/models/operations/layoutscontrollergetlayout.ts - src/models/operations/layoutscontrollerlistlayouts.ts - src/models/operations/layoutscontrollersetdefaultlayout.ts - src/models/operations/layoutscontrollerupdatelayout.ts +======= +>>>>>>> Stashed changes - src/models/operations/messagescontrollerdeletemessage.ts - src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts - src/models/operations/messagescontrollergetmessages.ts @@ -588,10 +801,13 @@ generatedFiles: - src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts - src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts - src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts +<<<<<<< Updated upstream - src/models/operations/tenantcontrollergettenantbyid.ts - src/models/operations/tenantcontrollerlisttenants.ts - src/models/operations/tenantcontrollerremovetenant.ts - src/models/operations/tenantcontrollerupdatetenant.ts +======= +>>>>>>> Stashed changes - src/models/operations/topicscontrolleraddsubscribers.ts - src/models/operations/topicscontrollerdeletetopic.ts - src/models/operations/topicscontrollergettopic.ts @@ -599,6 +815,7 @@ generatedFiles: - src/models/operations/topicscontrollerlisttopics.ts - src/models/operations/topicscontrollerremovesubscribers.ts - src/models/operations/topicscontrollerrenametopic.ts +<<<<<<< Updated upstream - src/models/operations/workflowcontrollerdeleteworkflowbyid.ts - src/models/operations/workflowcontrollergetworkflowbyid.ts - src/models/operations/workflowcontrollerlistworkflows.ts @@ -620,10 +837,27 @@ generatedFiles: - src/sdk/novunotifications.ts - src/sdk/novusubscribers.ts - src/sdk/organizations.ts +======= + - src/sdk/apikeys.ts + - src/sdk/authentication.ts + - src/sdk/credentials.ts + - src/sdk/environments.ts + - src/sdk/executiondetails.ts + - src/sdk/index.ts + - src/sdk/integrations.ts + - src/sdk/integrationswebhooks.ts + - src/sdk/messages.ts + - src/sdk/notifications.ts + - src/sdk/notificationsstats.ts + - src/sdk/novumessages.ts + - src/sdk/novusubscribersnotifications.ts + - src/sdk/novutopicssubscribers.ts +>>>>>>> Stashed changes - src/sdk/preferences.ts - src/sdk/properties.ts - src/sdk/sdk.ts - src/sdk/stats.ts +<<<<<<< Updated upstream - src/sdk/status.ts - src/sdk/subscribers.ts - src/sdk/tenants.ts @@ -632,6 +866,14 @@ generatedFiles: - src/sdk/webhooks.ts - src/sdk/workflowgroups.ts - src/sdk/workflows.ts +======= + - src/sdk/subscribers.ts + - src/sdk/subscribersmessages.ts + - src/sdk/subscribersnotifications.ts + - src/sdk/subscriberspreferences.ts + - src/sdk/topics.ts + - src/sdk/workflowgroups.ts +>>>>>>> Stashed changes - src/types/blobs.ts - src/types/constdatetime.ts - src/types/enums.ts @@ -646,6 +888,7 @@ examples: speakeasy-default-events-controller-cancel: parameters: path: +<<<<<<< Updated upstream transactionId: "" responses: "200": @@ -657,6 +900,19 @@ examples: responses: "201": application/json: {"acknowledged": false, "status": "no_workflow_active_steps_defined"} +======= + transactionId: "" + responses: + "200": + application/json: {"data": true} + EventsController_trigger: + speakeasy-default-events-controller-trigger: + requestBody: + application/json: {"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"topicKey": "", "type": "Topic"}]} + responses: + "201": + application/json: {"acknowledged": true, "status": "processed"} +>>>>>>> Stashed changes EventsController_broadcastEventToAll: speakeasy-default-events-controller-broadcast-event-to-all: requestBody: @@ -667,6 +923,7 @@ examples: EventsController_triggerBulk: speakeasy-default-events-controller-trigger-bulk: requestBody: +<<<<<<< Updated upstream application/json: {"events": []} responses: "201": @@ -714,10 +971,32 @@ examples: responses: "200": application/json: [] +======= + application/json: {"events": [{"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"subscriberId": ""}]}, {"name": "workflow_identifier", "to": []}, {"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"topicKey": "", "type": "Topic"}]}]} + responses: + "201": + application/json: [{"acknowledged": true, "status": "error"}, {"acknowledged": true, "status": "no_workflow_active_steps_defined"}, {"acknowledged": true, "status": "trigger_not_active"}] + EnvironmentsControllerV1_listMyEnvironments: + speakeasy-default-environments-controller-v1-list-my-environments: + responses: + "200": + application/json: [{"_organizationId": "", "_parentId": "", "identifier": "", "name": ""}, {"_organizationId": "", "_parentId": "", "identifier": "", "name": ""}, {"_organizationId": "", "_parentId": "", "identifier": "", "name": ""}] + EnvironmentsControllerV1_getCurrentEnvironment: + speakeasy-default-environments-controller-v1-get-current-environment: + responses: + "200": + application/json: {"_organizationId": "", "_parentId": "", "identifier": "", "name": ""} + EnvironmentsControllerV1_listOrganizationApiKeys: + speakeasy-default-environments-controller-v1-list-organization-api-keys: + responses: + "200": + application/json: [{"_userId": "", "key": ""}, {"_userId": "", "key": ""}, {"_userId": "", "key": ""}] +>>>>>>> Stashed changes ExecutionDetailsController_getExecutionDetailsForNotification: speakeasy-default-execution-details-controller-get-execution-details-for-notification: parameters: query: +<<<<<<< Updated upstream notificationId: "" subscriberId: "" responses: @@ -750,44 +1029,88 @@ examples: responses: "201": application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "chat", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""} +======= + notificationId: "" + subscriberId: "" + responses: + "200": + application/json: [{"_environmentId": "", "_jobId": "", "_notificationId": "", "_notificationTemplateId": "", "_organizationId": "", "_subscriberId": "", "channel": "custom", "detail": "", "isRetry": true, "isTest": true, "source": "Credentials", "status": "Pending", "transactionId": ""}] + IntegrationsController_createIntegration: + speakeasy-default-integrations-controller-create-integration: + requestBody: + application/json: {"channel": "sms", "providerId": ""} + responses: + "201": + application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "sms", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""} +>>>>>>> Stashed changes IntegrationsController_removeIntegration: speakeasy-default-integrations-controller-remove-integration: parameters: path: +<<<<<<< Updated upstream integrationId: "" responses: "200": application/json: [] +======= + integrationId: "" + responses: + "200": + application/json: [{"_environmentId": "", "_organizationId": "", "active": false, "channel": "email", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "in_app", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""}] +>>>>>>> Stashed changes IntegrationsController_listIntegrations: speakeasy-default-integrations-controller-list-integrations: responses: "200": +<<<<<<< Updated upstream application/json: [] +======= + application/json: [{"_environmentId": "", "_organizationId": "", "active": false, "channel": "chat", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": true, "channel": "chat", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "in_app", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""}] +>>>>>>> Stashed changes IntegrationsController_getActiveIntegrations: speakeasy-default-integrations-controller-get-active-integrations: responses: "200": +<<<<<<< Updated upstream application/json: [] +======= + application/json: [{"_environmentId": "", "_organizationId": "", "active": true, "channel": "in_app", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "push", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "chat", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}] +>>>>>>> Stashed changes IntegrationsController_setIntegrationAsPrimary: speakeasy-default-integrations-controller-set-integration-as-primary: parameters: path: +<<<<<<< Updated upstream integrationId: "" responses: "200": application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "push", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""} +======= + integrationId: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "active": true, "channel": "sms", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""} +>>>>>>> Stashed changes IntegrationsController_updateIntegrationById: speakeasy-default-integrations-controller-update-integration-by-id: parameters: path: +<<<<<<< Updated upstream integrationId: "" responses: "200": application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "in_app", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""} +======= + integrationId: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "sms", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""} +>>>>>>> Stashed changes IntegrationsController_getWebhookSupportStatus: speakeasy-default-integrations-controller-get-webhook-support-status: parameters: path: +<<<<<<< Updated upstream providerOrIntegrationId: "" responses: "200": @@ -827,32 +1150,57 @@ examples: responses: "200": application/json: {"_creatorId": "", "_environmentId": "", "_organizationId": "", "channel": "push", "content": "", "contentType": "", "identifier": "", "isDefault": true, "isDeleted": true, "name": ""} +======= + providerOrIntegrationId: "" + responses: + "200": + application/json: true +>>>>>>> Stashed changes MessagesController_deleteMessage: speakeasy-default-messages-controller-delete-message: parameters: path: +<<<<<<< Updated upstream messageId: "" responses: "200": application/json: {"acknowledged": true, "status": "deleted"} +======= + messageId: "" + responses: + "200": + application/json: {"acknowledged": false, "status": "deleted"} +>>>>>>> Stashed changes MessagesController_deleteMessagesByTransactionId: speakeasy-default-messages-controller-delete-messages-by-transaction-id: parameters: path: +<<<<<<< Updated upstream transactionId: "" +======= + transactionId: "" +>>>>>>> Stashed changes query: {} MessagesController_getMessages: speakeasy-default-messages-controller-get-messages: responses: "200": +<<<<<<< Updated upstream application/json: {"data": [], "hasMore": false, "page": "9451.91", "pageSize": "9198.31"} +======= + application/json: {"data": [""], "hasMore": false, "page": "3129.93", "pageSize": "3234.02"} +>>>>>>> Stashed changes NotificationGroupsController_createNotificationGroup: speakeasy-default-notification-groups-controller-create-notification-group: requestBody: application/json: {"name": ""} responses: "201": +<<<<<<< Updated upstream application/json: {"_environmentId": "", "_organizationId": "", "name": ""} +======= + application/json: {"_environmentId": "", "_organizationId": "", "name": ""} +>>>>>>> Stashed changes NotificationGroupsController_deleteNotificationGroup: speakeasy-default-notification-groups-controller-delete-notification-group: parameters: @@ -860,12 +1208,20 @@ examples: id: "" responses: "200": +<<<<<<< Updated upstream application/json: {"acknowledged": true, "status": "deleted"} +======= + application/json: {"acknowledged": false, "status": "deleted"} +>>>>>>> Stashed changes NotificationGroupsController_listNotificationGroups: speakeasy-default-notification-groups-controller-list-notification-groups: responses: "200": +<<<<<<< Updated upstream application/json: [] +======= + application/json: [{"_environmentId": "", "_organizationId": "", "name": ""}, {"_environmentId": "", "_organizationId": "", "name": ""}, {"_environmentId": "", "_organizationId": "", "name": ""}] +>>>>>>> Stashed changes NotificationGroupsController_getNotificationGroup: speakeasy-default-notification-groups-controller-get-notification-group: parameters: @@ -873,7 +1229,11 @@ examples: id: "" responses: "200": +<<<<<<< Updated upstream application/json: {"_environmentId": "", "_organizationId": "", "name": ""} +======= + application/json: {"_environmentId": "", "_organizationId": "", "name": ""} +>>>>>>> Stashed changes NotificationGroupsController_updateNotificationGroup: speakeasy-default-notification-groups-controller-update-notification-group: parameters: @@ -883,11 +1243,16 @@ examples: application/json: {"name": ""} responses: "200": +<<<<<<< Updated upstream application/json: {"_environmentId": "", "_organizationId": "", "name": ""} +======= + application/json: {"_environmentId": "", "_organizationId": "", "name": ""} +>>>>>>> Stashed changes NotificationsController_listNotifications: speakeasy-default-notifications-controller-list-notifications: parameters: query: +<<<<<<< Updated upstream channels: [] templates: [] emails: [] @@ -896,23 +1261,45 @@ examples: responses: "200": application/json: {"data": [], "hasMore": false, "page": "998.95", "pageSize": "5472.72"} +======= + channels: ["sms", "chat", "in_app"] + templates: [] + emails: [] + search: "" + subscriberIds: ["", ""] + responses: + "200": + application/json: {"data": ["", ""], "hasMore": true, "page": "7183.03", "pageSize": "861.40"} +>>>>>>> Stashed changes NotificationsController_getNotification: speakeasy-default-notifications-controller-get-notification: parameters: path: +<<<<<<< Updated upstream notificationId: "" responses: "200": application/json: {"_environmentId": "", "_organizationId": "", "transactionId": ""} +======= + notificationId: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "transactionId": ""} +>>>>>>> Stashed changes NotificationsController_getActivityGraphStats: speakeasy-default-notifications-controller-get-activity-graph-stats: responses: "200": +<<<<<<< Updated upstream application/json: [] +======= + application/json: [{"_id": "", "channels": ["push"], "count": "401.93", "templates": [""]}] +>>>>>>> Stashed changes NotificationsController_getActivityStats: speakeasy-default-notifications-controller-get-activity-stats: responses: "200": +<<<<<<< Updated upstream application/json: {"monthlySent": "3704.56", "weeklySent": "9451.91"} EEOrganizationController_renameOrganization: speakeasy-default-EE-organization-controller-rename-organization: @@ -944,126 +1331,239 @@ examples: speakeasy-default-subscribers-controller-bulk-create-subscribers: requestBody: application/json: {"subscribers": []} +======= + application/json: {"monthlySent": "3704.57", "weeklySent": "9198.30"} + SubscribersController_createSubscriber: + speakeasy-default-subscribers-controller-create-subscriber: + requestBody: + application/json: {"subscriberId": ""} + responses: + "201": + application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} + SubscribersController_bulkCreateSubscribers: + speakeasy-default-subscribers-controller-bulk-create-subscribers: + requestBody: + application/json: {"subscribers": [""]} +>>>>>>> Stashed changes SubscribersController_removeSubscriber: speakeasy-default-subscribers-controller-remove-subscriber: parameters: path: +<<<<<<< Updated upstream subscriberId: "" responses: "200": application/json: {"acknowledged": true, "status": "deleted"} +======= + subscriberId: "" + responses: + "200": + application/json: {"acknowledged": false, "status": "deleted"} +>>>>>>> Stashed changes SubscribersController_listSubscribers: speakeasy-default-subscribers-controller-list-subscribers: responses: "200": +<<<<<<< Updated upstream application/json: {"data": [], "hasMore": false, "page": "998.95", "pageSize": "5472.72"} +======= + application/json: {"data": [{"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""}, {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""}, {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""}], "hasMore": true, "page": "1528.38", "pageSize": "6355.32"} +>>>>>>> Stashed changes SubscribersController_getSubscriber: speakeasy-default-subscribers-controller-get-subscriber: parameters: path: +<<<<<<< Updated upstream subscriberId: "" responses: "200": application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} +======= + subscriberId: "" + query: {} + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} +>>>>>>> Stashed changes SubscribersController_updateSubscriber: speakeasy-default-subscribers-controller-update-subscriber: parameters: path: +<<<<<<< Updated upstream subscriberId: "" responses: "200": application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} +======= + subscriberId: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} +>>>>>>> Stashed changes SubscribersController_modifySubscriberChannel: speakeasy-default-subscribers-controller-modify-subscriber-channel: parameters: path: +<<<<<<< Updated upstream subscriberId: "" requestBody: application/json: {"credentials": {"webhookUrl": ""}, "providerId": "3462.44"} responses: "200": application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} +======= + subscriberId: "" + requestBody: + application/json: {"credentials": {"webhookUrl": "https://our-sonnet.net/"}, "providerId": "zulip"} + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} +>>>>>>> Stashed changes SubscribersController_deleteSubscriberCredentials: speakeasy-default-subscribers-controller-delete-subscriber-credentials: parameters: path: +<<<<<<< Updated upstream subscriberId: "" providerId: "" +======= + subscriberId: "" + providerId: "" +>>>>>>> Stashed changes SubscribersController_updateSubscriberChannel: speakeasy-default-subscribers-controller-update-subscriber-channel: parameters: path: +<<<<<<< Updated upstream subscriberId: "" requestBody: application/json: {"credentials": {"webhookUrl": ""}, "providerId": "8574.78"} responses: "200": application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} +======= + subscriberId: "" + requestBody: + application/json: {"credentials": {"webhookUrl": "https://passionate-flu.org"}, "providerId": "pushpad"} + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} +>>>>>>> Stashed changes SubscribersController_chatAccessOauth: speakeasy-default-subscribers-controller-chat-access-oauth: parameters: path: +<<<<<<< Updated upstream subscriberId: "" providerId: "" query: hmacHash: "" environmentId: "" +======= + subscriberId: "" + providerId: "" + query: + hmacHash: "" + environmentId: "" +>>>>>>> Stashed changes SubscribersController_chatOauthCallback: speakeasy-default-subscribers-controller-chat-oauth-callback: parameters: path: +<<<<<<< Updated upstream subscriberId: "" providerId: "" query: code: "" hmacHash: "" environmentId: "" +======= + subscriberId: "" + providerId: "" + query: + code: "" + hmacHash: "" + environmentId: "" +>>>>>>> Stashed changes SubscribersController_markAllUnreadAsRead: speakeasy-default-subscribers-controller-mark-all-unread-as-read: parameters: path: +<<<<<<< Updated upstream subscriberId: "" +======= + subscriberId: "" +>>>>>>> Stashed changes requestBody: application/json: {"markAs": "seen"} responses: "201": +<<<<<<< Updated upstream application/json: "9412.34" +======= + application/json: "4603.37" +>>>>>>> Stashed changes SubscribersController_markMessagesAs: speakeasy-default-subscribers-controller-mark-messages-as: parameters: path: +<<<<<<< Updated upstream subscriberId: "" requestBody: application/json: {"markAs": "seen", "messageId": ""} responses: "201": application/json: [] +======= + subscriberId: "" + requestBody: + application/json: {"markAs": "seen", "messageId": []} +>>>>>>> Stashed changes SubscribersController_markActionAsSeen: speakeasy-default-subscribers-controller-mark-action-as-seen: parameters: path: +<<<<<<< Updated upstream messageId: "" type: "" subscriberId: "" +======= + messageId: "" + type: "" + subscriberId: "" +>>>>>>> Stashed changes requestBody: application/json: {"status": "done"} responses: "201": +<<<<<<< Updated upstream application/json: {"_environmentId": "", "_messageTemplateId": "", "_notificationId": "", "_organizationId": "", "_subscriberId": "", "_templateId": "", "channel": "email", "content": {"content": "", "type": "button"}, "createdAt": "", "cta": {}, "errorId": "", "errorText": "", "read": true, "seen": false, "status": "sent", "transactionId": ""} +======= + application/json: {"_environmentId": "", "_messageTemplateId": "", "_notificationId": "", "_organizationId": "", "_subscriberId": "", "_templateId": "", "channel": "sms", "content": "", "createdAt": "", "cta": {}, "errorId": "", "errorText": "", "read": true, "seen": true, "status": "warning", "transactionId": ""} +>>>>>>> Stashed changes SubscribersController_getNotificationsFeed: "": parameters: path: +<<<<<<< Updated upstream subscriberId: "" +======= + subscriberId: "" +>>>>>>> Stashed changes query: payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=" responses: "200": +<<<<<<< Updated upstream application/json: {"data": [], "hasMore": false, "page": "9451.91", "pageSize": "9198.31"} +======= + application/json: {"data": [{"data": ["", "", ""], "hasMore": true, "page": "3234.02", "pageSize": "909.16"}], "hasMore": false, "page": "6695.15", "pageSize": "1530.93"} +>>>>>>> Stashed changes SubscribersController_getUnseenCount: speakeasy-default-subscribers-controller-get-unseen-count: parameters: path: +<<<<<<< Updated upstream subscriberId: "" query: seen: true @@ -1071,46 +1571,89 @@ examples: responses: "200": application/json: {"count": "4327.98"} +======= + subscriberId: "" + query: + seen: true + limit: "4327.98" + responses: + "200": + application/json: {"count": "8808.14"} +>>>>>>> Stashed changes SubscribersController_updateSubscriberOnlineFlag: speakeasy-default-subscribers-controller-update-subscriber-online-flag: parameters: path: +<<<<<<< Updated upstream subscriberId: "" +======= + subscriberId: "" +>>>>>>> Stashed changes requestBody: application/json: {"isOnline": false} responses: "200": +<<<<<<< Updated upstream application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} +======= + application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} +>>>>>>> Stashed changes SubscribersController_listSubscriberPreferences: speakeasy-default-subscribers-controller-list-subscriber-preferences: parameters: path: +<<<<<<< Updated upstream subscriberId: "" responses: "200": application/json: [] +======= + subscriberId: "" + query: {} + responses: + "200": + application/json: [{"preference": {"enabled": false}, "template": {"_id": "", "critical": false, "name": "", "triggers": []}}, {"preference": {"enabled": true}, "template": {"_id": "", "critical": true, "name": "", "triggers": ["", ""]}}, {"preference": {"enabled": false}, "template": {"_id": "", "critical": true, "name": "", "triggers": ["", ""]}}] +>>>>>>> Stashed changes SubscribersController_getSubscriberPreferenceByLevel: speakeasy-default-subscribers-controller-get-subscriber-preference-by-level: parameters: path: +<<<<<<< Updated upstream parameter: "Topic" subscriberId: "" responses: "200": application/json: [] +======= + parameter: "template" + subscriberId: "" + query: {} + responses: + "200": + application/json: [{"preference": {"enabled": true}}] +>>>>>>> Stashed changes SubscribersController_updateSubscriberPreference: speakeasy-default-subscribers-controller-update-subscriber-preference: parameters: path: +<<<<<<< Updated upstream subscriberId: "" parameter: "" responses: "200": application/json: {"preference": {"enabled": false}, "template": {"_id": "", "critical": true, "name": "", "triggers": []}} +======= + subscriberId: "" + parameter: "" + responses: + "200": + application/json: {"preference": {"enabled": false}, "template": {"_id": "", "critical": false, "name": "", "triggers": [""]}} +>>>>>>> Stashed changes SubscribersController_updateSubscriberGlobalPreferences: speakeasy-default-subscribers-controller-update-subscriber-global-preferences: parameters: path: +<<<<<<< Updated upstream subscriberId: "" responses: "200": @@ -1148,6 +1691,12 @@ examples: responses: "200": application/json: {"_environmentId": "", "_id": "", "createdAt": "", "identifier": "", "updatedAt": ""} +======= + subscriberId: "" + responses: + "200": + application/json: {"preference": {"enabled": true}, "template": {"_id": "", "critical": true, "name": "", "triggers": [""]}} +>>>>>>> Stashed changes TopicsController_createTopic: speakeasy-default-topics-controller-create-topic: requestBody: @@ -1164,7 +1713,11 @@ examples: speakeasy-default-topics-controller-list-topics: responses: "200": +<<<<<<< Updated upstream application/json: {"data": [], "page": "7685.78", "pageSize": "998.95", "totalCount": "5472.72"} +======= + application/json: {"data": [{"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": ["", ""]}, {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": ["", ""]}, {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": []}], "page": "2297.17", "pageSize": "1528.38", "totalCount": "6355.32"} +>>>>>>> Stashed changes TopicsController_renameTopic: speakeasy-default-topics-controller-rename-topic: parameters: @@ -1174,7 +1727,11 @@ examples: application/json: {"name": ""} responses: "200": +<<<<<<< Updated upstream application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": []} +======= + application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": ["", "", ""]} +>>>>>>> Stashed changes TopicsController_getTopic: speakeasy-default-topics-controller-get-topic: parameters: @@ -1182,25 +1739,38 @@ examples: topicKey: "" responses: "200": +<<<<<<< Updated upstream application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": []} +======= + application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": [""]} +>>>>>>> Stashed changes TopicsController_addSubscribers: speakeasy-default-topics-controller-add-subscribers: parameters: path: topicKey: "" requestBody: +<<<<<<< Updated upstream application/json: {"subscribers": []} +======= + application/json: {"subscribers": ["", "", ""]} +>>>>>>> Stashed changes TopicsController_removeSubscribers: speakeasy-default-topics-controller-remove-subscribers: parameters: path: topicKey: "" requestBody: +<<<<<<< Updated upstream application/json: {"subscribers": []} +======= + application/json: {"subscribers": ["", ""]} +>>>>>>> Stashed changes TopicsController_getTopicSubscriber: speakeasy-default-topics-controller-get-topic-subscriber: parameters: path: +<<<<<<< Updated upstream externalSubscriberId: "" topicKey: "" responses: @@ -1259,3 +1829,10 @@ examples: responses: "200": application/json: {"_creatorId": "", "_environmentId": "", "_notificationGroupId": "", "_organizationId": "", "active": true, "critical": true, "deleted": false, "deletedAt": "", "deletedBy": "", "description": "Future-proofed next generation workforce", "draft": false, "name": "", "steps": [], "tags": [], "triggers": []} +======= + externalSubscriberId: "" + topicKey: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "_subscriberId": "", "_topicId": "", "externalSubscriberId": "", "topicKey": ""} +>>>>>>> Stashed changes diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 542fce51..43312b36 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -10,6 +10,7 @@ generation: requestResponseComponentNamesFeb2024: true auth: oAuth2ClientCredentialsEnabled: false + oAuth2PasswordEnabled: false typescript: version: 0.0.1-alpha.11 additionalDependencies: @@ -19,8 +20,10 @@ typescript: additionalPackageJSON: {} author: Novu clientServerStatusCodesAsErrors: true + defaultErrorName: SDKError enumFormat: union flattenGlobalSecurity: true + flatteningOrder: body-first imports: option: openapi paths: diff --git a/.speakeasy/speakeasy-modifications-overlay.yaml b/.speakeasy/speakeasy-modifications-overlay.yaml new file mode 100644 index 00000000..7ad9e788 --- /dev/null +++ b/.speakeasy/speakeasy-modifications-overlay.yaml @@ -0,0 +1,464 @@ +overlay: 1.0.0 +info: + title: Speakeasy Modifications + version: 0.0.2 + x-speakeasy-metadata: + after: "" + before: "" + type: speakeasy-modifications +actions: + - target: $["paths"]["/v1/notification-groups/{id}"]["patch"] + update: + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + x-speakeasy-metadata: + type: method-name + before: sdk.Workflow groups.NotificationGroupsController_updateNotificationGroup() + after: sdk.workflowGroups.update() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}"]["delete"] + update: + x-speakeasy-group: subscribers.credentials + x-speakeasy-name-override: delete + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Credentials.SubscribersController_deleteSubscriberCredentials() + after: sdk.subscribers.credentials.delete() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/notification-groups/{id}"]["delete"] + update: + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + x-speakeasy-metadata: + type: method-name + before: sdk.Workflow groups.NotificationGroupsController_deleteNotificationGroup() + after: sdk.workflowGroups.delete() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-as"]["post"] + update: + x-speakeasy-group: subscribers.messages + x-speakeasy-name-override: mark + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Messages.markAllAs() + after: sdk.subscribers.messages.mark() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/removal"]["post"] + update: + x-speakeasy-group: topics.subscribers + x-speakeasy-name-override: remove + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.Subscribers.TopicsController_removeSubscribers() + after: sdk.topics.subscribers.remove() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["delete"] + update: + x-speakeasy-name-override: delete + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.SubscribersController_removeSubscriber() + after: sdk.subscribers.delete() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/topics"]["post"] + update: + x-speakeasy-name-override: create + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.TopicsController_createTopic() + after: sdk.topics.create() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/notifications/graph/stats"]["get"] + update: + x-speakeasy-group: notificationsStats + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Notifications.Stats.graph() + after: sdk.notificationsStats.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["get"] + update: + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.SubscribersController_getSubscriber() + after: sdk.subscribers.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/notifications/stats"]["get"] + update: + x-speakeasy-group: notifications.stats + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Notifications.Stats.NotificationsController_getActivityStats() + after: sdk.notifications.stats.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/messages"]["get"] + update: + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Messages.MessagesController_getMessages() + after: sdk.messages.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["get"] + update: + x-speakeasy-group: subscribers.preferences + x-speakeasy-name-override: getByLevel + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Preferences.retrieveByLevel() + after: sdk.subscribers.preferences.getByLevel() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}/online-status"]["patch"] + update: + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.properties.updateOnlineFlag() + after: sdk.subscribers.properties.updateOnlineStatus() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["get"] + update: + x-speakeasy-group: subscribers.preferences + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Preferences.SubscribersController_listSubscriberPreferences() + after: sdk.subscribers.preferences.get() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/integrations/{integrationId}"]["delete"] + update: + x-speakeasy-name-override: delete + x-speakeasy-metadata: + type: method-name + before: sdk.Integrations.IntegrationsController_removeIntegration() + after: sdk.integrations.delete() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-all"]["post"] + update: + x-speakeasy-group: subscribersMessages + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Messages.markAll() + after: sdk.subscribersMessages.markAll() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/notifications/{notificationId}"]["get"] + update: + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Notifications.NotificationsController_getNotification() + after: sdk.notifications.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/{externalSubscriberId}"]["get"] + update: + x-speakeasy-group: topics.subscribers + x-speakeasy-name-override: check + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.Subscribers.TopicsController_getTopicSubscriber() + after: sdk.topics.subscribers.check() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/unseen"]["get"] + update: + x-speakeasy-group: subscribersNotifications + x-speakeasy-name-override: getUnseenCount + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Notifications.unseenCount() + after: sdk.subscribersNotifications.getUnseenCount() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/integrations"]["get"] + update: + x-speakeasy-name-override: list + x-speakeasy-metadata: + type: method-name + before: sdk.Integrations.IntegrationsController_listIntegrations() + after: sdk.integrations.list() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback"]["get"] + update: + x-speakeasy-group: subscribers.authentication + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Authentication.chatAccessOauthCallBack() + after: sdk.subscribers.authentication.handleOauthCallback() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/notification-groups/{id}"]["get"] + update: + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Workflow groups.NotificationGroupsController_getNotificationGroup() + after: sdk.workflowGroups.get() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/topics/{topicKey}/subscribers"]["post"] + update: + x-speakeasy-group: topics.subscribers + x-speakeasy-name-override: add + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.Subscribers.assign() + after: sdk.topics.subscribers.add() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["put"] + update: + x-speakeasy-name-override: update + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.SubscribersController_updateSubscriber() + after: sdk.subscribers.update() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/environments/api-keys"]["get"] + update: + x-speakeasy-group: environments.apiKeys + x-speakeasy-name-override: list + x-speakeasy-metadata: + type: method-name + before: sdk.Environments.ApiKeys.EnvironmentsControllerV1_listOrganizationApiKeys() + after: sdk.environments.apiKeys.list() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/topics/{topicKey}"]["delete"] + update: + x-speakeasy-name-override: delete + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.TopicsController_deleteTopic() + after: sdk.topics.delete() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/messages/{messageId}"]["delete"] + update: + x-speakeasy-name-override: delete + x-speakeasy-metadata: + type: method-name + before: sdk.Messages.MessagesController_deleteMessage() + after: sdk.messages.delete() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["put"] + update: + x-speakeasy-group: subscribers.credentials + x-speakeasy-name-override: update + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Credentials.SubscribersController_updateSubscriberChannel() + after: sdk.subscribers.credentials.update() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/environments"]["get"] + update: + x-speakeasy-name-override: getAll + x-speakeasy-metadata: + type: method-name + before: sdk.Environments.EnvironmentsControllerV1_listMyEnvironments() + after: sdk.environments.getAll() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/integrations/{integrationId}"]["put"] + update: + x-speakeasy-name-override: update + x-speakeasy-metadata: + type: method-name + before: sdk.Integrations.IntegrationsController_updateIntegrationById() + after: sdk.integrations.update() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers"]["get"] + update: + x-speakeasy-name-override: getAll + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.SubscribersController_listSubscribers() + after: sdk.subscribers.getAll() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["patch"] + update: + x-speakeasy-group: subscribers.credentials + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Credentials.append() + after: sdk.subscribers.credentials.append() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/notification-groups"]["post"] + update: + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + x-speakeasy-metadata: + type: method-name + before: sdk.Workflow groups.NotificationGroupsController_createNotificationGroup() + after: sdk.workflowGroups.create() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/notification-groups"]["get"] + update: + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + x-speakeasy-metadata: + type: method-name + before: sdk.Workflow groups.NotificationGroupsController_listNotificationGroups() + after: sdk.workflowGroups.list() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth"]["get"] + update: + x-speakeasy-group: subscribers.authentication + x-speakeasy-name-override: handleOauth + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Authentication.chatAccessOauth() + after: sdk.subscribers.authentication.handleOauth() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/notifications"]["get"] + update: + x-speakeasy-name-override: list + x-speakeasy-metadata: + type: method-name + before: sdk.Notifications.NotificationsController_listNotifications() + after: sdk.notifications.list() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["patch"] + update: + x-speakeasy-group: subscribersPreferences + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Preferences.updateGlobal() + after: sdk.subscribersPreferences.updateGlobal() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["patch"] + update: + x-speakeasy-group: subscribers.preferences + x-speakeasy-name-override: update + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Preferences.SubscribersController_updateSubscriberPreference() + after: sdk.subscribers.preferences.update() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/feed"]["get"] + update: + x-speakeasy-group: subscribers.notifications + x-speakeasy-name-override: getFeed + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Notifications.SubscribersController_getNotificationsFeed() + after: sdk.subscribers.notifications.getFeed() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/topics"]["get"] + update: + x-speakeasy-name-override: getAll + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.TopicsController_listTopics() + after: sdk.topics.getAll() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/integrations/{integrationId}/set-primary"]["post"] + update: + x-speakeasy-name-override: setPrimary + x-speakeasy-metadata: + type: method-name + before: sdk.Integrations.setAsPrimary() + after: sdk.integrations.setPrimary() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/execution-details"]["get"] + update: + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Execution Details.ExecutionDetailsController_getExecutionDetailsForNotification() + after: sdk.executionDetails.get() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/integrations/webhook/provider/{providerOrIntegrationId}/status"]["get"] + update: + x-speakeasy-group: integrationsWebhooks + x-speakeasy-name-override: getStatus + x-speakeasy-metadata: + type: method-name + before: sdk.Integrations.Webhooks.IntegrationsController_getWebhookSupportStatus() + after: sdk.integrationsWebhooks.getStatus() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/subscribers"]["post"] + update: + x-speakeasy-name-override: create + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.SubscribersController_createSubscriber() + after: sdk.subscribers.create() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/topics/{topicKey}"]["get"] + update: + x-speakeasy-name-override: get + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.TopicsController_getTopic() + after: sdk.topics.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}"]["post"] + update: + x-speakeasy-group: subscribersMessages + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Messages.updateAsSeen() + after: sdk.subscribersMessages.updateAsSeen() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/integrations"]["post"] + update: + x-speakeasy-name-override: create + x-speakeasy-metadata: + type: method-name + before: sdk.Integrations.IntegrationsController_createIntegration() + after: sdk.integrations.create() + reviewed_at: 1732386050400 + created_at: 1732385969424 + - target: $["paths"]["/v1/environments/me"]["get"] + update: + x-speakeasy-name-override: getCurrent + x-speakeasy-metadata: + type: method-name + before: sdk.Environments.EnvironmentsControllerV1_getCurrentEnvironment() + after: sdk.environments.getCurrent() + reviewed_at: 1732386050400 + created_at: 1732385969424 diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 2030e082..2190e744 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,27 +1,46 @@ +<<<<<<< Updated upstream speakeasyVersion: 1.399.2 sources: json-development: sourceNamespace: json-development sourceRevisionDigest: sha256:395eba518bfd3c604bf1fdd5dba5d7b7fd45b266e2e943805083c8bad4771fdd sourceBlobDigest: sha256:a87a8330164b61538704ebe0d75d9adb307d3cc249d11a835b8cd71be3703570 +======= +speakeasyVersion: 1.444.1 +sources: + json-development: + sourceNamespace: json-development + sourceRevisionDigest: sha256:4b9174006d5eb012ca8c782224c03619125acd0335256a7701a8670288685d96 + sourceBlobDigest: sha256:770b3d589f922e7138332329b37f801c77002a53a0a7214de79afa467073d2e2 +>>>>>>> Stashed changes tags: - latest - - main targets: my-first-target: source: json-development sourceNamespace: json-development +<<<<<<< Updated upstream sourceRevisionDigest: sha256:395eba518bfd3c604bf1fdd5dba5d7b7fd45b266e2e943805083c8bad4771fdd sourceBlobDigest: sha256:a87a8330164b61538704ebe0d75d9adb307d3cc249d11a835b8cd71be3703570 codeSamplesNamespace: code-samples-typescript codeSamplesRevisionDigest: sha256:ec9766637494086a4198568b8ec23f28a71e7af7bebc6b0b5b38460ea0edc273 +======= + sourceRevisionDigest: sha256:4b9174006d5eb012ca8c782224c03619125acd0335256a7701a8670288685d96 + sourceBlobDigest: sha256:770b3d589f922e7138332329b37f801c77002a53a0a7214de79afa467073d2e2 + codeSamplesNamespace: code-samples-typescript + codeSamplesRevisionDigest: sha256:4afbdd4336fa54e05fd4b0ed4b2c2ce2c6f9ac6f444516217a45b3aeca920dfd +>>>>>>> Stashed changes workflow: workflowVersion: 1.0.0 speakeasyVersion: latest sources: json-development: inputs: +<<<<<<< Updated upstream - location: http://api.novu.co/openapi.sdk.json +======= + - location: http://127.0.0.1:3000/openapi.sdk.yaml +>>>>>>> Stashed changes overlays: - location: ./sources/cleanup-overlay.yaml output: sources/json-development.json diff --git a/.speakeasy/workflow.yaml b/.speakeasy/workflow.yaml index 7e7d37e1..81de5674 100644 --- a/.speakeasy/workflow.yaml +++ b/.speakeasy/workflow.yaml @@ -3,21 +3,20 @@ speakeasyVersion: latest sources: json-development: inputs: - - location: http://api.novu.co/openapi.sdk.json - # - location: ./sources/openapi.sdk.json + - location: http://127.0.0.1:3000/openapi.sdk.yaml overlays: - - location: ./sources/cleanup-overlay.yaml + - location: .speakeasy/speakeasy-modifications-overlay.yaml + output: sources/json-development.json registry: location: registry.speakeasyapi.dev/novu/novu/json-development - output: sources/json-development.json targets: my-first-target: target: typescript source: json-development + publish: + npm: + token: $npm_token codeSamples: output: sources/code-samples.yaml registry: location: registry.speakeasyapi.dev/novu/novu/code-samples-typescript - publish: - npm: - token: $npm_token diff --git a/FUNCTIONS.md b/FUNCTIONS.md index 24c670de..134faa12 100644 --- a/FUNCTIONS.md +++ b/FUNCTIONS.md @@ -30,7 +30,11 @@ const novu = new NovuCore({ }); async function run() { +<<<<<<< Updated upstream const res = await cancel(novu, ""); +======= + const res = await cancel(novu, ""); +>>>>>>> Stashed changes switch (true) { case res.ok: @@ -52,7 +56,11 @@ async function run() { const { value: result } = res; // Handle the result +<<<<<<< Updated upstream console.log(result) +======= + console.log(result); +>>>>>>> Stashed changes } run(); diff --git a/README.md b/README.md index 97019519..61c51fed 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel(""); +======= + const result = await novu.cancel(""); +>>>>>>> Stashed changes // Handle the result console.log(result); @@ -112,6 +116,12 @@ async function run() { topicKey: "", type: "Topic", }, +<<<<<<< Updated upstream +======= + { + topicKey: "", + type: "Topic", + }, ], }); @@ -156,6 +166,95 @@ const novu = new Novu({ apiKey: "", }); +async function run() { + const result = await novu.triggerBulk({ + events: [ + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, +>>>>>>> Stashed changes + ], + }); + + // Handle the result + console.log(result); +<<<<<<< Updated upstream +} + +run(); + +``` + +### Broadcast Event to All + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.triggerBroadcast({ + name: "", + overrides: {}, + payload: {}, + }); + + // Handle the result + console.log(result); +} + +run(); + +``` + +### Trigger Notification Events in Bulk + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + async function run() { const result = await novu.triggerBulk({ events: [], @@ -163,6 +262,8 @@ async function run() { // Handle the result console.log(result); +======= +>>>>>>> Stashed changes } run(); @@ -175,6 +276,7 @@ run();
Available methods +<<<<<<< Updated upstream ### [changes](docs/sdks/changes/README.md) @@ -182,11 +284,13 @@ run(); * [applyBulk](docs/sdks/changes/README.md#applybulk) - Apply changes * [count](docs/sdks/changes/README.md#count) - Get changes count * [retrieve](docs/sdks/changes/README.md#retrieve) - Get changes +======= +>>>>>>> Stashed changes ### [environments](docs/sdks/environments/README.md) -* [list](docs/sdks/environments/README.md#list) - Get environments -* [retrieve](docs/sdks/environments/README.md#retrieve) - Get current environment +* [getAll](docs/sdks/environments/README.md#getall) - Get environments +* [getCurrent](docs/sdks/environments/README.md#getcurrent) - Get current environment #### [environments.apiKeys](docs/sdks/apikeys/README.md) @@ -194,13 +298,7 @@ run(); ### [executionDetails](docs/sdks/executiondetails/README.md) -* [retrieve](docs/sdks/executiondetails/README.md#retrieve) - Get execution details - -### [feeds](docs/sdks/feeds/README.md) - -* [create](docs/sdks/feeds/README.md#create) - Create feed -* [delete](docs/sdks/feeds/README.md#delete) - Delete feed -* [retrieve](docs/sdks/feeds/README.md#retrieve) - Get feeds +* [get](docs/sdks/executiondetails/README.md#get) - Get execution details ### [integrations](docs/sdks/integrations/README.md) @@ -208,38 +306,37 @@ run(); * [delete](docs/sdks/integrations/README.md#delete) - Delete integration * [list](docs/sdks/integrations/README.md#list) - Get integrations * [listActive](docs/sdks/integrations/README.md#listactive) - Get active integrations -* [setAsPrimary](docs/sdks/integrations/README.md#setasprimary) - Set integration as primary +* [setPrimary](docs/sdks/integrations/README.md#setprimary) - Set integration as primary * [update](docs/sdks/integrations/README.md#update) - Update integration +<<<<<<< Updated upstream #### [integrations.webhooks](docs/sdks/webhooks/README.md) +======= +### [integrationsWebhooks](docs/sdks/integrationswebhooks/README.md) +>>>>>>> Stashed changes -* [retrieve](docs/sdks/webhooks/README.md#retrieve) - Get webhook support status for provider - -### [layouts](docs/sdks/layouts/README.md) - -* [create](docs/sdks/layouts/README.md#create) - Layout creation -* [delete](docs/sdks/layouts/README.md#delete) - Delete layout -* [list](docs/sdks/layouts/README.md#list) - Filter layouts -* [retrieve](docs/sdks/layouts/README.md#retrieve) - Get layout -* [setAsDefault](docs/sdks/layouts/README.md#setasdefault) - Set default layout -* [update](docs/sdks/layouts/README.md#update) - Update a layout +* [getStatus](docs/sdks/integrationswebhooks/README.md#getstatus) - Get webhook support status for provider ### [messages](docs/sdks/messages/README.md) * [delete](docs/sdks/messages/README.md#delete) - Delete message * [deleteByTransactionId](docs/sdks/messages/README.md#deletebytransactionid) - Delete messages by transactionId +<<<<<<< Updated upstream * [retrieve](docs/sdks/messages/README.md#retrieve) - Get messages +======= +* [get](docs/sdks/messages/README.md#get) - Get messages +>>>>>>> Stashed changes ### [notifications](docs/sdks/notifications/README.md) +* [get](docs/sdks/notifications/README.md#get) - Get notification * [list](docs/sdks/notifications/README.md#list) - Get notifications -* [retrieve](docs/sdks/notifications/README.md#retrieve) - Get notification #### [notifications.stats](docs/sdks/stats/README.md) -* [graph](docs/sdks/stats/README.md#graph) - Get notification graph statistics -* [retrieve](docs/sdks/stats/README.md#retrieve) - Get notification statistics +* [get](docs/sdks/stats/README.md#get) - Get notification statistics +<<<<<<< Updated upstream ### [Novu SDK](docs/sdks/novu/README.md) * [cancel](docs/sdks/novu/README.md#cancel) - Cancel triggered event @@ -252,20 +349,37 @@ run(); * [eeOrganizationControllerRenameOrganization](docs/sdks/organizations/README.md#eeorganizationcontrollerrenameorganization) - Rename organization name * [retrieve](docs/sdks/organizations/README.md#retrieve) - Fetch current organization details * [update](docs/sdks/organizations/README.md#update) - Update organization branding details +======= +### [notificationsStats](docs/sdks/notificationsstats/README.md) + +* [get](docs/sdks/notificationsstats/README.md#get) - Get notification graph statistics + +### [Novu SDK](docs/sdks/novu/README.md) + +* [cancel](docs/sdks/novu/README.md#cancel) - Cancel triggered event +* [trigger](docs/sdks/novu/README.md#trigger) - Trigger event +* [triggerBroadcast](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all +* [triggerBulk](docs/sdks/novu/README.md#triggerbulk) - Bulk trigger event +>>>>>>> Stashed changes ### [subscribers](docs/sdks/subscribers/README.md) * [create](docs/sdks/subscribers/README.md#create) - Create subscriber * [createBulk](docs/sdks/subscribers/README.md#createbulk) - Bulk create subscribers * [delete](docs/sdks/subscribers/README.md#delete) - Delete subscriber -* [list](docs/sdks/subscribers/README.md#list) - Get subscribers -* [retrieve](docs/sdks/subscribers/README.md#retrieve) - Get subscriber +* [get](docs/sdks/subscribers/README.md#get) - Get subscriber +* [getAll](docs/sdks/subscribers/README.md#getall) - Get subscribers * [update](docs/sdks/subscribers/README.md#update) - Update subscriber #### [subscribers.authentication](docs/sdks/authentication/README.md) +<<<<<<< Updated upstream * [chatAccessOauth](docs/sdks/authentication/README.md#chataccessoauth) - Handle chat oauth * [chatAccessOauthCallBack](docs/sdks/authentication/README.md#chataccessoauthcallback) - Handle providers oauth redirect +======= +* [handleOauth](docs/sdks/authentication/README.md#handleoauth) - Handle chat oauth +* [handleOauthCallback](docs/sdks/authentication/README.md#handleoauthcallback) - Handle providers oauth redirect +>>>>>>> Stashed changes #### [subscribers.credentials](docs/sdks/credentials/README.md) @@ -274,11 +388,17 @@ run(); * [update](docs/sdks/credentials/README.md#update) - Update subscriber credentials #### [subscribers.messages](docs/sdks/novumessages/README.md) +<<<<<<< Updated upstream +======= + +* [mark](docs/sdks/novumessages/README.md#mark) - Mark a subscriber messages as seen, read, unseen or unread -* [markAll](docs/sdks/novumessages/README.md#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. -* [markAllAs](docs/sdks/novumessages/README.md#markallas) - Mark a subscriber messages as seen, read, unseen or unread -* [updateAsSeen](docs/sdks/novumessages/README.md#updateasseen) - Mark message action as seen +#### [subscribers.notifications](docs/sdks/novusubscribersnotifications/README.md) +>>>>>>> Stashed changes +* [getFeed](docs/sdks/novusubscribersnotifications/README.md#getfeed) - Get in-app notification feed for a particular subscriber + +<<<<<<< Updated upstream #### [subscribers.notifications](docs/sdks/novunotifications/README.md) * [retrieve](docs/sdks/novunotifications/README.md#retrieve) - Get in-app notification feed for a particular subscriber @@ -288,36 +408,58 @@ run(); * [list](docs/sdks/preferences/README.md#list) - Get subscriber preferences * [retrieveByLevel](docs/sdks/preferences/README.md#retrievebylevel) - Get subscriber preferences by level +======= +#### [subscribers.preferences](docs/sdks/preferences/README.md) + +* [get](docs/sdks/preferences/README.md#get) - Get subscriber preferences +* [getByLevel](docs/sdks/preferences/README.md#getbylevel) - Get subscriber preferences by level +>>>>>>> Stashed changes * [update](docs/sdks/preferences/README.md#update) - Update subscriber preference -* [updateGlobal](docs/sdks/preferences/README.md#updateglobal) - Update subscriber global preferences #### [subscribers.properties](docs/sdks/properties/README.md) +<<<<<<< Updated upstream * [updateOnlineFlag](docs/sdks/properties/README.md#updateonlineflag) - Update subscriber online status ### [tenants](docs/sdks/tenants/README.md) +======= +>>>>>>> Stashed changes + +* [updateOnlineStatus](docs/sdks/properties/README.md#updateonlinestatus) - Update subscriber online status + +### [subscribersMessages](docs/sdks/subscribersmessages/README.md) + +* [markAll](docs/sdks/subscribersmessages/README.md#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. +* [updateAsSeen](docs/sdks/subscribersmessages/README.md#updateasseen) - Mark message action as seen + +### [subscribersNotifications](docs/sdks/subscribersnotifications/README.md) + +* [getUnseenCount](docs/sdks/subscribersnotifications/README.md#getunseencount) - Get the unseen in-app notifications count for subscribers feed -* [create](docs/sdks/tenants/README.md#create) - Create tenant -* [delete](docs/sdks/tenants/README.md#delete) - Delete tenant -* [list](docs/sdks/tenants/README.md#list) - Get tenants -* [retrieve](docs/sdks/tenants/README.md#retrieve) - Get tenant -* [update](docs/sdks/tenants/README.md#update) - Update tenant +### [subscribersPreferences](docs/sdks/subscriberspreferences/README.md) + +* [updateGlobal](docs/sdks/subscriberspreferences/README.md#updateglobal) - Update subscriber global preferences ### [topics](docs/sdks/topics/README.md) * [create](docs/sdks/topics/README.md#create) - Topic creation * [delete](docs/sdks/topics/README.md#delete) - Delete topic -* [list](docs/sdks/topics/README.md#list) - Filter topics +* [get](docs/sdks/topics/README.md#get) - Get topic +* [getAll](docs/sdks/topics/README.md#getall) - Filter topics * [rename](docs/sdks/topics/README.md#rename) - Rename a topic -* [retrieve](docs/sdks/topics/README.md#retrieve) - Get topic +<<<<<<< Updated upstream #### [topics.subscribers](docs/sdks/novusubscribers/README.md) +======= +#### [topics.subscribers](docs/sdks/novutopicssubscribers/README.md) +>>>>>>> Stashed changes -* [assign](docs/sdks/novusubscribers/README.md#assign) - Subscribers addition -* [delete](docs/sdks/novusubscribers/README.md#delete) - Subscribers removal -* [retrieve](docs/sdks/novusubscribers/README.md#retrieve) - Check topic subscriber +* [add](docs/sdks/novutopicssubscribers/README.md#add) - Subscribers addition +* [check](docs/sdks/novutopicssubscribers/README.md#check) - Check topic subscriber +* [remove](docs/sdks/novutopicssubscribers/README.md#remove) - Subscribers removal ### [workflowGroups](docs/sdks/workflowgroups/README.md) +<<<<<<< Updated upstream * [create](docs/sdks/workflowgroups/README.md#create) - Create workflow group * [delete](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group @@ -326,13 +468,16 @@ run(); * [update](docs/sdks/workflowgroups/README.md#update) - Update workflow group ### [workflows](docs/sdks/workflows/README.md) +======= +>>>>>>> Stashed changes -* [create](docs/sdks/workflows/README.md#create) - Create workflow -* [delete](docs/sdks/workflows/README.md#delete) - Delete workflow -* [list](docs/sdks/workflows/README.md#list) - Get workflows -* [retrieve](docs/sdks/workflows/README.md#retrieve) - Get workflow -* [update](docs/sdks/workflows/README.md#update) - Update workflow +* [create](docs/sdks/workflowgroups/README.md#create) - Create workflow group +* [delete](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group +* [get](docs/sdks/workflowgroups/README.md#get) - Get workflow group +* [list](docs/sdks/workflowgroups/README.md#list) - Get workflow groups +* [update](docs/sdks/workflowgroups/README.md#update) - Update workflow group +<<<<<<< Updated upstream #### [workflows.status](docs/sdks/status/README.md) * [update](docs/sdks/status/README.md#update) - Update workflow status @@ -341,6 +486,8 @@ run(); * [retrieve](docs/sdks/variables/README.md#retrieve) - Get available variables +======= +>>>>>>> Stashed changes
@@ -359,6 +506,7 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). Available standalone functions +<<<<<<< Updated upstream - [cancel](docs/sdks/novu/README.md#cancel) - [changesApplyBulk](docs/sdks/changes/README.md#applybulk) - [changesApply](docs/sdks/changes/README.md#apply) @@ -444,6 +592,64 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [workflowsUpdate](docs/sdks/workflows/README.md#update) - [workflowsVariablesRetrieve](docs/sdks/variables/README.md#retrieve) +======= +- [`cancel`](docs/sdks/novu/README.md#cancel) - Cancel triggered event +- [`environmentsApiKeysList`](docs/sdks/apikeys/README.md#list) - Get api keys +- [`environmentsGetAll`](docs/sdks/environments/README.md#getall) - Get environments +- [`environmentsGetCurrent`](docs/sdks/environments/README.md#getcurrent) - Get current environment +- [`executionDetailsGet`](docs/sdks/executiondetails/README.md#get) - Get execution details +- [`integrationsCreate`](docs/sdks/integrations/README.md#create) - Create integration +- [`integrationsDelete`](docs/sdks/integrations/README.md#delete) - Delete integration +- [`integrationsList`](docs/sdks/integrations/README.md#list) - Get integrations +- [`integrationsListActive`](docs/sdks/integrations/README.md#listactive) - Get active integrations +- [`integrationsSetPrimary`](docs/sdks/integrations/README.md#setprimary) - Set integration as primary +- [`integrationsUpdate`](docs/sdks/integrations/README.md#update) - Update integration +- [`integrationsWebhooksGetStatus`](docs/sdks/integrationswebhooks/README.md#getstatus) - Get webhook support status for provider +- [`messagesDelete`](docs/sdks/messages/README.md#delete) - Delete message +- [`messagesDeleteByTransactionId`](docs/sdks/messages/README.md#deletebytransactionid) - Delete messages by transactionId +- [`messagesGet`](docs/sdks/messages/README.md#get) - Get messages +- [`notificationsGet`](docs/sdks/notifications/README.md#get) - Get notification +- [`notificationsList`](docs/sdks/notifications/README.md#list) - Get notifications +- [`notificationsStatsGet`](docs/sdks/notificationsstats/README.md#get) - Get notification graph statistics +- [`notificationsStatsGet`](docs/sdks/stats/README.md#get) - Get notification statistics +- [`subscribersAuthenticationHandleOauth`](docs/sdks/authentication/README.md#handleoauth) - Handle chat oauth +- [`subscribersAuthenticationHandleOauthCallback`](docs/sdks/authentication/README.md#handleoauthcallback) - Handle providers oauth redirect +- [`subscribersCreate`](docs/sdks/subscribers/README.md#create) - Create subscriber +- [`subscribersCreateBulk`](docs/sdks/subscribers/README.md#createbulk) - Bulk create subscribers +- [`subscribersCredentialsAppend`](docs/sdks/credentials/README.md#append) - Modify subscriber credentials +- [`subscribersCredentialsDelete`](docs/sdks/credentials/README.md#delete) - Delete subscriber credentials by providerId +- [`subscribersCredentialsUpdate`](docs/sdks/credentials/README.md#update) - Update subscriber credentials +- [`subscribersDelete`](docs/sdks/subscribers/README.md#delete) - Delete subscriber +- [`subscribersGet`](docs/sdks/subscribers/README.md#get) - Get subscriber +- [`subscribersGetAll`](docs/sdks/subscribers/README.md#getall) - Get subscribers +- [`subscribersMessagesMark`](docs/sdks/novumessages/README.md#mark) - Mark a subscriber messages as seen, read, unseen or unread +- [`subscribersMessagesMarkAll`](docs/sdks/subscribersmessages/README.md#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. +- [`subscribersMessagesUpdateAsSeen`](docs/sdks/subscribersmessages/README.md#updateasseen) - Mark message action as seen +- [`subscribersNotificationsGetFeed`](docs/sdks/novusubscribersnotifications/README.md#getfeed) - Get in-app notification feed for a particular subscriber +- [`subscribersNotificationsGetUnseenCount`](docs/sdks/subscribersnotifications/README.md#getunseencount) - Get the unseen in-app notifications count for subscribers feed +- [`subscribersPreferencesGet`](docs/sdks/preferences/README.md#get) - Get subscriber preferences +- [`subscribersPreferencesGetByLevel`](docs/sdks/preferences/README.md#getbylevel) - Get subscriber preferences by level +- [`subscribersPreferencesUpdate`](docs/sdks/preferences/README.md#update) - Update subscriber preference +- [`subscribersPreferencesUpdateGlobal`](docs/sdks/subscriberspreferences/README.md#updateglobal) - Update subscriber global preferences +- [`subscribersPropertiesUpdateOnlineStatus`](docs/sdks/properties/README.md#updateonlinestatus) - Update subscriber online status +- [`subscribersUpdate`](docs/sdks/subscribers/README.md#update) - Update subscriber +- [`topicsCreate`](docs/sdks/topics/README.md#create) - Topic creation +- [`topicsDelete`](docs/sdks/topics/README.md#delete) - Delete topic +- [`topicsGet`](docs/sdks/topics/README.md#get) - Get topic +- [`topicsGetAll`](docs/sdks/topics/README.md#getall) - Filter topics +- [`topicsRename`](docs/sdks/topics/README.md#rename) - Rename a topic +- [`topicsSubscribersAdd`](docs/sdks/novutopicssubscribers/README.md#add) - Subscribers addition +- [`topicsSubscribersCheck`](docs/sdks/novutopicssubscribers/README.md#check) - Check topic subscriber +- [`topicsSubscribersRemove`](docs/sdks/novutopicssubscribers/README.md#remove) - Subscribers removal +- [`trigger`](docs/sdks/novu/README.md#trigger) - Trigger event +- [`triggerBroadcast`](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all +- [`triggerBulk`](docs/sdks/novu/README.md#triggerbulk) - Bulk trigger event +- [`workflowGroupsCreate`](docs/sdks/workflowgroups/README.md#create) - Create workflow group +- [`workflowGroupsDelete`](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group +- [`workflowGroupsGet`](docs/sdks/workflowgroups/README.md#get) - Get workflow group +- [`workflowGroupsList`](docs/sdks/workflowgroups/README.md#list) - Get workflow groups +- [`workflowGroupsUpdate`](docs/sdks/workflowgroups/README.md#update) - Update workflow group +>>>>>>> Stashed changes @@ -468,7 +674,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.subscribers.list(); +======= + const result = await novu.subscribers.getAll(); +>>>>>>> Stashed changes for await (const page of result) { // Handle the page @@ -484,14 +694,23 @@ run(); ## Error Handling -All SDK methods return a response object or throw an error. If Error objects are specified in your OpenAPI Spec, the SDK will throw the appropriate Error type. +All SDK methods return a response object or throw an error. By default, an API error will throw a `errors.SDKError`. -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +If a HTTP request fails, an operation my also throw an error from the `models/errors/httpclienterrors.ts` module: -Validation errors can also occur when either method arguments or data returned from the server do not match the expected format. The `SDKValidationError` that is thrown as a result will capture the raw value that failed validation in an attribute called `rawValue`. Additionally, a `pretty()` method is available on this error that can be used to log a nicely formatted string since validation errors can list many issues and the plain error string may be difficult read when debugging. +| HTTP Client Error | Description | +| ---------------------------------------------------- | ---------------------------------------------------- | +| RequestAbortedError | HTTP request was aborted by the client | +| RequestTimeoutError | HTTP request timed out due to an AbortSignal signal | +| ConnectionError | HTTP client was unable to make a request to a server | +| InvalidRequestError | Any input used to create a request is invalid | +| UnexpectedClientError | Unrecognised or unexpected error | +In addition, when custom error responses are specified for an operation, the SDK may throw their associated Error type. You can refer to respective *Errors* tables in SDK docs for more details on possible error types for each operation. For example, the `cancel` method may throw the following errors: + +| Error Type | Status Code | Content Type | +| --------------- | ----------- | ------------ | +| errors.SDKError | 4XX, 5XX | \*/\* | ```typescript import { Novu } from "@novu/api"; @@ -504,7 +723,11 @@ const novu = new Novu({ async function run() { let result; try { +<<<<<<< Updated upstream result = await novu.cancel(""); +======= + result = await novu.cancel(""); +>>>>>>> Stashed changes // Handle the result console.log(result); @@ -527,6 +750,8 @@ async function run() { run(); ``` + +Validation errors can also occur when either method arguments or data returned from the server do not match the expected format. The `SDKValidationError` that is thrown as a result will capture the raw value that failed validation in an attribute called `rawValue`. Additionally, a `pretty()` method is available on this error that can be used to log a nicely formatted string since validation errors can list many issues and the plain error string may be difficult read when debugging. @@ -534,12 +759,14 @@ run(); ### Select Server by Index -You can override the default server globally by passing a server index to the `serverIdx` optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers: +You can override the default server globally by passing a server index to the `serverIdx: number` optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers: + +| # | Server | +| --- | ------------------------ | +| 0 | `https://api.novu.co` | +| 1 | `https://eu.api.novu.co` | -| # | Server | Variables | -| - | ------ | --------- | -| 0 | `https://api.novu.co` | None | -| 1 | `https://eu.api.novu.co` | None | +#### Example ```typescript import { Novu } from "@novu/api"; @@ -550,7 +777,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel(""); +======= + const result = await novu.cancel(""); +>>>>>>> Stashed changes // Handle the result console.log(result); @@ -560,11 +791,9 @@ run(); ``` - ### Override Server URL Per-Client -The default server can also be overridden globally by passing a URL to the `serverURL` optional parameter when initializing the SDK client instance. For example: - +The default server can also be overridden globally by passing a URL to the `serverURL: string` optional parameter when initializing the SDK client instance. For example: ```typescript import { Novu } from "@novu/api"; @@ -574,7 +803,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel(""); +======= + const result = await novu.cancel(""); +>>>>>>> Stashed changes // Handle the result console.log(result); @@ -641,9 +874,9 @@ const sdk = new Novu({ httpClient }); This SDK supports the following security scheme globally: -| Name | Type | Scheme | -| -------- | -------- | -------- | -| `apiKey` | apiKey | API key | +| Name | Type | Scheme | +| -------- | ------ | ------- | +| `apiKey` | apiKey | API key | To authenticate with the API the `apiKey` parameter must be set when initializing the SDK client instance. For example: ```typescript @@ -654,7 +887,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel(""); +======= + const result = await novu.cancel(""); +>>>>>>> Stashed changes // Handle the result console.log(result); @@ -679,7 +916,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel("", { +======= + const result = await novu.cancel("", { +>>>>>>> Stashed changes retries: { strategy: "backoff", backoff: { @@ -719,7 +960,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel(""); +======= + const result = await novu.cancel(""); +>>>>>>> Stashed changes // Handle the result console.log(result); diff --git a/USAGE.md b/USAGE.md index 827664bf..1c3bb460 100644 --- a/USAGE.md +++ b/USAGE.md @@ -9,7 +9,11 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel(""); +======= + const result = await novu.cancel(""); +>>>>>>> Stashed changes // Handle the result console.log(result); @@ -38,11 +42,106 @@ async function run() { topicKey: "", type: "Topic", }, +<<<<<<< Updated upstream +======= + { + topicKey: "", + type: "Topic", + }, + ], + }); + + // Handle the result + console.log(result); +} + +run(); + +``` + +### Broadcast Event to All + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.triggerBroadcast({ + name: "", + overrides: {}, + payload: {}, + }); + + // Handle the result + console.log(result); +} + +run(); + +``` + +### Trigger Notification Events in Bulk + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.triggerBulk({ + events: [ + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, +>>>>>>> Stashed changes ], }); // Handle the result console.log(result); +<<<<<<< Updated upstream } run(); @@ -89,6 +188,8 @@ async function run() { // Handle the result console.log(result); +======= +>>>>>>> Stashed changes } run(); diff --git a/docs/models/components/activitiesresponsedto.md b/docs/models/components/activitiesresponsedto.md index 8e565df5..7eaaf2d8 100644 --- a/docs/models/components/activitiesresponsedto.md +++ b/docs/models/components/activitiesresponsedto.md @@ -10,8 +10,13 @@ let value: ActivitiesResponseDto = { "", ], hasMore: false, +<<<<<<< Updated upstream page: 9786.19, pageSize: 4736.08, +======= + page: 1182.74, + pageSize: 6399.21, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/activitygraphstatesresponse.md b/docs/models/components/activitygraphstatesresponse.md index 0f32d1c5..d499570a 100644 --- a/docs/models/components/activitygraphstatesresponse.md +++ b/docs/models/components/activitygraphstatesresponse.md @@ -8,9 +8,15 @@ import { ActivityGraphStatesResponse } from "@novu/api/models/components"; let value: ActivityGraphStatesResponse = { id: "", channels: [ +<<<<<<< Updated upstream "sms", ], count: 5204.78, +======= + "email", + ], + count: 7742.34, +>>>>>>> Stashed changes templates: [ "", ], diff --git a/docs/models/components/activitynotificationresponsedto.md b/docs/models/components/activitynotificationresponsedto.md index dbf0ad4e..c25e8c6d 100644 --- a/docs/models/components/activitynotificationresponsedto.md +++ b/docs/models/components/activitynotificationresponsedto.md @@ -6,9 +6,15 @@ import { ActivityNotificationResponseDto } from "@novu/api/models/components"; let value: ActivityNotificationResponseDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", transactionId: "", +======= + environmentId: "", + organizationId: "", + transactionId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/activitynotificationresponsedtochannels.md b/docs/models/components/activitynotificationresponsedtochannels.md index b14c69e3..9e02adea 100644 --- a/docs/models/components/activitynotificationresponsedtochannels.md +++ b/docs/models/components/activitynotificationresponsedtochannels.md @@ -5,7 +5,11 @@ ```typescript import { ActivityNotificationResponseDtoChannels } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: ActivityNotificationResponseDtoChannels = "delay"; +======= +let value: ActivityNotificationResponseDtoChannels = "email"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/activitystatsresponsedto.md b/docs/models/components/activitystatsresponsedto.md index 5638b4aa..f738c38b 100644 --- a/docs/models/components/activitystatsresponsedto.md +++ b/docs/models/components/activitystatsresponsedto.md @@ -6,8 +6,13 @@ import { ActivityStatsResponseDto } from "@novu/api/models/components"; let value: ActivityStatsResponseDto = { +<<<<<<< Updated upstream monthlySent: 7805.29, weeklySent: 6788.8, +======= + monthlySent: 9446.69, + weeklySent: 5218.48, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/actor.md b/docs/models/components/actor.md index 7e6bb009..54d9f548 100644 --- a/docs/models/components/actor.md +++ b/docs/models/components/actor.md @@ -4,6 +4,7 @@ It is used to display the Avatar of the provided actor's subscriber id or actor If a new actor object is provided, we will create a new subscriber in our system +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -13,18 +14,30 @@ let value: Actor = { subscriberId: "", }; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = ""; +>>>>>>> Stashed changes ``` ### `components.SubscriberPayloadDto` ```typescript +<<<<<<< Updated upstream const value: components.SubscriberPayloadDto = /* values here */ +======= +const value: components.SubscriberPayloadDto = { + subscriberId: "", +}; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/apikey.md b/docs/models/components/apikey.md index 1711b1aa..3b17aac3 100644 --- a/docs/models/components/apikey.md +++ b/docs/models/components/apikey.md @@ -6,7 +6,11 @@ import { ApiKey } from "@novu/api/models/components"; let value: ApiKey = { +<<<<<<< Updated upstream userId: "", +======= + userId: "", +>>>>>>> Stashed changes key: "", }; ``` diff --git a/docs/models/components/backoffunit.md b/docs/models/components/backoffunit.md index 797a4899..7d593052 100644 --- a/docs/models/components/backoffunit.md +++ b/docs/models/components/backoffunit.md @@ -5,7 +5,11 @@ ```typescript import { BackoffUnit } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: BackoffUnit = "hours"; +======= +let value: BackoffUnit = "minutes"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/bulktriggereventdto.md b/docs/models/components/bulktriggereventdto.md index 7df06717..ec042f6c 100644 --- a/docs/models/components/bulktriggereventdto.md +++ b/docs/models/components/bulktriggereventdto.md @@ -6,7 +6,20 @@ import { BulkTriggerEventDto } from "@novu/api/models/components"; let value: BulkTriggerEventDto = { +<<<<<<< Updated upstream events: [], +======= + events: [ + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + "SUBSCRIBER_ID", + ], + }, + ], +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/channel.md b/docs/models/components/channel.md index 317e9115..4e4a253c 100644 --- a/docs/models/components/channel.md +++ b/docs/models/components/channel.md @@ -5,7 +5,11 @@ ```typescript import { Channel } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Channel = "push"; +======= +let value: Channel = "sms"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/channelcredentials.md b/docs/models/components/channelcredentials.md index 69f27e90..a8e2c131 100644 --- a/docs/models/components/channelcredentials.md +++ b/docs/models/components/channelcredentials.md @@ -6,7 +6,11 @@ import { ChannelCredentials } from "@novu/api/models/components"; let value: ChannelCredentials = { +<<<<<<< Updated upstream webhookUrl: "", +======= + webhookUrl: "https://responsible-fort.info", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/channelpreference.md b/docs/models/components/channelpreference.md index 35f6985c..0ee7e93f 100644 --- a/docs/models/components/channelpreference.md +++ b/docs/models/components/channelpreference.md @@ -7,13 +7,17 @@ import { ChannelPreference } from "@novu/api/models/components"; let value: ChannelPreference = { enabled: false, +<<<<<<< Updated upstream type: "chat", +======= + type: "email", +>>>>>>> Stashed changes }; ``` ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `enabled` | *boolean* | :heavy_check_mark: | If channel is enabled or not | -| `type` | [components.ChannelPreferenceType](../../models/components/channelpreferencetype.md) | :heavy_check_mark: | The type of channel that is enabled or not | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `enabled` | *boolean* | :heavy_check_mark: | If channel is enabled or not | +| `type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | The type of channel that is enabled or not | \ No newline at end of file diff --git a/docs/models/components/channels.md b/docs/models/components/channels.md index 37b84013..c9debcd4 100644 --- a/docs/models/components/channels.md +++ b/docs/models/components/channels.md @@ -5,7 +5,11 @@ ```typescript import { Channels } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Channels = "push"; +======= +let value: Channels = "sms"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/channelsettings.md b/docs/models/components/channelsettings.md index 7a44047d..4f89655d 100644 --- a/docs/models/components/channelsettings.md +++ b/docs/models/components/channelsettings.md @@ -6,11 +6,19 @@ import { ChannelSettings } from "@novu/api/models/components"; let value: ChannelSettings = { +<<<<<<< Updated upstream integrationId: "", credentials: { webhookUrl: "", }, providerId: 1433.53, +======= + integrationId: "", + credentials: { + webhookUrl: "https://agitated-ocelot.name", + }, + providerId: "fcm", +>>>>>>> Stashed changes }; ``` @@ -21,4 +29,8 @@ let value: ChannelSettings = { | `integrationId` | *string* | :heavy_check_mark: | Id of the integration that is used for this channel | | `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | | `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | -| `providerId` | *number* | :heavy_check_mark: | The provider identifier for the credentials | \ No newline at end of file +<<<<<<< Updated upstream +| `providerId` | *number* | :heavy_check_mark: | The provider identifier for the credentials | +======= +| `providerId` | [components.ProviderId](../../models/components/providerid.md) | :heavy_check_mark: | The provider identifier for the credentials | +>>>>>>> Stashed changes diff --git a/docs/models/components/content.md b/docs/models/components/content.md index 68c3b013..49169373 100644 --- a/docs/models/components/content.md +++ b/docs/models/components/content.md @@ -1,5 +1,6 @@ # Content +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -7,18 +8,31 @@ import { Content } from "@novu/api/models/components"; let value: Content = ""; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `components.EmailBlock` ```typescript +<<<<<<< Updated upstream const value: components.EmailBlock = /* values here */ +======= +const value: components.EmailBlock = { + content: "", + type: "button", +}; +>>>>>>> Stashed changes ``` ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = ""; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/createintegrationrequestdto.md b/docs/models/components/createintegrationrequestdto.md index 3652982a..3463e929 100644 --- a/docs/models/components/createintegrationrequestdto.md +++ b/docs/models/components/createintegrationrequestdto.md @@ -6,8 +6,13 @@ import { CreateIntegrationRequestDto } from "@novu/api/models/components"; let value: CreateIntegrationRequestDto = { +<<<<<<< Updated upstream channel: "push", providerId: "", +======= + channel: "chat", + providerId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/createsubscriberrequestdto.md b/docs/models/components/createsubscriberrequestdto.md index 169be995..c64ba1ff 100644 --- a/docs/models/components/createsubscriberrequestdto.md +++ b/docs/models/components/createsubscriberrequestdto.md @@ -6,7 +6,11 @@ import { CreateSubscriberRequestDto } from "@novu/api/models/components"; let value: CreateSubscriberRequestDto = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/digestregularmetadataunit.md b/docs/models/components/digestregularmetadataunit.md index f0387535..d9ecca7d 100644 --- a/docs/models/components/digestregularmetadataunit.md +++ b/docs/models/components/digestregularmetadataunit.md @@ -5,7 +5,11 @@ ```typescript import { DigestRegularMetadataUnit } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: DigestRegularMetadataUnit = "months"; +======= +let value: DigestRegularMetadataUnit = "seconds"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/digesttimedmetadataunit.md b/docs/models/components/digesttimedmetadataunit.md index 6f392cc4..5957fe40 100644 --- a/docs/models/components/digesttimedmetadataunit.md +++ b/docs/models/components/digesttimedmetadataunit.md @@ -5,7 +5,11 @@ ```typescript import { DigestTimedMetadataUnit } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: DigestTimedMetadataUnit = "hours"; +======= +let value: DigestTimedMetadataUnit = "seconds"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/emailblock.md b/docs/models/components/emailblock.md index da8b172a..25eeb812 100644 --- a/docs/models/components/emailblock.md +++ b/docs/models/components/emailblock.md @@ -7,7 +7,11 @@ import { EmailBlock } from "@novu/api/models/components"; let value: EmailBlock = { content: "", +<<<<<<< Updated upstream type: "text", +======= + type: "button", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/emailblockstyles.md b/docs/models/components/emailblockstyles.md index 8ddbd4e2..e5a75b0d 100644 --- a/docs/models/components/emailblockstyles.md +++ b/docs/models/components/emailblockstyles.md @@ -6,7 +6,11 @@ import { EmailBlockStyles } from "@novu/api/models/components"; let value: EmailBlockStyles = { +<<<<<<< Updated upstream textAlign: "center", +======= + textAlign: "right", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/environmentresponsedto.md b/docs/models/components/environmentresponsedto.md index 9cde3edf..269c2f75 100644 --- a/docs/models/components/environmentresponsedto.md +++ b/docs/models/components/environmentresponsedto.md @@ -6,8 +6,13 @@ import { EnvironmentResponseDto } from "@novu/api/models/components"; let value: EnvironmentResponseDto = { +<<<<<<< Updated upstream organizationId: "", parentId: "", +======= + organizationId: "", + parentId: "", +>>>>>>> Stashed changes identifier: "", name: "", }; @@ -22,4 +27,9 @@ let value: EnvironmentResponseDto = { | `parentId` | *string* | :heavy_check_mark: | N/A | | `apiKeys` | *string*[] | :heavy_minus_sign: | N/A | | `identifier` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +<<<<<<< Updated upstream +| `name` | *string* | :heavy_check_mark: | N/A | +======= +| `name` | *string* | :heavy_check_mark: | N/A | +| `slug` | *string* | :heavy_minus_sign: | N/A | +>>>>>>> Stashed changes diff --git a/docs/models/components/executiondetailsresponsedto.md b/docs/models/components/executiondetailsresponsedto.md index b12ad80d..e4457362 100644 --- a/docs/models/components/executiondetailsresponsedto.md +++ b/docs/models/components/executiondetailsresponsedto.md @@ -6,6 +6,7 @@ import { ExecutionDetailsResponseDto } from "@novu/api/models/components"; let value: ExecutionDetailsResponseDto = { +<<<<<<< Updated upstream environmentId: "", jobId: "", notificationId: "", @@ -19,6 +20,21 @@ let value: ExecutionDetailsResponseDto = { source: "Internal", status: "Failed", transactionId: "", +======= + environmentId: "", + jobId: "", + notificationId: "", + notificationTemplateId: "", + organizationId: "", + subscriberId: "", + channel: "custom", + detail: "", + isRetry: false, + isTest: false, + source: "Webhook", + status: "Failed", + transactionId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/executiondetailsresponsedtochannel.md b/docs/models/components/executiondetailsresponsedtochannel.md index aa40f980..4f9f2c26 100644 --- a/docs/models/components/executiondetailsresponsedtochannel.md +++ b/docs/models/components/executiondetailsresponsedtochannel.md @@ -5,7 +5,11 @@ ```typescript import { ExecutionDetailsResponseDtoChannel } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: ExecutionDetailsResponseDtoChannel = "custom"; +======= +let value: ExecutionDetailsResponseDtoChannel = "chat"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/executiondetailsresponsedtostatus.md b/docs/models/components/executiondetailsresponsedtostatus.md index 169e8d8a..03d95670 100644 --- a/docs/models/components/executiondetailsresponsedtostatus.md +++ b/docs/models/components/executiondetailsresponsedtostatus.md @@ -5,7 +5,11 @@ ```typescript import { ExecutionDetailsResponseDtoStatus } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: ExecutionDetailsResponseDtoStatus = "ReadConfirmation"; +======= +let value: ExecutionDetailsResponseDtoStatus = "Failed"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/feedidentifier.md b/docs/models/components/feedidentifier.md index 524dd4b6..4f23b093 100644 --- a/docs/models/components/feedidentifier.md +++ b/docs/models/components/feedidentifier.md @@ -2,6 +2,7 @@ Optional feed identifier or array of feed identifiers +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -11,18 +12,30 @@ let value: FeedIdentifier = [ "", ]; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = ""; +>>>>>>> Stashed changes ``` ### `string[]` ```typescript +<<<<<<< Updated upstream const value: string[] = /* values here */ +======= +const value: string[] = [ + "", +]; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/feedresponsedto.md b/docs/models/components/feedresponsedto.md index 0f40b894..0ba4289e 100644 --- a/docs/models/components/feedresponsedto.md +++ b/docs/models/components/feedresponsedto.md @@ -10,8 +10,13 @@ let value: FeedResponseDto = { "", ], hasMore: false, +<<<<<<< Updated upstream page: 7917.25, pageSize: 8121.69, +======= + page: 4386.02, + pageSize: 9883.74, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/fieldfilterpart.md b/docs/models/components/fieldfilterpart.md index 367c6044..6fe68e9b 100644 --- a/docs/models/components/fieldfilterpart.md +++ b/docs/models/components/fieldfilterpart.md @@ -7,8 +7,13 @@ import { FieldFilterPart } from "@novu/api/models/components"; let value: FieldFilterPart = { field: "", +<<<<<<< Updated upstream on: "subscriber", operator: "NOT_EQUAL", +======= + on: "payload", + operator: "LIKE", +>>>>>>> Stashed changes value: "", }; ``` diff --git a/docs/models/components/filtertopicsresponsedto.md b/docs/models/components/filtertopicsresponsedto.md index 60bd21ba..8ac3b6d6 100644 --- a/docs/models/components/filtertopicsresponsedto.md +++ b/docs/models/components/filtertopicsresponsedto.md @@ -8,8 +8,13 @@ import { FilterTopicsResponseDto } from "@novu/api/models/components"; let value: FilterTopicsResponseDto = { data: [ { +<<<<<<< Updated upstream environmentId: "", organizationId: "", +======= + environmentId: "", + organizationId: "", +>>>>>>> Stashed changes key: "", name: "", subscribers: [ @@ -17,9 +22,15 @@ let value: FilterTopicsResponseDto = { ], }, ], +<<<<<<< Updated upstream page: 3637.11, pageSize: 3250.47, totalCount: 5701.97, +======= + page: 8811.03, + pageSize: 5812.73, + totalCount: 8817.35, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/gettopicresponsedto.md b/docs/models/components/gettopicresponsedto.md index 810fe726..cfd0df11 100644 --- a/docs/models/components/gettopicresponsedto.md +++ b/docs/models/components/gettopicresponsedto.md @@ -6,8 +6,13 @@ import { GetTopicResponseDto } from "@novu/api/models/components"; let value: GetTopicResponseDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", +======= + environmentId: "", + organizationId: "", +>>>>>>> Stashed changes key: "", name: "", subscribers: [ diff --git a/docs/models/components/integrationresponsedto.md b/docs/models/components/integrationresponsedto.md index 7fb511f1..6237ffbc 100644 --- a/docs/models/components/integrationresponsedto.md +++ b/docs/models/components/integrationresponsedto.md @@ -6,8 +6,13 @@ import { IntegrationResponseDto } from "@novu/api/models/components"; let value: IntegrationResponseDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", +======= + environmentId: "", + organizationId: "", +>>>>>>> Stashed changes active: false, channel: "sms", credentials: {}, @@ -17,7 +22,11 @@ let value: IntegrationResponseDto = { identifier: "", name: "", primary: false, +<<<<<<< Updated upstream providerId: "", +======= + providerId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/integrationresponsedtochannel.md b/docs/models/components/integrationresponsedtochannel.md index d25ca805..c7ce2156 100644 --- a/docs/models/components/integrationresponsedtochannel.md +++ b/docs/models/components/integrationresponsedtochannel.md @@ -5,7 +5,11 @@ ```typescript import { IntegrationResponseDtoChannel } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: IntegrationResponseDtoChannel = "sms"; +======= +let value: IntegrationResponseDtoChannel = "chat"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/markas.md b/docs/models/components/markas.md index ba69869f..a2b04ec2 100644 --- a/docs/models/components/markas.md +++ b/docs/models/components/markas.md @@ -7,7 +7,11 @@ Mark all subscriber messages as read, unread, seen or unseen ```typescript import { MarkAs } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: MarkAs = "unseen"; +======= +let value: MarkAs = "read"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/markmessageactionasseendto.md b/docs/models/components/markmessageactionasseendto.md index 9e60e4cf..d99b6e72 100644 --- a/docs/models/components/markmessageactionasseendto.md +++ b/docs/models/components/markmessageactionasseendto.md @@ -6,7 +6,11 @@ import { MarkMessageActionAsSeenDto } from "@novu/api/models/components"; let value: MarkMessageActionAsSeenDto = { +<<<<<<< Updated upstream status: "pending", +======= + status: "done", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/messageactionresulttype.md b/docs/models/components/messageactionresulttype.md index 7b4520f3..be69819a 100644 --- a/docs/models/components/messageactionresulttype.md +++ b/docs/models/components/messageactionresulttype.md @@ -5,7 +5,11 @@ ```typescript import { MessageActionResultType } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: MessageActionResultType = "primary"; +======= +let value: MessageActionResultType = "secondary"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/messageactionstatus.md b/docs/models/components/messageactionstatus.md index c039a55b..50309180 100644 --- a/docs/models/components/messageactionstatus.md +++ b/docs/models/components/messageactionstatus.md @@ -5,7 +5,11 @@ ```typescript import { MessageActionStatus } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: MessageActionStatus = "pending"; +======= +let value: MessageActionStatus = "done"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/messagebutton.md b/docs/models/components/messagebutton.md index eabd38d1..8f11809e 100644 --- a/docs/models/components/messagebutton.md +++ b/docs/models/components/messagebutton.md @@ -7,7 +7,11 @@ import { MessageButton } from "@novu/api/models/components"; let value: MessageButton = { content: "", +<<<<<<< Updated upstream type: "secondary", +======= + type: "primary", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/messageid.md b/docs/models/components/messageid.md index 69188376..78ab5a76 100644 --- a/docs/models/components/messageid.md +++ b/docs/models/components/messageid.md @@ -1,5 +1,6 @@ # MessageId +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -7,18 +8,30 @@ import { MessageId } from "@novu/api/models/components"; let value: MessageId = ""; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = ""; +>>>>>>> Stashed changes ``` ### `string[]` ```typescript +<<<<<<< Updated upstream const value: string[] = /* values here */ +======= +const value: string[] = [ + "", +]; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/messagemarkasrequestdto.md b/docs/models/components/messagemarkasrequestdto.md index b4255e6a..de144356 100644 --- a/docs/models/components/messagemarkasrequestdto.md +++ b/docs/models/components/messagemarkasrequestdto.md @@ -7,7 +7,13 @@ import { MessageMarkAsRequestDto } from "@novu/api/models/components"; let value: MessageMarkAsRequestDto = { markAs: "seen", +<<<<<<< Updated upstream messageId: "", +======= + messageId: [ + "", + ], +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/messagemarkasrequestdtomarkas.md b/docs/models/components/messagemarkasrequestdtomarkas.md index 9bdd3edb..864b2ab8 100644 --- a/docs/models/components/messagemarkasrequestdtomarkas.md +++ b/docs/models/components/messagemarkasrequestdtomarkas.md @@ -5,7 +5,11 @@ ```typescript import { MessageMarkAsRequestDtoMarkAs } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: MessageMarkAsRequestDtoMarkAs = "read"; +======= +let value: MessageMarkAsRequestDtoMarkAs = "seen"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/messageresponsedto.md b/docs/models/components/messageresponsedto.md index 2dc6d12c..0698b0e1 100644 --- a/docs/models/components/messageresponsedto.md +++ b/docs/models/components/messageresponsedto.md @@ -6,6 +6,7 @@ import { MessageResponseDto } from "@novu/api/models/components"; let value: MessageResponseDto = { +<<<<<<< Updated upstream environmentId: "", messageTemplateId: "", notificationId: "", @@ -13,6 +14,15 @@ let value: MessageResponseDto = { subscriberId: "", templateId: "", channel: "sms", +======= + environmentId: "", + messageTemplateId: "", + notificationId: "", + organizationId: "", + subscriberId: "", + templateId: "", + channel: "in_app", +>>>>>>> Stashed changes content: { content: "", type: "text", @@ -21,14 +31,22 @@ let value: MessageResponseDto = { cta: { data: {}, }, +<<<<<<< Updated upstream errorId: "", +======= + errorId: "", +>>>>>>> Stashed changes errorText: "", overrides: {}, payload: {}, read: false, seen: false, status: "sent", +<<<<<<< Updated upstream transactionId: "", +======= + transactionId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/messageresponsedtochannel.md b/docs/models/components/messageresponsedtochannel.md index 4d80ce7c..693d1490 100644 --- a/docs/models/components/messageresponsedtochannel.md +++ b/docs/models/components/messageresponsedtochannel.md @@ -5,7 +5,11 @@ ```typescript import { MessageResponseDtoChannel } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: MessageResponseDtoChannel = "in_app"; +======= +let value: MessageResponseDtoChannel = "email"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/messageresponsedtostatus.md b/docs/models/components/messageresponsedtostatus.md index d2a8d2eb..f3fa452f 100644 --- a/docs/models/components/messageresponsedtostatus.md +++ b/docs/models/components/messageresponsedtostatus.md @@ -5,7 +5,11 @@ ```typescript import { MessageResponseDtoStatus } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: MessageResponseDtoStatus = "warning"; +======= +let value: MessageResponseDtoStatus = "sent"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/metadata.md b/docs/models/components/metadata.md index 6d143455..097a034e 100644 --- a/docs/models/components/metadata.md +++ b/docs/models/components/metadata.md @@ -1,5 +1,6 @@ # Metadata +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -9,30 +10,57 @@ let value: Metadata = { type: "backoff", }; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `components.DigestRegularMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DigestRegularMetadata = /* values here */ +======= +const value: components.DigestRegularMetadata = { + type: "backoff", +}; +>>>>>>> Stashed changes ``` ### `components.DigestTimedMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DigestTimedMetadata = /* values here */ +======= +const value: components.DigestTimedMetadata = { + type: "timed", +}; +>>>>>>> Stashed changes ``` ### `components.DelayRegularMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DelayRegularMetadata = /* values here */ +======= +const value: components.DelayRegularMetadata = { + type: "regular", +}; +>>>>>>> Stashed changes ``` ### `components.DelayScheduledMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DelayScheduledMetadata = /* values here */ +======= +const value: components.DelayScheduledMetadata = { + delayPath: "", + type: "scheduled", +}; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/monthlytype.md b/docs/models/components/monthlytype.md index 3113ba7f..91f60daf 100644 --- a/docs/models/components/monthlytype.md +++ b/docs/models/components/monthlytype.md @@ -5,7 +5,11 @@ ```typescript import { MonthlyType } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: MonthlyType = "each"; +======= +let value: MonthlyType = "on"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/notificationgroup.md b/docs/models/components/notificationgroup.md index 1af391ed..28c17585 100644 --- a/docs/models/components/notificationgroup.md +++ b/docs/models/components/notificationgroup.md @@ -6,8 +6,13 @@ import { NotificationGroup } from "@novu/api/models/components"; let value: NotificationGroup = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", +======= + environmentId: "", + organizationId: "", +>>>>>>> Stashed changes name: "", }; ``` diff --git a/docs/models/components/notificationgroupresponsedto.md b/docs/models/components/notificationgroupresponsedto.md index 78a24be3..06390bf4 100644 --- a/docs/models/components/notificationgroupresponsedto.md +++ b/docs/models/components/notificationgroupresponsedto.md @@ -6,8 +6,13 @@ import { NotificationGroupResponseDto } from "@novu/api/models/components"; let value: NotificationGroupResponseDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", +======= + environmentId: "", + organizationId: "", +>>>>>>> Stashed changes name: "", }; ``` diff --git a/docs/models/components/notificationstepvariantmetadata.md b/docs/models/components/notificationstepvariantmetadata.md index ec02b532..11b0444d 100644 --- a/docs/models/components/notificationstepvariantmetadata.md +++ b/docs/models/components/notificationstepvariantmetadata.md @@ -1,5 +1,6 @@ # NotificationStepVariantMetadata +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -9,30 +10,57 @@ let value: NotificationStepVariantMetadata = { type: "backoff", }; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `components.DigestRegularMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DigestRegularMetadata = /* values here */ +======= +const value: components.DigestRegularMetadata = { + type: "regular", +}; +>>>>>>> Stashed changes ``` ### `components.DigestTimedMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DigestTimedMetadata = /* values here */ +======= +const value: components.DigestTimedMetadata = { + type: "timed", +}; +>>>>>>> Stashed changes ``` ### `components.DelayRegularMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DelayRegularMetadata = /* values here */ +======= +const value: components.DelayRegularMetadata = { + type: "regular", +}; +>>>>>>> Stashed changes ``` ### `components.DelayScheduledMetadata` ```typescript +<<<<<<< Updated upstream const value: components.DelayScheduledMetadata = /* values here */ +======= +const value: components.DelayScheduledMetadata = { + delayPath: "", + type: "scheduled", +}; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/on.md b/docs/models/components/on.md index 26cb236e..7380661b 100644 --- a/docs/models/components/on.md +++ b/docs/models/components/on.md @@ -5,7 +5,11 @@ ```typescript import { On } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: On = "subscriber"; +======= +let value: On = "payload"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/operator.md b/docs/models/components/operator.md index 52245c05..4997ba21 100644 --- a/docs/models/components/operator.md +++ b/docs/models/components/operator.md @@ -5,7 +5,11 @@ ```typescript import { Operator } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Operator = "BETWEEN"; +======= +let value: Operator = "NOT_LIKE"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/ordinal.md b/docs/models/components/ordinal.md index e09e7bd5..52b43ba4 100644 --- a/docs/models/components/ordinal.md +++ b/docs/models/components/ordinal.md @@ -5,7 +5,11 @@ ```typescript import { Ordinal } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Ordinal = "4"; +======= +let value: Ordinal = "2"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/ordinalvalue.md b/docs/models/components/ordinalvalue.md index 1d189ed0..843f0826 100644 --- a/docs/models/components/ordinalvalue.md +++ b/docs/models/components/ordinalvalue.md @@ -5,7 +5,11 @@ ```typescript import { OrdinalValue } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: OrdinalValue = "monday"; +======= +let value: OrdinalValue = "thursday"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/providerid.md b/docs/models/components/providerid.md new file mode 100644 index 00000000..1c44735f --- /dev/null +++ b/docs/models/components/providerid.md @@ -0,0 +1,17 @@ +# ProviderId + +The provider identifier for the credentials + +## Example Usage + +```typescript +import { ProviderId } from "@novu/api/models/components"; + +let value: ProviderId = "getstream"; +``` + +## Values + +```typescript +"slack" | "discord" | "msteams" | "mattermost" | "ryver" | "zulip" | "grafana-on-call" | "getstream" | "rocket-chat" | "whatsapp-business" | "fcm" | "apns" | "expo" | "one-signal" | "pushpad" | "push-webhook" | "pusher-beams" +``` \ No newline at end of file diff --git a/docs/models/components/renametopicresponsedto.md b/docs/models/components/renametopicresponsedto.md index a512fd9e..0dea307c 100644 --- a/docs/models/components/renametopicresponsedto.md +++ b/docs/models/components/renametopicresponsedto.md @@ -6,8 +6,13 @@ import { RenameTopicResponseDto } from "@novu/api/models/components"; let value: RenameTopicResponseDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", +======= + environmentId: "", + organizationId: "", +>>>>>>> Stashed changes key: "", name: "", subscribers: [ diff --git a/docs/models/components/source.md b/docs/models/components/source.md index cc43d1f7..dbe34de0 100644 --- a/docs/models/components/source.md +++ b/docs/models/components/source.md @@ -5,7 +5,11 @@ ```typescript import { Source } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Source = "Credentials"; +======= +let value: Source = "Payload"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/stepfilter.md b/docs/models/components/stepfilter.md index 86f42673..c2e4f77a 100644 --- a/docs/models/components/stepfilter.md +++ b/docs/models/components/stepfilter.md @@ -9,14 +9,23 @@ let value: StepFilter = { children: [ { field: "", +<<<<<<< Updated upstream on: "payload", operator: "LIKE", +======= + on: "subscriber", + operator: "SMALLER", +>>>>>>> Stashed changes value: "", }, ], isNegated: false, type: "BOOLEAN", +<<<<<<< Updated upstream value: "AND", +======= + value: "OR", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/subscriberpayloaddto.md b/docs/models/components/subscriberpayloaddto.md index 3ff650c3..2017dd76 100644 --- a/docs/models/components/subscriberpayloaddto.md +++ b/docs/models/components/subscriberpayloaddto.md @@ -6,7 +6,11 @@ import { SubscriberPayloadDto } from "@novu/api/models/components"; let value: SubscriberPayloadDto = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/subscriberresponsedto.md b/docs/models/components/subscriberresponsedto.md index dd59905f..f1fff5ad 100644 --- a/docs/models/components/subscriberresponsedto.md +++ b/docs/models/components/subscriberresponsedto.md @@ -6,11 +6,19 @@ import { SubscriberResponseDto } from "@novu/api/models/components"; let value: SubscriberResponseDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", createdAt: "", deleted: false, subscriberId: "", +======= + environmentId: "", + organizationId: "", + createdAt: "", + deleted: false, + subscriberId: "", +>>>>>>> Stashed changes updatedAt: "", }; ``` @@ -35,4 +43,5 @@ let value: SubscriberResponseDto = { | `locale` | *string* | :heavy_minus_sign: | N/A | | `phone` | *string* | :heavy_minus_sign: | N/A | | `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | +| `topics` | *string*[] | :heavy_minus_sign: | Topics that subscriber belongs to | | `updatedAt` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/tenant.md b/docs/models/components/tenant.md index 5d4ea854..e4e716b4 100644 --- a/docs/models/components/tenant.md +++ b/docs/models/components/tenant.md @@ -4,6 +4,7 @@ It is used to specify a tenant context during trigger event. Existing tenants will be updated with the provided details. +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -11,18 +12,28 @@ import { Tenant } from "@novu/api/models/components"; let value: Tenant = {}; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = ""; +>>>>>>> Stashed changes ``` ### `components.TenantPayloadDto` ```typescript +<<<<<<< Updated upstream const value: components.TenantPayloadDto = /* values here */ +======= +const value: components.TenantPayloadDto = {}; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/textalign.md b/docs/models/components/textalign.md index aa50769d..7f394420 100644 --- a/docs/models/components/textalign.md +++ b/docs/models/components/textalign.md @@ -5,7 +5,11 @@ ```typescript import { TextAlign } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: TextAlign = "center"; +======= +let value: TextAlign = "right"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/to.md b/docs/models/components/to.md index 7dfeee10..4d3065a9 100644 --- a/docs/models/components/to.md +++ b/docs/models/components/to.md @@ -1,5 +1,6 @@ # To +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -7,24 +8,43 @@ import { To } from "@novu/api/models/components"; let value: To = "SUBSCRIBER_ID"; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `components.SubscriberPayloadDto` ```typescript +<<<<<<< Updated upstream const value: components.SubscriberPayloadDto = /* values here */ +======= +const value: components.SubscriberPayloadDto = { + subscriberId: "", +}; +>>>>>>> Stashed changes ``` ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = "SUBSCRIBER_ID"; +>>>>>>> Stashed changes ``` ### `components.TopicPayloadDto` ```typescript +<<<<<<< Updated upstream const value: components.TopicPayloadDto = /* values here */ +======= +const value: components.TopicPayloadDto = { + topicKey: "", + type: "Topic", +}; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/topicdto.md b/docs/models/components/topicdto.md index b91cff17..1b37538b 100644 --- a/docs/models/components/topicdto.md +++ b/docs/models/components/topicdto.md @@ -6,8 +6,13 @@ import { TopicDto } from "@novu/api/models/components"; let value: TopicDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", +======= + environmentId: "", + organizationId: "", +>>>>>>> Stashed changes key: "", name: "", subscribers: [ diff --git a/docs/models/components/topicsubscriberdto.md b/docs/models/components/topicsubscriberdto.md index 716a8e71..e9942824 100644 --- a/docs/models/components/topicsubscriberdto.md +++ b/docs/models/components/topicsubscriberdto.md @@ -6,11 +6,19 @@ import { TopicSubscriberDto } from "@novu/api/models/components"; let value: TopicSubscriberDto = { +<<<<<<< Updated upstream environmentId: "", organizationId: "", subscriberId: "", topicId: "", externalSubscriberId: "", +======= + environmentId: "", + organizationId: "", + subscriberId: "", + topicId: "", + externalSubscriberId: "", +>>>>>>> Stashed changes topicKey: "", }; ``` diff --git a/docs/models/components/triggereventrequestdto.md b/docs/models/components/triggereventrequestdto.md index 1ce1aed0..beec50b6 100644 --- a/docs/models/components/triggereventrequestdto.md +++ b/docs/models/components/triggereventrequestdto.md @@ -10,10 +10,14 @@ let value: TriggerEventRequestDto = { overrides: {}, payload: {}, to: [ +<<<<<<< Updated upstream { topicKey: "", type: "Topic", }, +======= + "SUBSCRIBER_ID", +>>>>>>> Stashed changes ], }; ``` diff --git a/docs/models/components/triggereventresponsedto.md b/docs/models/components/triggereventresponsedto.md index 49fbc392..840aa514 100644 --- a/docs/models/components/triggereventresponsedto.md +++ b/docs/models/components/triggereventresponsedto.md @@ -7,7 +7,11 @@ import { TriggerEventResponseDto } from "@novu/api/models/components"; let value: TriggerEventResponseDto = { acknowledged: false, +<<<<<<< Updated upstream status: "processed", +======= + status: "subscriber_id_missing", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/triggereventtoallrequestdtoactor.md b/docs/models/components/triggereventtoallrequestdtoactor.md index f40e47dd..3141e645 100644 --- a/docs/models/components/triggereventtoallrequestdtoactor.md +++ b/docs/models/components/triggereventtoallrequestdtoactor.md @@ -4,6 +4,7 @@ It is used to display the Avatar of the provided actor's subscriber id or actor If a new actor object is provided, we will create a new subscriber in our system +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -13,18 +14,30 @@ let value: TriggerEventToAllRequestDtoActor = { subscriberId: "", }; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = ""; +>>>>>>> Stashed changes ``` ### `components.SubscriberPayloadDto` ```typescript +<<<<<<< Updated upstream const value: components.SubscriberPayloadDto = /* values here */ +======= +const value: components.SubscriberPayloadDto = { + subscriberId: "", +}; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/triggereventtoallrequestdtotenant.md b/docs/models/components/triggereventtoallrequestdtotenant.md index ec8b0b47..4d4dd1dd 100644 --- a/docs/models/components/triggereventtoallrequestdtotenant.md +++ b/docs/models/components/triggereventtoallrequestdtotenant.md @@ -4,6 +4,7 @@ It is used to specify a tenant context during trigger event. If a new tenant object is provided, we will create a new tenant. +<<<<<<< Updated upstream ## Example Usage ```typescript @@ -11,18 +12,28 @@ import { TriggerEventToAllRequestDtoTenant } from "@novu/api/models/components"; let value: TriggerEventToAllRequestDtoTenant = {}; ``` +======= +>>>>>>> Stashed changes ## Supported Types ### `string` ```typescript +<<<<<<< Updated upstream const value: string = /* values here */ +======= +const value: string = ""; +>>>>>>> Stashed changes ``` ### `components.TenantPayloadDto` ```typescript +<<<<<<< Updated upstream const value: components.TenantPayloadDto = /* values here */ +======= +const value: components.TenantPayloadDto = {}; +>>>>>>> Stashed changes ``` diff --git a/docs/models/components/type.md b/docs/models/components/type.md index d80a2295..79ad3a6c 100644 --- a/docs/models/components/type.md +++ b/docs/models/components/type.md @@ -1,15 +1,28 @@ # Type +<<<<<<< Updated upstream +======= +The type of channel that is enabled or not + +>>>>>>> Stashed changes ## Example Usage ```typescript import { Type } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Type = "DefaultLayout"; +======= +let value: Type = "in_app"; +>>>>>>> Stashed changes ``` ## Values ```typescript +<<<<<<< Updated upstream "Feed" | "MessageTemplate" | "Layout" | "DefaultLayout" | "NotificationTemplate" | "NotificationGroup" | "TranslationGroup" | "Translation" +======= +"in_app" | "email" | "sms" | "chat" | "push" +>>>>>>> Stashed changes ``` \ No newline at end of file diff --git a/docs/models/components/unit.md b/docs/models/components/unit.md index c493c406..6eba3a2d 100644 --- a/docs/models/components/unit.md +++ b/docs/models/components/unit.md @@ -5,7 +5,11 @@ ```typescript import { Unit } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Unit = "weeks"; +======= +let value: Unit = "minutes"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/unseencountresponse.md b/docs/models/components/unseencountresponse.md index 2594614d..bd0f5d88 100644 --- a/docs/models/components/unseencountresponse.md +++ b/docs/models/components/unseencountresponse.md @@ -6,7 +6,11 @@ import { UnseenCountResponse } from "@novu/api/models/components"; let value: UnseenCountResponse = { +<<<<<<< Updated upstream count: 7506.86, +======= + count: 3965.06, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/updatesubscriberchannelrequestdto.md b/docs/models/components/updatesubscriberchannelrequestdto.md index 0c0c628c..f8ffad48 100644 --- a/docs/models/components/updatesubscriberchannelrequestdto.md +++ b/docs/models/components/updatesubscriberchannelrequestdto.md @@ -7,9 +7,15 @@ import { UpdateSubscriberChannelRequestDto } from "@novu/api/models/components"; let value: UpdateSubscriberChannelRequestDto = { credentials: { +<<<<<<< Updated upstream webhookUrl: "", }, providerId: 5373.73, +======= + webhookUrl: "https://rare-pillbox.biz/", + }, + providerId: "msteams", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md b/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md new file mode 100644 index 00000000..e13a6693 --- /dev/null +++ b/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md @@ -0,0 +1,17 @@ +# UpdateSubscriberChannelRequestDtoProviderId + +The provider identifier for the credentials + +## Example Usage + +```typescript +import { UpdateSubscriberChannelRequestDtoProviderId } from "@novu/api/models/components"; + +let value: UpdateSubscriberChannelRequestDtoProviderId = "apns"; +``` + +## Values + +```typescript +"slack" | "discord" | "msteams" | "mattermost" | "ryver" | "zulip" | "grafana-on-call" | "getstream" | "rocket-chat" | "whatsapp-business" | "fcm" | "apns" | "expo" | "one-signal" | "pushpad" | "push-webhook" | "pusher-beams" +``` \ No newline at end of file diff --git a/docs/models/components/updatesubscriberrequestdto.md b/docs/models/components/updatesubscriberrequestdto.md index e50179cf..a8b64390 100644 --- a/docs/models/components/updatesubscriberrequestdto.md +++ b/docs/models/components/updatesubscriberrequestdto.md @@ -13,6 +13,7 @@ let value: UpdateSubscriberRequestDto = {}; | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | | `avatar` | *string* | :heavy_minus_sign: | N/A | +| `channels` | *string*[] | :heavy_minus_sign: | N/A | | `data` | [components.UpdateSubscriberRequestDtoData](../../models/components/updatesubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | | `email` | *string* | :heavy_minus_sign: | N/A | | `firstName` | *string* | :heavy_minus_sign: | N/A | diff --git a/docs/models/components/value.md b/docs/models/components/value.md index b49c292d..6e87b8d1 100644 --- a/docs/models/components/value.md +++ b/docs/models/components/value.md @@ -5,7 +5,11 @@ ```typescript import { Value } from "@novu/api/models/components"; +<<<<<<< Updated upstream let value: Value = "AND"; +======= +let value: Value = "OR"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/workflowresponse.md b/docs/models/components/workflowresponse.md index 582f80c6..f1d46e89 100644 --- a/docs/models/components/workflowresponse.md +++ b/docs/models/components/workflowresponse.md @@ -6,15 +6,23 @@ import { WorkflowResponse } from "@novu/api/models/components"; let value: WorkflowResponse = { +<<<<<<< Updated upstream creatorId: "", environmentId: "", notificationGroupId: "", organizationId: "", +======= + creatorId: "", + environmentId: "", + notificationGroupId: "", + organizationId: "", +>>>>>>> Stashed changes active: false, critical: false, deleted: false, deletedAt: "", deletedBy: "", +<<<<<<< Updated upstream description: "Advanced eco-centric middleware", draft: false, name: "", @@ -24,6 +32,29 @@ let value: WorkflowResponse = { "", ], triggers: [], +======= + description: "know gleefully ew ceramic", + draft: false, + name: "", + preferenceSettings: {}, + steps: [ + {}, + ], + tags: [ + "", + ], + triggers: [ + { + identifier: "", + type: "event", + variables: [ + { + name: "", + }, + ], + }, + ], +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/channel.md b/docs/models/operations/channel.md index 5b0da9e5..528dd915 100644 --- a/docs/models/operations/channel.md +++ b/docs/models/operations/channel.md @@ -7,7 +7,11 @@ The channel of the message to be deleted ```typescript import { Channel } from "@novu/api/models/operations"; +<<<<<<< Updated upstream let value: Channel = "push"; +======= +let value: Channel = "chat"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/operations/channels.md b/docs/models/operations/channels.md index 08b00444..03061abc 100644 --- a/docs/models/operations/channels.md +++ b/docs/models/operations/channels.md @@ -5,7 +5,11 @@ ```typescript import { Channels } from "@novu/api/models/operations"; +<<<<<<< Updated upstream let value: Channels = "chat"; +======= +let value: Channels = "sms"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/operations/eventscontrollercancelrequest.md b/docs/models/operations/eventscontrollercancelrequest.md index e66845f7..337d4a9b 100644 --- a/docs/models/operations/eventscontrollercancelrequest.md +++ b/docs/models/operations/eventscontrollercancelrequest.md @@ -6,7 +6,11 @@ import { EventsControllerCancelRequest } from "@novu/api/models/operations"; let value: EventsControllerCancelRequest = { +<<<<<<< Updated upstream transactionId: "", +======= + transactionId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md index 9e5fbef5..6cf15c2a 100644 --- a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md +++ b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md @@ -7,8 +7,13 @@ import { ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest } f let value: ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = { +<<<<<<< Updated upstream notificationId: "", subscriberId: "", +======= + notificationId: "", + subscriberId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md b/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md index 3495cb1c..8578c8cb 100644 --- a/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md +++ b/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md @@ -6,7 +6,11 @@ import { IntegrationsControllerGetWebhookSupportStatusRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerGetWebhookSupportStatusRequest = { +<<<<<<< Updated upstream providerOrIntegrationId: "", +======= + providerOrIntegrationId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollerremoveintegrationrequest.md b/docs/models/operations/integrationscontrollerremoveintegrationrequest.md index 6dfbb687..acc95143 100644 --- a/docs/models/operations/integrationscontrollerremoveintegrationrequest.md +++ b/docs/models/operations/integrationscontrollerremoveintegrationrequest.md @@ -6,7 +6,11 @@ import { IntegrationsControllerRemoveIntegrationRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerRemoveIntegrationRequest = { +<<<<<<< Updated upstream integrationId: "", +======= + integrationId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md b/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md index bca2b6c6..fe3d34ea 100644 --- a/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md +++ b/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md @@ -6,7 +6,11 @@ import { IntegrationsControllerSetIntegrationAsPrimaryRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerSetIntegrationAsPrimaryRequest = { +<<<<<<< Updated upstream integrationId: "", +======= + integrationId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md b/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md index d277b527..fa9bbb79 100644 --- a/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md +++ b/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md @@ -6,7 +6,11 @@ import { IntegrationsControllerUpdateIntegrationByIdRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerUpdateIntegrationByIdRequest = { +<<<<<<< Updated upstream integrationId: "", +======= + integrationId: "", +>>>>>>> Stashed changes updateIntegrationRequestDto: {}, }; ``` diff --git a/docs/models/operations/messagescontrollerdeletemessagerequest.md b/docs/models/operations/messagescontrollerdeletemessagerequest.md index a1bbbf03..47427703 100644 --- a/docs/models/operations/messagescontrollerdeletemessagerequest.md +++ b/docs/models/operations/messagescontrollerdeletemessagerequest.md @@ -6,7 +6,11 @@ import { MessagesControllerDeleteMessageRequest } from "@novu/api/models/operations"; let value: MessagesControllerDeleteMessageRequest = { +<<<<<<< Updated upstream messageId: "", +======= + messageId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md index c0dd0db8..ff36751e 100644 --- a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md +++ b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md @@ -6,7 +6,11 @@ import { MessagesControllerDeleteMessagesByTransactionIdRequest } from "@novu/api/models/operations"; let value: MessagesControllerDeleteMessagesByTransactionIdRequest = { +<<<<<<< Updated upstream transactionId: "", +======= + transactionId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/notificationscontrollergetnotificationrequest.md b/docs/models/operations/notificationscontrollergetnotificationrequest.md index c65e4ea7..9c029587 100644 --- a/docs/models/operations/notificationscontrollergetnotificationrequest.md +++ b/docs/models/operations/notificationscontrollergetnotificationrequest.md @@ -6,7 +6,11 @@ import { NotificationsControllerGetNotificationRequest } from "@novu/api/models/operations"; let value: NotificationsControllerGetNotificationRequest = { +<<<<<<< Updated upstream notificationId: "", +======= + notificationId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/notificationscontrollerlistnotificationsrequest.md b/docs/models/operations/notificationscontrollerlistnotificationsrequest.md index 8e364fe7..a7198639 100644 --- a/docs/models/operations/notificationscontrollerlistnotificationsrequest.md +++ b/docs/models/operations/notificationscontrollerlistnotificationsrequest.md @@ -7,7 +7,11 @@ import { NotificationsControllerListNotificationsRequest } from "@novu/api/model let value: NotificationsControllerListNotificationsRequest = { channels: [ +<<<<<<< Updated upstream "email", +======= + "push", +>>>>>>> Stashed changes ], templates: [ "", diff --git a/docs/models/operations/parameter.md b/docs/models/operations/parameter.md index b05e3f36..5f0ec7ab 100644 --- a/docs/models/operations/parameter.md +++ b/docs/models/operations/parameter.md @@ -1,17 +1,29 @@ # Parameter +<<<<<<< Updated upstream the preferences level to be retrieved( Subscriber / Topic) +======= +the preferences level to be retrieved (template / global) +>>>>>>> Stashed changes ## Example Usage ```typescript import { Parameter } from "@novu/api/models/operations"; +<<<<<<< Updated upstream let value: Parameter = "Topic"; +======= +let value: Parameter = "template"; +>>>>>>> Stashed changes ``` ## Values ```typescript +<<<<<<< Updated upstream "Subscriber" | "Topic" +======= +"global" | "template" +>>>>>>> Stashed changes ``` \ No newline at end of file diff --git a/docs/models/operations/queryparamchannel.md b/docs/models/operations/queryparamchannel.md index 9aefd8c7..9a834704 100644 --- a/docs/models/operations/queryparamchannel.md +++ b/docs/models/operations/queryparamchannel.md @@ -5,7 +5,11 @@ ```typescript import { QueryParamChannel } from "@novu/api/models/operations"; +<<<<<<< Updated upstream let value: QueryParamChannel = "in_app"; +======= +let value: QueryParamChannel = "chat"; +>>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md b/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md index 3e083540..86e76ffa 100644 --- a/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md +++ b/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md @@ -6,10 +6,17 @@ import { SubscribersControllerChatAccessOauthRequest } from "@novu/api/models/operations"; let value: SubscribersControllerChatAccessOauthRequest = { +<<<<<<< Updated upstream subscriberId: "", providerId: "", hmacHash: "", environmentId: "", +======= + subscriberId: "", + providerId: "", + hmacHash: "", + environmentId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md index 4c06450b..bed1a60d 100644 --- a/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md +++ b/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md @@ -6,11 +6,19 @@ import { SubscribersControllerChatOauthCallbackRequest } from "@novu/api/models/operations"; let value: SubscribersControllerChatOauthCallbackRequest = { +<<<<<<< Updated upstream subscriberId: "", providerId: "", code: "", hmacHash: "", environmentId: "", +======= + subscriberId: "", + providerId: "", + code: "", + hmacHash: "", + environmentId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md index 5f7ab572..08e4053f 100644 --- a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md +++ b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md @@ -6,8 +6,13 @@ import { SubscribersControllerDeleteSubscriberCredentialsRequest } from "@novu/api/models/operations"; let value: SubscribersControllerDeleteSubscriberCredentialsRequest = { +<<<<<<< Updated upstream subscriberId: "", providerId: "", +======= + subscriberId: "", + providerId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md index bbc86de6..cf790a49 100644 --- a/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md @@ -6,7 +6,11 @@ import { SubscribersControllerGetNotificationsFeedRequest } from "@novu/api/models/operations"; let value: SubscribersControllerGetNotificationsFeedRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", }; diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md index 60ad4334..d7882920 100644 --- a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md @@ -12,6 +12,7 @@ let value: SubscribersControllerGetNotificationsFeedResponseBody = { "", ], hasMore: false, +<<<<<<< Updated upstream page: 6235.1, pageSize: 1589.69, }, @@ -19,6 +20,15 @@ let value: SubscribersControllerGetNotificationsFeedResponseBody = { hasMore: false, page: 3380.07, pageSize: 1103.75, +======= + page: 4314.18, + pageSize: 8965.47, + }, + ], + hasMore: false, + page: 3675.62, + pageSize: 4358.65, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md index ae47e412..5e26b236 100644 --- a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md +++ b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md @@ -6,14 +6,27 @@ import { SubscribersControllerGetSubscriberPreferenceByLevelRequest } from "@novu/api/models/operations"; let value: SubscribersControllerGetSubscriberPreferenceByLevelRequest = { +<<<<<<< Updated upstream parameter: "Subscriber", subscriberId: "", +======= + parameter: "template", + subscriberId: "", +>>>>>>> Stashed changes }; ``` ## Fields +<<<<<<< Updated upstream | Field | Type | Required | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved( Subscriber / Topic) | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +======= +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | +| `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved (template / global) | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +>>>>>>> Stashed changes diff --git a/docs/models/operations/subscriberscontrollergetsubscriberrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberrequest.md index 50c764a3..8a3168aa 100644 --- a/docs/models/operations/subscriberscontrollergetsubscriberrequest.md +++ b/docs/models/operations/subscriberscontrollergetsubscriberrequest.md @@ -6,12 +6,17 @@ import { SubscribersControllerGetSubscriberRequest } from "@novu/api/models/operations"; let value: SubscribersControllerGetSubscriberRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes }; ``` ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeTopics` | *string* | :heavy_minus_sign: | Includes the topics associated with the subscriber | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetunseencountrequest.md b/docs/models/operations/subscriberscontrollergetunseencountrequest.md index 4d295f52..200c0f32 100644 --- a/docs/models/operations/subscriberscontrollergetunseencountrequest.md +++ b/docs/models/operations/subscriberscontrollergetunseencountrequest.md @@ -7,8 +7,13 @@ import { SubscribersControllerGetUnseenCountRequest } from "@novu/api/models/ope let value: SubscribersControllerGetUnseenCountRequest = { seen: false, +<<<<<<< Updated upstream subscriberId: "", limit: 6747.52, +======= + subscriberId: "", + limit: 9194.83, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md index d1d6edce..660278cb 100644 --- a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md +++ b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md @@ -6,12 +6,17 @@ import { SubscribersControllerListSubscriberPreferencesRequest } from "@novu/api/models/operations"; let value: SubscribersControllerListSubscriberPreferencesRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes }; ``` ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md index 10955de5..d827c6c7 100644 --- a/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md +++ b/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md @@ -9,17 +9,30 @@ let value: SubscribersControllerListSubscribersResponse = { result: { data: [ { +<<<<<<< Updated upstream environmentId: "", organizationId: "", createdAt: "", deleted: false, subscriberId: "", +======= + environmentId: "", + organizationId: "", + createdAt: "", + deleted: false, + subscriberId: "", +>>>>>>> Stashed changes updatedAt: "", }, ], hasMore: false, +<<<<<<< Updated upstream page: 9953, pageSize: 6531.08, +======= + page: 6063.93, + pageSize: 191.93, +>>>>>>> Stashed changes }, }; ``` diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md index 6a1b7857..adee7948 100644 --- a/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md +++ b/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md @@ -8,17 +8,30 @@ import { SubscribersControllerListSubscribersResponseBody } from "@novu/api/mode let value: SubscribersControllerListSubscribersResponseBody = { data: [ { +<<<<<<< Updated upstream environmentId: "", organizationId: "", createdAt: "", deleted: false, subscriberId: "", +======= + environmentId: "", + organizationId: "", + createdAt: "", + deleted: false, + subscriberId: "", +>>>>>>> Stashed changes updatedAt: "", }, ], hasMore: false, +<<<<<<< Updated upstream page: 6350.59, pageSize: 1613.09, +======= + page: 6439.90, + pageSize: 4238.55, +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md b/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md index 6f55f530..59a7c1b4 100644 --- a/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md +++ b/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md @@ -6,9 +6,15 @@ import { SubscribersControllerMarkActionAsSeenRequest } from "@novu/api/models/operations"; let value: SubscribersControllerMarkActionAsSeenRequest = { +<<<<<<< Updated upstream messageId: "", type: "", subscriberId: "", +======= + messageId: "", + type: "", + subscriberId: "", +>>>>>>> Stashed changes markMessageActionAsSeenDto: { status: "pending", }, diff --git a/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md b/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md index 1955d33c..4c024a03 100644 --- a/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md +++ b/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md @@ -6,9 +6,15 @@ import { SubscribersControllerMarkAllUnreadAsReadRequest } from "@novu/api/models/operations"; let value: SubscribersControllerMarkAllUnreadAsReadRequest = { +<<<<<<< Updated upstream subscriberId: "", markAllMessageAsRequestDto: { markAs: "seen", +======= + subscriberId: "", + markAllMessageAsRequestDto: { + markAs: "unread", +>>>>>>> Stashed changes }, }; ``` diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md index 31fcbb18..9c30e46f 100644 --- a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md +++ b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md @@ -6,10 +6,19 @@ import { SubscribersControllerMarkMessagesAsRequest } from "@novu/api/models/operations"; let value: SubscribersControllerMarkMessagesAsRequest = { +<<<<<<< Updated upstream subscriberId: "", messageMarkAsRequestDto: { markAs: "seen", messageId: "", +======= + subscriberId: "", + messageMarkAsRequestDto: { + markAs: "unread", + messageId: [ + "", + ], +>>>>>>> Stashed changes }, }; ``` diff --git a/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md index 64cf6ce6..c94f5ba7 100644 --- a/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md +++ b/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md @@ -6,12 +6,21 @@ import { SubscribersControllerModifySubscriberChannelRequest } from "@novu/api/models/operations"; let value: SubscribersControllerModifySubscriberChannelRequest = { +<<<<<<< Updated upstream subscriberId: "", updateSubscriberChannelRequestDto: { credentials: { webhookUrl: "", }, providerId: 5818.5, +======= + subscriberId: "", + updateSubscriberChannelRequestDto: { + credentials: { + webhookUrl: "https://quiet-elevator.name/", + }, + providerId: "getstream", +>>>>>>> Stashed changes }, }; ``` diff --git a/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md b/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md index 58779388..ea9b1653 100644 --- a/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md +++ b/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md @@ -6,7 +6,11 @@ import { SubscribersControllerRemoveSubscriberRequest } from "@novu/api/models/operations"; let value: SubscribersControllerRemoveSubscriberRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md index dad1f5c9..c0052c68 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md @@ -6,12 +6,21 @@ import { SubscribersControllerUpdateSubscriberChannelRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberChannelRequest = { +<<<<<<< Updated upstream subscriberId: "", updateSubscriberChannelRequestDto: { credentials: { webhookUrl: "", }, providerId: 2532.91, +======= + subscriberId: "", + updateSubscriberChannelRequestDto: { + credentials: { + webhookUrl: "https://frightened-metal.name/", + }, + providerId: "whatsapp-business", +>>>>>>> Stashed changes }, }; ``` diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md index 67141d4b..54f2c223 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md @@ -6,7 +6,11 @@ import { SubscribersControllerUpdateSubscriberGlobalPreferencesRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes updateSubscriberGlobalPreferencesRequestDto: {}, }; ``` diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md index 12e63c00..45bb2e41 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md @@ -6,7 +6,11 @@ import { SubscribersControllerUpdateSubscriberOnlineFlagRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberOnlineFlagRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes updateSubscriberOnlineFlagRequestDto: { isOnline: false, }, diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md index 2f770b13..b73414ba 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md @@ -6,7 +6,11 @@ import { SubscribersControllerUpdateSubscriberPreferenceRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberPreferenceRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes parameter: "", updateSubscriberPreferenceRequestDto: {}, }; diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md index 99bcdc5e..2275bdd6 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md @@ -6,7 +6,11 @@ import { SubscribersControllerUpdateSubscriberRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberRequest = { +<<<<<<< Updated upstream subscriberId: "", +======= + subscriberId: "", +>>>>>>> Stashed changes updateSubscriberRequestDto: {}, }; ``` diff --git a/docs/models/operations/topicscontrollergettopicsubscriberrequest.md b/docs/models/operations/topicscontrollergettopicsubscriberrequest.md index 98b9f2d6..1b641edf 100644 --- a/docs/models/operations/topicscontrollergettopicsubscriberrequest.md +++ b/docs/models/operations/topicscontrollergettopicsubscriberrequest.md @@ -6,7 +6,11 @@ import { TopicsControllerGetTopicSubscriberRequest } from "@novu/api/models/operations"; let value: TopicsControllerGetTopicSubscriberRequest = { +<<<<<<< Updated upstream externalSubscriberId: "", +======= + externalSubscriberId: "", +>>>>>>> Stashed changes topicKey: "", }; ``` diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index 0dc8b9a7..8412843b 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -5,10 +5,10 @@ ### Available Operations -* [chatAccessOauth](#chataccessoauth) - Handle chat oauth -* [chatAccessOauthCallBack](#chataccessoauthcallback) - Handle providers oauth redirect +* [handleOauth](#handleoauth) - Handle chat oauth +* [handleOauthCallback](#handleoauthcallback) - Handle providers oauth redirect -## chatAccessOauth +## handleOauth Handle chat oauth @@ -22,11 +22,11 @@ const novu = new Novu({ }); async function run() { - await novu.subscribers.authentication.chatAccessOauth({ - subscriberId: "", - providerId: "", + await novu.subscribers.authentication.handleOauth({ + subscriberId: "", + providerId: "", hmacHash: "", - environmentId: "", + environmentId: "", }); } @@ -61,6 +61,40 @@ async function run() { const { value: result } = res; + +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersAuthenticationHandleOauth } from "@novu/api/funcs/subscribersAuthenticationHandleOauth.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersAuthenticationHandleOauth(novu, { + subscriberId: "", + providerId: "", + hmacHash: "", + environmentId: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + } @@ -82,12 +116,16 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +<<<<<<< Updated upstream ## chatAccessOauthCallBack +======= +## handleOauthCallback +>>>>>>> Stashed changes Handle providers oauth redirect @@ -101,12 +139,12 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.authentication.chatAccessOauthCallBack({ - subscriberId: "", - providerId: "", + const result = await novu.subscribers.authentication.handleOauthCallback({ + subscriberId: "", + providerId: "", code: "", hmacHash: "", - environmentId: "", + environmentId: "", }); // Handle the result @@ -146,7 +184,43 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersAuthenticationHandleOauthCallback } from "@novu/api/funcs/subscribersAuthenticationHandleOauthCallback.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersAuthenticationHandleOauthCallback(novu, { + subscriberId: "", + providerId: "", + code: "", + hmacHash: "", + environmentId: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -167,6 +241,6 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/environments/README.md b/docs/sdks/environments/README.md index 172b211b..fad8680c 100644 --- a/docs/sdks/environments/README.md +++ b/docs/sdks/environments/README.md @@ -8,10 +8,10 @@ Novu uses the concept of environments to ensure logical separation of your data ### Available Operations -* [list](#list) - Get environments -* [retrieve](#retrieve) - Get current environment +* [getAll](#getall) - Get environments +* [getCurrent](#getcurrent) - Get current environment -## list +## getAll Get environments @@ -25,6 +25,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.environments.list(); // Handle the result @@ -56,9 +57,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.environments.getAll(); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { environmentsGetAll } from "@novu/api/funcs/environmentsGetAll.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await environmentsGetAll(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -78,12 +112,16 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +<<<<<<< Updated upstream ## retrieve +======= +## getCurrent +>>>>>>> Stashed changes Get current environment @@ -97,6 +135,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.environments.retrieve(); // Handle the result @@ -128,9 +167,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.environments.getCurrent(); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { environmentsGetCurrent } from "@novu/api/funcs/environmentsGetCurrent.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await environmentsGetCurrent(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -150,6 +222,6 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/executiondetails/README.md b/docs/sdks/executiondetails/README.md index 6697b90a..9dd71d38 100644 --- a/docs/sdks/executiondetails/README.md +++ b/docs/sdks/executiondetails/README.md @@ -3,14 +3,17 @@ ## Overview +<<<<<<< Updated upstream Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. +======= +>>>>>>> Stashed changes ### Available Operations -* [retrieve](#retrieve) - Get execution details +* [get](#get) - Get execution details -## retrieve +## get Get execution details @@ -24,6 +27,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.executionDetails.retrieve("", ""); // Handle the result @@ -55,9 +59,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.executionDetails.get("", ""); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { executionDetailsGet } from "@novu/api/funcs/executionDetailsGet.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await executionDetailsGet(novu, "", ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -79,6 +116,6 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/integrationswebhooks/README.md b/docs/sdks/integrationswebhooks/README.md new file mode 100644 index 00000000..92dcc9be --- /dev/null +++ b/docs/sdks/integrationswebhooks/README.md @@ -0,0 +1,116 @@ +# IntegrationsWebhooks +(*integrationsWebhooks*) + +## Overview + +## Overview + +### Available Operations + +* [getStatus](#getstatus) - Get webhook support status for provider + +## getStatus + +Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { +<<<<<<< Updated upstream:docs/sdks/webhooks/README.md + const result = await novu.integrations.webhooks.retrieve(""); + + // Handle the result + console.log(result) +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsWebhooksRetrieve } from "@novu/api/funcs/integrationsWebhooksRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsWebhooksRetrieve(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; +======= + const result = await novu.integrationsWebhooks.getStatus(""); +>>>>>>> Stashed changes:docs/sdks/integrationswebhooks/README.md + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsWebhooksGetStatus } from "@novu/api/funcs/integrationsWebhooksGetStatus.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsWebhooksGetStatus(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[boolean](../../models/.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/notifications/README.md b/docs/sdks/notifications/README.md index f8ef411c..ef7899fb 100644 --- a/docs/sdks/notifications/README.md +++ b/docs/sdks/notifications/README.md @@ -5,9 +5,10 @@ ### Available Operations +* [get](#get) - Get notification * [list](#list) - Get notifications -* [retrieve](#retrieve) - Get notification +<<<<<<< Updated upstream ## list Get notifications @@ -110,6 +111,9 @@ run(); ## retrieve +======= +## get +>>>>>>> Stashed changes Get notification @@ -123,6 +127,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.notifications.retrieve(""); // Handle the result @@ -154,9 +159,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.notifications.get(""); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsGet } from "@novu/api/funcs/notificationsGet.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsGet(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -177,6 +215,112 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## list + +Get notifications + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.notifications.list({ + channels: [ + "sms", + "chat", + "in_app", + ], + templates: [ + "", + ], + emails: [ + "", + ], + search: "", + subscriberIds: [ + "", + "", + ], + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsList } from "@novu/api/funcs/notificationsList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsList(novu, { + channels: [ + "sms", + "chat", + "in_app", + ], + templates: [ + "", + ], + emails: [ + "", + ], + search: "", + subscriberIds: [ + "", + "", + ], + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.NotificationsControllerListNotificationsRequest](../../models/operations/notificationscontrollerlistnotificationsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/webhooks/README.md b/docs/sdks/notificationsstats/README.md similarity index 85% rename from docs/sdks/webhooks/README.md rename to docs/sdks/notificationsstats/README.md index 9002ec87..ece14685 100644 --- a/docs/sdks/webhooks/README.md +++ b/docs/sdks/notificationsstats/README.md @@ -1,15 +1,15 @@ -# Webhooks -(*integrations.webhooks*) +# NotificationsStats +(*notificationsStats*) ## Overview ### Available Operations -* [retrieve](#retrieve) - Get webhook support status for provider +* [get](#get) - Get notification graph statistics -## retrieve +## get -Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value +Get notification graph statistics ### Example Usage @@ -21,10 +21,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.webhooks.retrieve(""); - + const result = await novu.notificationsStats.get(); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -36,7 +36,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsWebhooksRetrieve } from "@novu/api/funcs/integrationsWebhooksRetrieve.js"; +import { notificationsStatsGet } from "@novu/api/funcs/notificationsStatsGet.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -45,7 +45,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsWebhooksRetrieve(novu, ""); + const res = await notificationsStatsGet(novu); if (!res.ok) { throw res.error; @@ -54,7 +54,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -64,17 +64,17 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | +| `days` | *number* | :heavy_minus_sign: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[boolean](../../models/.md)\>** +**Promise\<[components.ActivityGraphStatesResponse[]](../../models/.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novu/README.md b/docs/sdks/novu/README.md index 05b13556..aa8be496 100644 --- a/docs/sdks/novu/README.md +++ b/docs/sdks/novu/README.md @@ -31,10 +31,17 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.cancel(""); // Handle the result console.log(result) +======= + const result = await novu.cancel(""); + + // Handle the result + console.log(result); +>>>>>>> Stashed changes } run(); @@ -55,7 +62,11 @@ const novu = new NovuCore({ }); async function run() { +<<<<<<< Updated upstream const res = await cancel(novu, ""); +======= + const res = await cancel(novu, ""); +>>>>>>> Stashed changes if (!res.ok) { throw res.error; @@ -64,7 +75,11 @@ async function run() { const { value: result } = res; // Handle the result +<<<<<<< Updated upstream console.log(result) +======= + console.log(result); +>>>>>>> Stashed changes } run(); @@ -85,10 +100,16 @@ run(); ### Errors +<<<<<<< Updated upstream | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | +======= +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | +>>>>>>> Stashed changes ## trigger @@ -117,6 +138,13 @@ async function run() { topicKey: "", type: "Topic", }, +<<<<<<< Updated upstream +======= + { + topicKey: "", + type: "Topic", + }, +>>>>>>> Stashed changes ], }); @@ -161,7 +189,51 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { trigger } from "@novu/api/funcs/trigger.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await trigger(novu, { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -176,12 +248,99 @@ run(); | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | +<<<<<<< Updated upstream +======= ### Response **Promise\<[components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)\>** ### Errors +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## triggerBroadcast + +Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.triggerBroadcast({ + name: "", + overrides: {}, + payload: {}, + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { triggerBroadcast } from "@novu/api/funcs/triggerBroadcast.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await triggerBroadcast(novu, { + name: "", + overrides: {}, + payload: {}, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.TriggerEventToAllRequestDto](../../models/components/triggereventtoallrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +>>>>>>> Stashed changes +### Response + +**Promise\<[components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)\>** + +<<<<<<< Updated upstream +### Errors + | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | @@ -346,8 +505,171 @@ run(); **Promise\<[components.TriggerEventResponseDto[]](../../models/.md)\>** +======= +>>>>>>> Stashed changes ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## triggerBulk + + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.triggerBulk({ + events: [ + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, + ], + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { triggerBulk } from "@novu/api/funcs/triggerBulk.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await triggerBulk(novu, { + events: [ + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + overrides: {}, + payload: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, + ], + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.BulkTriggerEventDto](../../models/components/bulktriggereventdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.TriggerEventResponseDto[]](../../models/.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novumessages/README.md b/docs/sdks/novumessages/README.md index a4e794a6..3320a5b5 100644 --- a/docs/sdks/novumessages/README.md +++ b/docs/sdks/novumessages/README.md @@ -5,10 +5,9 @@ ### Available Operations -* [markAll](#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. -* [markAllAs](#markallas) - Mark a subscriber messages as seen, read, unseen or unread -* [updateAsSeen](#updateasseen) - Mark message action as seen +* [mark](#mark) - Mark a subscriber messages as seen, read, unseen or unread +<<<<<<< Updated upstream ## markAll Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. @@ -88,6 +87,9 @@ run(); ## markAllAs +======= +## mark +>>>>>>> Stashed changes Mark a subscriber messages as seen, read, unseen or unread @@ -101,6 +103,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.subscribers.messages.markAllAs("", { markAs: "seen", messageId: "", @@ -138,9 +141,52 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.subscribers.messages.mark({ + markAs: "seen", + messageId: [ + "", + ], + }, ""); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesMark } from "@novu/api/funcs/subscribersMessagesMark.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesMark(novu, { + markAs: "seen", + messageId: [ + "", + ], + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -162,8 +208,9 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | +<<<<<<< Updated upstream | errors.SDKError | 4xx-5xx | */* | @@ -252,3 +299,6 @@ run(); | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | +======= +| errors.SDKError | 4XX, 5XX | \*/\* | +>>>>>>> Stashed changes diff --git a/docs/sdks/variables/README.md b/docs/sdks/novusubscribersnotifications/README.md similarity index 71% rename from docs/sdks/variables/README.md rename to docs/sdks/novusubscribersnotifications/README.md index df67e49c..dc380f17 100644 --- a/docs/sdks/variables/README.md +++ b/docs/sdks/novusubscribersnotifications/README.md @@ -1,15 +1,15 @@ -# Variables -(*workflows.variables*) +# NovuSubscribersNotifications +(*subscribers.notifications*) ## Overview ### Available Operations -* [retrieve](#retrieve) - Get available variables +* [getFeed](#getfeed) - Get in-app notification feed for a particular subscriber -## retrieve +## getFeed -Get the variables that can be used in the workflow +Get in-app notification feed for a particular subscriber ### Example Usage @@ -21,10 +21,13 @@ const novu = new Novu({ }); async function run() { - const result = await novu.workflows.variables.retrieve(); - + const result = await novu.subscribers.notifications.getFeed({ + subscriberId: "", + payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + }); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -36,7 +39,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { workflowsVariablesRetrieve } from "@novu/api/funcs/workflowsVariablesRetrieve.js"; +import { subscribersNotificationsGetFeed } from "@novu/api/funcs/subscribersNotificationsGetFeed.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -45,7 +48,10 @@ const novu = new NovuCore({ }); async function run() { - const res = await workflowsVariablesRetrieve(novu); + const res = await subscribersNotificationsGetFeed(novu, { + subscriberId: "", + payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + }); if (!res.ok) { throw res.error; @@ -54,7 +60,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -64,16 +70,17 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerGetNotificationsFeedRequest](../../models/operations/subscriberscontrollergetnotificationsfeedrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.VariablesResponseDto](../../models/components/variablesresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponseBody](../../models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novusubscribers/README.md b/docs/sdks/novutopicssubscribers/README.md similarity index 68% rename from docs/sdks/novusubscribers/README.md rename to docs/sdks/novutopicssubscribers/README.md index 56b39a52..01c20e28 100644 --- a/docs/sdks/novusubscribers/README.md +++ b/docs/sdks/novutopicssubscribers/README.md @@ -1,15 +1,15 @@ -# NovuSubscribers +# NovuTopicsSubscribers (*topics.subscribers*) ## Overview ### Available Operations -* [assign](#assign) - Subscribers addition -* [delete](#delete) - Subscribers removal -* [retrieve](#retrieve) - Check topic subscriber +* [add](#add) - Subscribers addition +* [check](#check) - Check topic subscriber +* [remove](#remove) - Subscribers removal -## assign +## add Add subscribers to a topic by key @@ -23,11 +23,19 @@ const novu = new Novu({ }); async function run() { - await novu.topics.subscribers.assign("", { + await novu.topics.subscribers.add({ subscribers: [ "", + "", + "", ], +<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md }); +======= + }, ""); + + +>>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md } run(); @@ -39,7 +47,11 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; +<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md import { topicsSubscribersAssign } from "@novu/api/funcs/topicsSubscribersAssign.js"; +======= +import { topicsSubscribersAdd } from "@novu/api/funcs/topicsSubscribersAdd.js"; +>>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -48,11 +60,21 @@ const novu = new NovuCore({ }); async function run() { +<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md const res = await topicsSubscribersAssign(novu, "", { subscribers: [ "", ], }); +======= + const res = await topicsSubscribersAdd(novu, { + subscribers: [ + "", + "", + "", + ], + }, ""); +>>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md if (!res.ok) { throw res.error; @@ -82,10 +104,11 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md ## delete @@ -166,6 +189,9 @@ run(); ## retrieve +======= +## check +>>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md Check if a subscriber belongs to a certain topic @@ -179,6 +205,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md const result = await novu.topics.subscribers.retrieve("", ""); // Handle the result @@ -210,9 +237,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.topics.subscribers.check("", ""); +>>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersCheck } from "@novu/api/funcs/topicsSubscribersCheck.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersCheck(novu, "", ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -234,6 +294,87 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## remove + +Remove subscribers from a topic + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + await novu.topics.subscribers.remove({ + subscribers: [ + "", + "", + ], + }, ""); + + +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersRemove } from "@novu/api/funcs/topicsSubscribersRemove.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersRemove(novu, { + subscribers: [ + "", + "", + ], + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/preferences/README.md b/docs/sdks/preferences/README.md index 04f72141..3eb41402 100644 --- a/docs/sdks/preferences/README.md +++ b/docs/sdks/preferences/README.md @@ -5,12 +5,11 @@ ### Available Operations -* [list](#list) - Get subscriber preferences -* [retrieveByLevel](#retrievebylevel) - Get subscriber preferences by level +* [get](#get) - Get subscriber preferences +* [getByLevel](#getbylevel) - Get subscriber preferences by level * [update](#update) - Update subscriber preference -* [updateGlobal](#updateglobal) - Update subscriber global preferences -## list +## get Get subscriber preferences @@ -24,6 +23,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.subscribers.preferences.list(""); // Handle the result @@ -55,9 +55,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.subscribers.preferences.get(""); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesGet } from "@novu/api/funcs/subscribersPreferencesGet.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesGet(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -68,6 +101,7 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | @@ -78,12 +112,16 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +<<<<<<< Updated upstream ## retrieveByLevel +======= +## getByLevel +>>>>>>> Stashed changes Get subscriber preferences by level @@ -97,6 +135,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.subscribers.preferences.retrieveByLevel("Topic", ""); // Handle the result @@ -128,9 +167,48 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.subscribers.preferences.getByLevel({ + parameter: "template", + subscriberId: "", + }); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesGetByLevel } from "@novu/api/funcs/subscribersPreferencesGetByLevel.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesGetByLevel(novu, { + parameter: "template", + subscriberId: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -140,8 +218,12 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +<<<<<<< Updated upstream | `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved( Subscriber / Topic) | | `subscriberId` | *string* | :heavy_check_mark: | N/A | +======= +| `request` | [operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest](../../models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md) | :heavy_check_mark: | The request object to use for the request. | +>>>>>>> Stashed changes | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | @@ -152,9 +234,9 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | ## update @@ -172,7 +254,7 @@ const novu = new Novu({ async function run() { const result = await novu.subscribers.preferences.update({ - subscriberId: "", + subscriberId: "", parameter: "", updateSubscriberPreferenceRequestDto: {}, }); @@ -212,7 +294,41 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesUpdate } from "@novu/api/funcs/subscribersPreferencesUpdate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesUpdate(novu, { + subscriberId: "", + parameter: "", + updateSubscriberPreferenceRequestDto: {}, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -233,8 +349,9 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | +<<<<<<< Updated upstream | errors.SDKError | 4xx-5xx | */* | @@ -310,3 +427,6 @@ run(); | Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | */* | +======= +| errors.SDKError | 4XX, 5XX | \*/\* | +>>>>>>> Stashed changes diff --git a/docs/sdks/properties/README.md b/docs/sdks/properties/README.md index cf996e87..426c0035 100644 --- a/docs/sdks/properties/README.md +++ b/docs/sdks/properties/README.md @@ -5,9 +5,9 @@ ### Available Operations -* [updateOnlineFlag](#updateonlineflag) - Update subscriber online status +* [updateOnlineStatus](#updateonlinestatus) - Update subscriber online status -## updateOnlineFlag +## updateOnlineStatus Used to update the subscriber isOnline flag. @@ -21,8 +21,9 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.properties.updateOnlineFlag("", { + const result = await novu.subscribers.properties.updateOnlineStatus({ isOnline: false, +<<<<<<< Updated upstream }); // Handle the result @@ -56,9 +57,44 @@ async function run() { } const { value: result } = res; +======= + }, ""); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPropertiesUpdateOnlineStatus } from "@novu/api/funcs/subscribersPropertiesUpdateOnlineStatus.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPropertiesUpdateOnlineStatus(novu, { + isOnline: false, + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -80,6 +116,6 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/stats/README.md b/docs/sdks/stats/README.md index 4fc48b3b..a50ff41a 100644 --- a/docs/sdks/stats/README.md +++ b/docs/sdks/stats/README.md @@ -5,9 +5,9 @@ ### Available Operations -* [graph](#graph) - Get notification graph statistics -* [retrieve](#retrieve) - Get notification statistics +* [get](#get) - Get notification statistics +<<<<<<< Updated upstream ## graph Get notification graph statistics @@ -82,6 +82,9 @@ run(); ## retrieve +======= +## get +>>>>>>> Stashed changes Get notification statistics @@ -95,6 +98,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream const result = await novu.notifications.stats.retrieve(); // Handle the result @@ -126,9 +130,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.notifications.stats.get(); +>>>>>>> Stashed changes // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsStatsGet } from "@novu/api/funcs/notificationsStatsGet.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsStatsGet(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -148,6 +185,6 @@ run(); ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novunotifications/README.md b/docs/sdks/subscribersmessages/README.md similarity index 70% rename from docs/sdks/novunotifications/README.md rename to docs/sdks/subscribersmessages/README.md index d0d6c0a6..c13ed56e 100644 --- a/docs/sdks/novunotifications/README.md +++ b/docs/sdks/subscribersmessages/README.md @@ -1,16 +1,18 @@ -# NovuNotifications -(*subscribers.notifications*) +# SubscribersMessages +(*subscribersMessages*) + +## Overview ## Overview ### Available Operations -* [retrieve](#retrieve) - Get in-app notification feed for a particular subscriber -* [unseenCount](#unseencount) - Get the unseen in-app notifications count for subscribers feed +* [markAll](#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. +* [updateAsSeen](#updateasseen) - Mark message action as seen -## retrieve +## markAll -Get in-app notification feed for a particular subscriber +Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. ### Example Usage @@ -22,6 +24,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md const result = await novu.subscribers.notifications.retrieve({ subscriberId: "", payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", @@ -59,9 +62,46 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.subscribersMessages.markAll({ + markAs: "seen", + }, ""); +>>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesMarkAll } from "@novu/api/funcs/subscribersMessagesMarkAll.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesMarkAll(novu, { + markAs: "seen", + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -71,25 +111,34 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerGetNotificationsFeedRequest](../../models/operations/subscriberscontrollergetnotificationsfeedrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response +<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md **Promise\<[operations.SubscribersControllerGetNotificationsFeedResponseBody](../../models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md)\>** +======= +**Promise\<[number](../../models/.md)\>** +>>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md ## unseenCount +======= +## updateAsSeen +>>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md -Get the unseen in-app notifications count for subscribers feed +Mark message action as seen ### Example Usage @@ -101,10 +150,20 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md const result = await novu.subscribers.notifications.unseenCount({ seen: true, subscriberId: "", limit: 4322.81, +======= + const result = await novu.subscribersMessages.updateAsSeen({ + messageId: "", + type: "", + subscriberId: "", + markMessageActionAsSeenDto: { + status: "done", + }, +>>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md }); // Handle the result @@ -142,7 +201,44 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesUpdateAsSeen } from "@novu/api/funcs/subscribersMessagesUpdateAsSeen.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesUpdateAsSeen(novu, { + messageId: "", + type: "", + subscriberId: "", + markMessageActionAsSeenDto: { + status: "done", + }, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -152,17 +248,21 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerGetUnseenCountRequest](../../models/operations/subscriberscontrollergetunseencountrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [operations.SubscribersControllerMarkActionAsSeenRequest](../../models/operations/subscriberscontrollermarkactionasseenrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response +<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md **Promise\<[components.UnseenCountResponse](../../models/components/unseencountresponse.md)\>** +======= +**Promise\<[components.MessageResponseDto](../../models/components/messageresponsedto.md)\>** +>>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/subscribersnotifications/README.md b/docs/sdks/subscribersnotifications/README.md new file mode 100644 index 00000000..53f488ac --- /dev/null +++ b/docs/sdks/subscribersnotifications/README.md @@ -0,0 +1,128 @@ +# SubscribersNotifications +(*subscribersNotifications*) + +## Overview + +## Overview + +### Available Operations + +* [getUnseenCount](#getunseencount) - Get the unseen in-app notifications count for subscribers feed + +## getUnseenCount + +Get the unseen in-app notifications count for subscribers feed + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { +<<<<<<< Updated upstream:docs/sdks/variables/README.md + const result = await novu.workflows.variables.retrieve(); + + // Handle the result + console.log(result) +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { workflowsVariablesRetrieve } from "@novu/api/funcs/workflowsVariablesRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await workflowsVariablesRetrieve(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; +======= + const result = await novu.subscribersNotifications.getUnseenCount({ + seen: true, + subscriberId: "", + limit: 4327.98, + }); +>>>>>>> Stashed changes:docs/sdks/subscribersnotifications/README.md + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersNotificationsGetUnseenCount } from "@novu/api/funcs/subscribersNotificationsGetUnseenCount.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersNotificationsGetUnseenCount(novu, { + seen: true, + subscriberId: "", + limit: 4327.98, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerGetUnseenCountRequest](../../models/operations/subscriberscontrollergetunseencountrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +<<<<<<< Updated upstream:docs/sdks/variables/README.md +**Promise\<[components.VariablesResponseDto](../../models/components/variablesresponsedto.md)\>** +======= +**Promise\<[components.UnseenCountResponse](../../models/components/unseencountresponse.md)\>** +>>>>>>> Stashed changes:docs/sdks/subscribersnotifications/README.md + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/status/README.md b/docs/sdks/subscriberspreferences/README.md similarity index 76% rename from docs/sdks/status/README.md rename to docs/sdks/subscriberspreferences/README.md index 1444bcb0..474b606f 100644 --- a/docs/sdks/status/README.md +++ b/docs/sdks/subscriberspreferences/README.md @@ -1,15 +1,17 @@ -# Status -(*workflows.status*) +# SubscribersPreferences +(*subscribersPreferences*) + +## Overview ## Overview ### Available Operations -* [update](#update) - Update workflow status +* [updateGlobal](#updateglobal) - Update subscriber global preferences -## update +## updateGlobal -Workflow was previously named notification template +Update subscriber global preferences ### Example Usage @@ -21,6 +23,7 @@ const novu = new Novu({ }); async function run() { +<<<<<<< Updated upstream:docs/sdks/status/README.md const result = await novu.workflows.status.update("", { active: false, }); @@ -56,9 +59,42 @@ async function run() { } const { value: result } = res; +======= + const result = await novu.subscribersPreferences.updateGlobal({}, ""); +>>>>>>> Stashed changes:docs/sdks/subscriberspreferences/README.md // Handle the result - console.log(result) + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesUpdateGlobal } from "@novu/api/funcs/subscribersPreferencesUpdateGlobal.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesUpdateGlobal(novu, {}, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); } run(); @@ -68,18 +104,22 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | -| `changeWorkflowStatusRequestDto` | [components.ChangeWorkflowStatusRequestDto](../../models/components/changeworkflowstatusrequestdto.md) | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response +<<<<<<< Updated upstream:docs/sdks/status/README.md **Promise\<[components.WorkflowResponse](../../models/components/workflowresponse.md)\>** +======= +**Promise\<[components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md)\>** +>>>>>>> Stashed changes:docs/sdks/subscriberspreferences/README.md ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/sources/code-samples.json b/sources/code-samples.json index 499196e0..21d3fc66 100644 --- a/sources/code-samples.json +++ b/sources/code-samples.json @@ -3,6 +3,7 @@ info: title: CodeSamples overlay for typescript target version: 0.0.0 actions: +<<<<<<< Updated upstream - target: $["paths"]["/v1/organizations"]["post"] update: "x-codeSamples": @@ -293,11 +294,32 @@ actions: - "lang": "typescript" "label": "LayoutsController_listLayouts" "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.layouts.list({});\n\n \n}\n\nrun();" +======= + - target: $["paths"]["/v1/environments"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "EnvironmentsControllerV1_listMyEnvironments" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/environments/api-keys"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "EnvironmentsControllerV1_listOrganizationApiKeys" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.apiKeys.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/environments/me"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "EnvironmentsControllerV1_getCurrentEnvironment" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.retrieve();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" +>>>>>>> Stashed changes - target: $["paths"]["/v1/events/trigger"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_trigger" +<<<<<<< Updated upstream "source": |- import { Novu } from "@novu/api"; import { TopicPayloadDtoType } from "@novu/api/models/components"; @@ -1618,11 +1640,15 @@ actions: } run(); +======= + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.trigger({\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" +>>>>>>> Stashed changes - target: $["paths"]["/v1/events/trigger/broadcast"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_broadcastEventToAll" +<<<<<<< Updated upstream "source": |- import { Novu } from "@novu/api"; @@ -1744,11 +1770,285 @@ actions: } run(); +======= + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBroadcast({\n name: \"\",\n payload: {},\n overrides: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/events/trigger/bulk"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "EventsController_triggerBulk" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBulk({\n events: [\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n subscriberId: \"\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/events/trigger/{transactionId}"]["delete"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "EventsController_cancel" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.cancel(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/execution-details"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "ExecutionDetailsController_getExecutionDetailsForNotification" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.executionDetails.retrieve(\"\", \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/integrations"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "IntegrationsController_listIntegrations" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/integrations"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "IntegrationsController_createIntegration" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.create({\n providerId: \"\",\n channel: \"sms\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/integrations/active"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "IntegrationsController_getActiveIntegrations" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.listActive();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/integrations/webhook/provider/{providerOrIntegrationId}/status"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "IntegrationsController_getWebhookSupportStatus" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.webhooks.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/integrations/{integrationId}"]["delete"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "IntegrationsController_removeIntegration" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/integrations/{integrationId}"]["put"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "IntegrationsController_updateIntegrationById" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.update({}, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/integrations/{integrationId}/set-primary"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "IntegrationsController_setIntegrationAsPrimary" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.setAsPrimary(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/messages"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "MessagesController_getMessages" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.messages.retrieve({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/messages/transaction/{transactionId}"]["delete"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "MessagesController_deleteMessagesByTransactionId" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.messages.deleteByTransactionId(\"\");\n\n\n}\n\nrun();" + - target: $["paths"]["/v1/messages/{messageId}"]["delete"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "MessagesController_deleteMessage" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.messages.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notification-groups"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationGroupsController_listNotificationGroups" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notification-groups"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationGroupsController_createNotificationGroup" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.create({\n name: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notification-groups/{id}"]["delete"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationGroupsController_deleteNotificationGroup" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notification-groups/{id}"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationGroupsController_getNotificationGroup" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notification-groups/{id}"]["patch"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationGroupsController_updateNotificationGroup" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.update({\n name: \"\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notifications"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationsController_listNotifications" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.list({\n channels: [\n \"sms\",\n \"chat\",\n \"in_app\",\n ],\n templates: [\n \"\",\n ],\n emails: [\n \"\",\n ],\n search: \"\",\n subscriberIds: [\n \"\",\n \"\",\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notifications/graph/stats"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationsController_getActivityGraphStats" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.stats.graph();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notifications/stats"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationsController_getActivityStats" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.stats.retrieve();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/notifications/{notificationId}"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "NotificationsController_getNotification" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_listSubscribers" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.list();\n\n for await (const page of result) {\n // Handle the page\n console.log(page);\n }\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_createSubscriber" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.create({\n subscriberId: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/bulk"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_bulkCreateSubscribers" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.subscribers.createBulk({\n subscribers: [\n \"\",\n ],\n });\n\n\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["delete"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_removeSubscriber" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_getSubscriber" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["put"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_updateSubscriber" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.update({}, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["patch"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_modifySubscriberChannel" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.credentials.append({\n providerId: 3462.44,\n credentials: {\n webhookUrl: \"https://talkative-pop.org\",\n },\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["put"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_updateSubscriberChannel" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.credentials.update({\n providerId: 8574.77,\n credentials: {\n webhookUrl: \"https://grown-worth.name\",\n },\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}"]["delete"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_deleteSubscriberCredentials" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.subscribers.credentials.delete(\"\", \"\");\n\n\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_chatAccessOauth" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.subscribers.authentication.chatAccessOauth({\n subscriberId: \"\",\n providerId: \"\",\n hmacHash: \"\",\n environmentId: \"\",\n });\n\n\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_chatOauthCallback" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.authentication.chatAccessOauthCallBack({\n subscriberId: \"\",\n providerId: \"\",\n code: \"\",\n hmacHash: \"\",\n environmentId: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-all"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_markAllUnreadAsRead" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.markAll({\n markAs: \"seen\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-as"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_markMessagesAs" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.markAllAs({\n messageId: \"\",\n markAs: \"unread\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_markActionAsSeen" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.updateAsSeen({\n messageId: \"\",\n type: \"\",\n subscriberId: \"\",\n markMessageActionAsSeenDto: {\n status: \"done\",\n },\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/feed"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_getNotificationsFeed" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.notifications.retrieve({\n subscriberId: \"\",\n payload: \"btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/unseen"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_getUnseenCount" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.notifications.unseenCount({\n seen: true,\n subscriberId: \"\",\n limit: 4327.98,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/online-status"]["patch"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_updateSubscriberOnlineFlag" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.properties.updateOnlineFlag({\n isOnline: false,\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_listSubscriberPreferences" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.list(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["patch"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_updateSubscriberGlobalPreferences" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.updateGlobal({}, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_getSubscriberPreferenceByLevel" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.retrieveByLevel({\n parameter: \"template\",\n subscriberId: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["patch"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "SubscribersController_updateSubscriberPreference" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.update({\n subscriberId: \"\",\n parameter: \"\",\n updateSubscriberPreferenceRequestDto: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/topics"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "TopicsController_listTopics" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/topics"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "TopicsController_createTopic" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.create({\n key: \"\",\n name: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" +>>>>>>> Stashed changes - target: $["paths"]["/v1/topics/{topicKey}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_deleteTopic" +<<<<<<< Updated upstream "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.topics.delete(\"\");\n\n \n}\n\nrun();" - target: $["paths"]["/v1/tenants/{identifier}"]["patch"] update: @@ -1770,3 +2070,36 @@ actions: } run(); +======= + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.topics.delete(\"\");\n\n\n}\n\nrun();" + - target: $["paths"]["/v1/topics/{topicKey}"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "TopicsController_getTopic" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/topics/{topicKey}"]["patch"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "TopicsController_renameTopic" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.rename({\n name: \"\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + - target: $["paths"]["/v1/topics/{topicKey}/subscribers"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "TopicsController_addSubscribers" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.topics.subscribers.assign({\n subscribers: [\n \"\",\n \"\",\n \"\",\n ],\n }, \"\");\n\n\n}\n\nrun();" + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/removal"]["post"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "TopicsController_removeSubscribers" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.topics.subscribers.delete({\n subscribers: [\n \"\",\n \"\",\n ],\n }, \"\");\n\n\n}\n\nrun();" + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/{externalSubscriberId}"]["get"] + update: + "x-codeSamples": + - "lang": "typescript" + "label": "TopicsController_getTopicSubscriber" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.subscribers.retrieve(\"\", \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" +>>>>>>> Stashed changes diff --git a/sources/json-development.json b/sources/json-development.json index 8d42fbdd..6b70e897 100644 --- a/sources/json-development.json +++ b/sources/json-development.json @@ -3,12 +3,35 @@ "paths": { "/v1/environments/me": { "get": { - "operationId": "EnvironmentsController_getCurrentEnvironment", + "operationId": "EnvironmentsControllerV1_getCurrentEnvironment", "summary": "Get current environment", "parameters": [], "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { @@ -19,6 +42,35 @@ }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -30,6 +82,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -41,6 +119,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -58,17 +162,41 @@ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "getCurrent" } }, "/v1/environments": { "get": { - "operationId": "EnvironmentsController_listMyEnvironments", + "operationId": "EnvironmentsControllerV1_listMyEnvironments", "summary": "Get environments", "parameters": [], "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { @@ -82,6 +210,35 @@ }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -93,6 +250,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -104,6 +287,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -121,18 +330,42 @@ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "getAll" } }, "/v1/environments/api-keys": { "get": { - "operationId": "EnvironmentsController_listOrganizationApiKeys", - "x-speakeasy-group": "Environments.ApiKeys", + "operationId": "EnvironmentsControllerV1_listOrganizationApiKeys", + "x-speakeasy-group": "environments.apiKeys", "summary": "Get api keys", "parameters": [], "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { @@ -146,6 +379,35 @@ }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -157,6 +419,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -168,6 +456,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -185,7 +499,8 @@ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "list" } }, "/v1/execution-details": { @@ -213,6 +528,29 @@ "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { @@ -226,6 +564,35 @@ }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -237,6 +604,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -248,6 +641,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -265,56 +684,97 @@ { "api-key": [] } - ] + ], + "x-speakeasy-group": "executionDetails", + "x-speakeasy-name-override": "get" } }, - "/v1/workflows": { - "get": { - "operationId": "WorkflowController_listWorkflows", - "summary": "Get workflows", - "description": "Workflows were previously named notification templates", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "maximum": 100, - "default": 10, - "type": "number" - } - }, - { - "name": "query", - "required": false, - "in": "query", - "description": "A query string to filter the results. It allows filtering based on either the name or trigger identifier of the workflow items.", - "schema": { - "type": "string" + "/v1/events/trigger": { + "post": { + "operationId": "EventsController_trigger", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Trigger Notification Event" + }, + "x-speakeasy-name-override": "trigger", + "summary": "Trigger event", + "description": "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n ", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerEventRequestDto" + } } } - ], + }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowsResponseDto" + "$ref": "#/components/schemas/TriggerEventResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -326,6 +786,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -337,6 +823,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -348,25 +860,32 @@ } }, "tags": [ - "Workflows" + "Events" ], "security": [ { "api-key": [] } ] - }, + } + }, + "/v1/events/trigger/bulk": { "post": { - "operationId": "WorkflowController_create", - "summary": "Create workflow", - "description": "Workflow was previously named notification template", + "operationId": "EventsController_triggerBulk", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Trigger Notification Events in Bulk" + }, + "x-speakeasy-name-override": "triggerBulk", + "summary": "Bulk trigger event", + "description": "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n ", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateWorkflowRequestDto" + "$ref": "#/components/schemas/BulkTriggerEventDto" } } } @@ -374,16 +893,71 @@ "responses": { "201": { "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WorkflowResponse" - } + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TriggerEventResponseDto" + } + } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -395,6 +969,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -406,6 +1006,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -417,7 +1043,7 @@ } }, "tags": [ - "Workflows" + "Events" ], "security": [ { @@ -426,27 +1052,23 @@ ] } }, - "/v1/workflows/{workflowId}": { - "put": { - "operationId": "WorkflowController_updateWorkflowById", - "summary": "Update workflow", - "description": "Workflow was previously named notification template", - "parameters": [ - { - "name": "workflowId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], + "/v1/events/trigger/broadcast": { + "post": { + "operationId": "EventsController_broadcastEventToAll", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Broadcast Event to All" + }, + "x-speakeasy-name-override": "triggerBroadcast", + "summary": "Broadcast event to all", + "description": "Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.\n\n In the future could be used to trigger events to a subset of subscribers based on defined filters.", + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateWorkflowRequestDto" + "$ref": "#/components/schemas/TriggerEventToAllRequestDto" } } } @@ -454,16 +1076,68 @@ "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowResponse" + "$ref": "#/components/schemas/TriggerEventResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -475,6 +1149,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -486,6 +1186,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -497,21 +1223,28 @@ } }, "tags": [ - "Workflows" + "Events" ], "security": [ { "api-key": [] } ] - }, + } + }, + "/v1/events/trigger/{transactionId}": { "delete": { - "operationId": "WorkflowController_deleteWorkflowById", - "summary": "Delete workflow", - "description": "Workflow was previously named notification template", + "operationId": "EventsController_cancel", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Cancel Triggered Event" + }, + "x-speakeasy-name-override": "cancel", + "summary": "Cancel triggered event", + "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ", "parameters": [ { - "name": "workflowId", + "name": "transactionId", "required": true, "in": "path", "schema": { @@ -521,6 +1254,29 @@ ], "responses": { "200": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "description": "", "content": { "application/json": { @@ -532,6 +1288,35 @@ }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -543,6 +1328,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -554,6 +1365,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -565,23 +1402,93 @@ } }, "tags": [ - "Workflows" + "Events" ], "security": [ { "api-key": [] } ] - }, + } + }, + "/v1/notifications": { "get": { - "operationId": "WorkflowController_getWorkflowById", - "summary": "Get workflow", - "description": "Workflow was previously named notification template", + "operationId": "NotificationsController_listNotifications", + "summary": "Get notifications", "parameters": [ { - "name": "workflowId", + "name": "channels", "required": true, - "in": "path", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ] + } + } + }, + { + "name": "templates", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "emails", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "search", + "required": true, + "in": "query", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberIds", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "default": 0, + "type": "number" + } + }, + { + "name": "transactionId", + "required": false, + "in": "query", "schema": { "type": "string" } @@ -589,17 +1496,69 @@ ], "responses": { "200": { - "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowResponse" + "$ref": "#/components/schemas/ActivitiesResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -611,9 +1570,35 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, + "content": { + "application/json": { + "schema": { "type": "string", "example": "API rate limit exceeded" } @@ -622,6 +1607,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -633,35 +1644,87 @@ } }, "tags": [ - "Workflows" + "Notifications" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "list" } }, - "/v1/workflows/variables": { + "/v1/notifications/stats": { "get": { - "operationId": "WorkflowController_getWorkflowVariables", - "x-speakeasy-group": "Workflows.Variables", - "summary": "Get available variables", - "description": "Get the variables that can be used in the workflow", + "operationId": "NotificationsController_getActivityStats", + "x-speakeasy-group": "notifications.stats", + "summary": "Get notification statistics", "parameters": [], "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VariablesResponseDto" + "$ref": "#/components/schemas/ActivityStatsResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -673,6 +1736,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -684,6 +1773,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -695,54 +1810,100 @@ } }, "tags": [ - "Workflows" + "Notifications" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "get" } }, - "/v1/workflows/{workflowId}/status": { - "put": { - "operationId": "WorkflowController_updateActiveStatus", - "x-speakeasy-group": "Workflows.Status", - "summary": "Update workflow status", - "description": "Workflow was previously named notification template", + "/v1/notifications/graph/stats": { + "get": { + "operationId": "NotificationsController_getActivityGraphStats", + "x-speakeasy-name-override": "get", + "x-speakeasy-group": "notificationsStats", + "summary": "Get notification graph statistics", "parameters": [ { - "name": "workflowId", - "required": true, - "in": "path", + "name": "days", + "required": false, + "in": "query", "schema": { - "type": "string" + "type": "number" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChangeWorkflowStatusRequestDto" - } - } - } - }, "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityGraphStatesResponse" + } } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -754,6 +1915,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -765,6 +1952,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -776,7 +1989,7 @@ } }, "tags": [ - "Workflows" + "Notifications" ], "security": [ { @@ -785,40 +1998,85 @@ ] } }, - "/v1/events/trigger": { - "post": { - "operationId": "EventsController_trigger", - "x-speakeasy-group": "", - "x-speakeasy-usage-example": { - "title": "Trigger Notification Event" - }, - "x-speakeasy-name-override": "trigger", - "summary": "Trigger event", - "description": "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n ", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TriggerEventRequestDto" - } + "/v1/notifications/{notificationId}": { + "get": { + "operationId": "NotificationsController_getNotification", + "summary": "Get notification", + "parameters": [ + { + "name": "notificationId", + "required": true, + "in": "path", + "schema": { + "type": "string" } } - }, + ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TriggerEventResponseDto" + "$ref": "#/components/schemas/ActivityNotificationResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -830,6 +2088,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -841,6 +2125,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -852,32 +2162,28 @@ } }, "tags": [ - "Events" + "Notifications" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "get" } }, - "/v1/events/trigger/bulk": { + "/v1/notification-groups": { "post": { - "operationId": "EventsController_triggerBulk", - "x-speakeasy-group": "", - "x-speakeasy-usage-example": { - "title": "Trigger Notification Events in Bulk" - }, - "x-speakeasy-name-override": "triggerBulk", - "summary": "Bulk trigger event", - "description": "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n ", + "operationId": "NotificationGroupsController_createNotificationGroup", + "summary": "Create workflow group", + "description": "workflow group was previously named notification group", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BulkTriggerEventDto" + "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" } } } @@ -885,19 +2191,68 @@ "responses": { "201": { "description": "Created", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TriggerEventResponseDto" - } + "$ref": "#/components/schemas/NotificationGroupResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -909,6 +2264,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -920,9 +2301,35 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, + "content": { + "application/json": { + "schema": { "type": "string", "example": "Please wait some time, then try again." } @@ -931,49 +2338,89 @@ } }, "tags": [ - "Events" + "Workflow groups" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/events/trigger/broadcast": { - "post": { - "operationId": "EventsController_broadcastEventToAll", - "x-speakeasy-group": "", - "x-speakeasy-usage-example": { - "title": "Broadcast Event to All" - }, - "x-speakeasy-name-override": "triggerBroadcast", - "summary": "Broadcast event to all", - "description": "Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.\n In the future could be used to trigger events to a subset of subscribers based on defined filters.", + ], + "x-speakeasy-group": "workflowGroups", + "x-speakeasy-name-override": "create" + }, + "get": { + "operationId": "NotificationGroupsController_listNotificationGroups", + "summary": "Get workflow groups", + "description": "workflow group was previously named notification group", "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TriggerEventToAllRequestDto" - } - } - } - }, "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TriggerEventResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationGroupResponseDto" + } } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -985,6 +2432,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -996,6 +2469,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1007,28 +2506,25 @@ } }, "tags": [ - "Events" + "Workflow groups" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-group": "workflowGroups", + "x-speakeasy-name-override": "list" } }, - "/v1/events/trigger/{transactionId}": { - "delete": { - "operationId": "EventsController_cancel", - "x-speakeasy-group": "", - "x-speakeasy-usage-example": { - "title": "Cancel Triggered Event" - }, - "x-speakeasy-name-override": "cancel", - "summary": "Cancel triggered event", - "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ", + "/v1/notification-groups/{id}": { + "get": { + "operationId": "NotificationGroupsController_getNotificationGroup", + "summary": "Get workflow group", + "description": "workflow group was previously named notification group", "parameters": [ { - "name": "transactionId", + "name": "id", "required": true, "in": "path", "schema": { @@ -1038,17 +2534,69 @@ ], "responses": { "200": { - "description": "", + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DataBooleanDto" + "$ref": "#/components/schemas/NotificationGroupResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1060,6 +2608,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1071,6 +2645,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1082,172 +2682,105 @@ } }, "tags": [ - "Events" + "Workflow groups" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/notifications": { - "get": { - "operationId": "NotificationsController_listNotifications", - "summary": "Get notifications", + ], + "x-speakeasy-group": "workflowGroups", + "x-speakeasy-name-override": "get" + }, + "patch": { + "operationId": "NotificationGroupsController_updateNotificationGroup", + "summary": "Update workflow group", + "description": "workflow group was previously named notification group", "parameters": [ { - "name": "channels", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ] - } - } - }, - { - "name": "templates", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "emails", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "search", + "name": "id", "required": true, - "in": "query", - "deprecated": true, + "in": "path", "schema": { "type": "string" } - }, - { - "name": "subscriberIds", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" } } - }, - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "default": 0, - "type": "number" - } - }, - { - "name": "transactionId", - "required": false, - "in": "query", - "schema": { - "type": "string" - } } - ], + }, "responses": { "200": { - "description": "", + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActivitiesResponseDto" + "$ref": "#/components/schemas/NotificationGroupResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Notifications" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/notifications/stats": { - "get": { - "operationId": "NotificationsController_getActivityStats", - "x-speakeasy-group": "Notifications.Stats", - "summary": "Get notification statistics", - "parameters": [], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ActivityStatsResponseDto" - } + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", + }, "content": { "application/json": { "schema": { @@ -1259,6 +2792,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1270,6 +2829,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1281,47 +2866,95 @@ } }, "tags": [ - "Notifications" + "Workflow groups" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/notifications/graph/stats": { - "get": { - "operationId": "NotificationsController_getActivityGraphStats", - "x-speakeasy-name-override": "graph", - "x-speakeasy-group": "Notifications.Stats", - "summary": "Get notification graph statistics", + ], + "x-speakeasy-group": "workflowGroups", + "x-speakeasy-name-override": "update" + }, + "delete": { + "operationId": "NotificationGroupsController_deleteNotificationGroup", + "summary": "Delete workflow group", + "description": "workflow group was previously named notification group", "parameters": [ { - "name": "days", - "required": false, - "in": "query", + "name": "id", + "required": true, + "in": "path", "schema": { - "type": "number" + "type": "string" } } ], "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ActivityGraphStatesResponse" - } + "$ref": "#/components/schemas/DeleteNotificationGroupResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1333,6 +2966,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1344,6 +3003,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1355,42 +3040,91 @@ } }, "tags": [ - "Notifications" + "Workflow groups" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-group": "workflowGroups", + "x-speakeasy-name-override": "delete" } }, - "/v1/notifications/{notificationId}": { + "/v1/integrations": { "get": { - "operationId": "NotificationsController_getNotification", - "summary": "Get notification", - "parameters": [ - { - "name": "notificationId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], + "operationId": "IntegrationsController_listIntegrations", + "summary": "Get integrations", + "description": "Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", + "parameters": [], "responses": { "200": { - "description": "Ok", + "description": "The list of integrations belonging to the organization that are successfully returned.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActivityNotificationResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationResponseDto" + } } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1402,6 +3136,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1413,6 +3173,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1424,27 +3210,26 @@ } }, "tags": [ - "Notifications" + "Integrations" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/notification-groups": { + ], + "x-speakeasy-name-override": "list" + }, "post": { - "operationId": "NotificationGroupsController_createNotificationGroup", - "summary": "Create workflow group", - "description": "workflow group was previously named notification group", + "operationId": "IntegrationsController_createIntegration", + "summary": "Create integration", + "description": "Create an integration for the current environment the user is based on the API key provided", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" + "$ref": "#/components/schemas/CreateIntegrationRequestDto" } } } @@ -1452,16 +3237,68 @@ "responses": { "201": { "description": "Created", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" + "$ref": "#/components/schemas/IntegrationResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1473,6 +3310,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1484,6 +3347,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1495,28 +3384,55 @@ } }, "tags": [ - "Workflow groups" + "Integrations" ], "security": [ { "api-key": [] } - ] - }, + ], + "x-speakeasy-name-override": "create" + } + }, + "/v1/integrations/active": { "get": { - "operationId": "NotificationGroupsController_listNotificationGroups", - "summary": "Get workflow groups", - "description": "workflow group was previously named notification group", + "operationId": "IntegrationsController_getActiveIntegrations", + "x-speakeasy-name-override": "listActive", + "summary": "Get active integrations", + "description": "Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", "parameters": [], "responses": { "200": { - "description": "Ok", + "description": "The list of active integrations belonging to the organization that are successfully returned.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" + "$ref": "#/components/schemas/IntegrationResponseDto" } } } @@ -1524,6 +3440,35 @@ }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1535,6 +3480,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1546,6 +3517,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1557,7 +3554,7 @@ } }, "tags": [ - "Workflow groups" + "Integrations" ], "security": [ { @@ -1566,14 +3563,15 @@ ] } }, - "/v1/notification-groups/{id}": { + "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": { "get": { - "operationId": "NotificationGroupsController_getNotificationGroup", - "summary": "Get workflow group", - "description": "workflow group was previously named notification group", + "operationId": "IntegrationsController_getWebhookSupportStatus", + "x-speakeasy-group": "integrationsWebhooks", + "summary": "Get webhook support status for provider", + "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value", "parameters": [ { - "name": "id", + "name": "providerOrIntegrationId", "required": true, "in": "path", "schema": { @@ -1583,17 +3581,69 @@ ], "responses": { "200": { - "description": "Ok", + "description": "The status of the webhook for the provider requested", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" + "type": "boolean" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1605,6 +3655,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1616,6 +3692,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1627,21 +3729,23 @@ } }, "tags": [ - "Workflow groups" + "Integrations" ], "security": [ { "api-key": [] } - ] - }, - "patch": { - "operationId": "NotificationGroupsController_updateNotificationGroup", - "summary": "Update workflow group", - "description": "workflow group was previously named notification group", + ], + "x-speakeasy-name-override": "getStatus" + } + }, + "/v1/integrations/{integrationId}": { + "put": { + "operationId": "IntegrationsController_updateIntegrationById", + "summary": "Update integration", "parameters": [ { - "name": "id", + "name": "integrationId", "required": true, "in": "path", "schema": { @@ -1654,7 +3758,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" + "$ref": "#/components/schemas/UpdateIntegrationRequestDto" } } } @@ -1662,16 +3766,94 @@ "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" + "$ref": "#/components/schemas/IntegrationResponseDto" } } } }, + "404": { + "description": "The integration with the integrationId provided does not exist in the database.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + } + }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1683,6 +3865,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1694,6 +3902,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1705,21 +3939,21 @@ } }, "tags": [ - "Workflow groups" + "Integrations" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "update" }, "delete": { - "operationId": "NotificationGroupsController_deleteNotificationGroup", - "summary": "Delete workflow group", - "description": "workflow group was previously named notification group", + "operationId": "IntegrationsController_removeIntegration", + "summary": "Delete integration", "parameters": [ { - "name": "id", + "name": "integrationId", "required": true, "in": "path", "schema": { @@ -1730,16 +3964,71 @@ "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DeleteNotificationGroupResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationResponseDto" + } } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1751,6 +4040,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1762,6 +4077,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1773,33 +4114,122 @@ } }, "tags": [ - "Workflow groups" + "Integrations" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "delete" } }, - "/v1/organizations/me": { - "get": { - "operationId": "EEOrganizationController_getMyOrganization", - "summary": "Fetch current organization details", - "parameters": [], + "/v1/integrations/{integrationId}/set-primary": { + "post": { + "operationId": "IntegrationsController_setIntegrationAsPrimary", + "x-speakeasy-name-override": "setPrimary", + "summary": "Set integration as primary", + "parameters": [ + { + "name": "integrationId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "Ok", - "content": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrganizationResponseDto" + "$ref": "#/components/schemas/IntegrationResponseDto" } } } }, + "404": { + "description": "The integration with the integrationId provided does not exist in the database.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + } + }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1811,6 +4241,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1822,6 +4278,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1833,7 +4315,7 @@ } }, "tags": [ - "Organizations" + "Integrations" ], "security": [ { @@ -1842,34 +4324,128 @@ ] } }, - "/v1/organizations/branding": { - "put": { - "operationId": "EEOrganizationController_updateBrandingDetails", - "summary": "Update organization branding details", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateBrandingDetailsDto" - } + "/v1/subscribers": { + "get": { + "operationId": "SubscribersController_listSubscribers", + "x-speakeasy-pagination": { + "type": "offsetLimit", + "inputs": [ + { + "name": "page", + "in": "parameters", + "type": "page" + }, + { + "name": "limit", + "in": "parameters", + "type": "limit" } + ], + "outputs": { + "results": "$.data.resultArray" } }, + "summary": "Get subscribers", + "description": "Returns a list of subscribers, could paginated using the `page` and `limit` query parameter", + "parameters": [ + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "maximum": 100, + "default": 10, + "type": "number" + } + } + ], "responses": { "200": { - "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrganizationBrandingResponseDto" + "allOf": [ + { + "$ref": "#/components/schemas/PaginatedResponseDto" + }, + { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubscriberResponseDto" + } + } + } + } + ] } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1881,6 +4457,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1892,6 +4494,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1903,43 +4531,95 @@ } }, "tags": [ - "Organizations" + "Subscribers" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/organizations": { - "patch": { - "operationId": "EEOrganizationController_renameOrganization", - "summary": "Rename organization name", + ], + "x-speakeasy-name-override": "getAll" + }, + "post": { + "operationId": "SubscribersController_createSubscriber", + "summary": "Create subscriber", + "description": "Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RenameOrganizationDto" + "$ref": "#/components/schemas/CreateSubscriberRequestDto" } } } }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RenameOrganizationDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -1951,6 +4631,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1962,6 +4668,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -1973,48 +4705,142 @@ } }, "tags": [ - "Organizations" + "Subscribers" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "create" } }, - "/v1/integrations": { + "/v1/subscribers/{subscriberId}": { "get": { - "operationId": "IntegrationsController_listIntegrations", - "summary": "Get integrations", - "description": "Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", - "parameters": [], + "operationId": "SubscribersController_getSubscriber", + "summary": "Get subscriber", + "description": "Get subscriber by your internal id used to identify the subscriber", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "includeTopics", + "required": false, + "in": "query", + "description": "Includes the topics associated with the subscriber", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "description": "The list of integrations belonging to the organization that are successfully returned.", + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IntegrationResponseDto" - } + "$ref": "#/components/schemas/SubscriberResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, + "content": { + "application/json": { + "schema": { + "type": "string", + "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" + } + } + } + }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2026,6 +4852,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2037,42 +4889,104 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "get" }, - "post": { - "operationId": "IntegrationsController_createIntegration", - "summary": "Create integration", - "description": "Create an integration for the current environment the user is based on the API key provided", - "parameters": [], + "put": { + "operationId": "SubscribersController_updateSubscriber", + "summary": "Update subscriber", + "description": "Used to update the subscriber entity with new information", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateIntegrationRequestDto" + "$ref": "#/components/schemas/UpdateSubscriberRequestDto" } } } }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/IntegrationResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2084,6 +4998,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2095,6 +5035,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2106,38 +5072,94 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/integrations/active": { - "get": { - "operationId": "IntegrationsController_getActiveIntegrations", - "x-speakeasy-name-override": "listActive", - "summary": "Get active integrations", - "description": "Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", - "parameters": [], + ], + "x-speakeasy-name-override": "update" + }, + "delete": { + "operationId": "SubscribersController_removeSubscriber", + "summary": "Delete subscriber", + "description": "Deletes a subscriber entity from the Novu platform", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "description": "The list of active integrations belonging to the organization that are successfully returned.", + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IntegrationResponseDto" - } + "$ref": "#/components/schemas/DeleteSubscriberResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2149,6 +5171,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2160,6 +5208,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2171,44 +5245,68 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "delete" } }, - "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": { - "get": { - "operationId": "IntegrationsController_getWebhookSupportStatus", - "x-speakeasy-group": "Integrations.Webhooks", - "summary": "Get webhook support status for provider", - "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value", - "parameters": [ - { - "name": "providerOrIntegrationId", - "required": true, - "in": "path", - "schema": { - "type": "string" + "/v1/subscribers/bulk": { + "post": { + "operationId": "SubscribersController_bulkCreateSubscribers", + "x-speakeasy-name-override": "createBulk", + "summary": "Bulk create subscribers", + "description": "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n ", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkSubscriberCreateDto" + } } } - ], + }, "responses": { - "200": { - "description": "The status of the webhook for the provider requested", - "content": { - "application/json": { - "schema": { - "type": "boolean" - } - } - } + "201": { + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2220,6 +5318,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2231,6 +5355,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2242,7 +5392,7 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { @@ -2251,13 +5401,15 @@ ] } }, - "/v1/integrations/{integrationId}": { + "/v1/subscribers/{subscriberId}/credentials": { "put": { - "operationId": "IntegrationsController_updateIntegrationById", - "summary": "Update integration", + "operationId": "SubscribersController_updateSubscriberChannel", + "x-speakeasy-group": "subscribers.credentials", + "summary": "Update subscriber credentials", + "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.", "parameters": [ { - "name": "integrationId", + "name": "subscriberId", "required": true, "in": "path", "schema": { @@ -2270,7 +5422,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateIntegrationRequestDto" + "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" } } } @@ -2278,19 +5430,68 @@ "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/IntegrationResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } }, - "404": { - "description": "The integration with the integrationId provided does not exist in the database." - }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2302,6 +5503,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2313,6 +5540,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2324,20 +5577,24 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "update" }, - "delete": { - "operationId": "IntegrationsController_removeIntegration", - "summary": "Delete integration", + "patch": { + "operationId": "SubscribersController_modifySubscriberChannel", + "x-speakeasy-name-override": "append", + "x-speakeasy-group": "subscribers.credentials", + "summary": "Modify subscriber credentials", + "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n\n This endpoint appends provided credentials and deviceTokens to the existing ones.", "parameters": [ { - "name": "integrationId", + "name": "subscriberId", "required": true, "in": "path", "schema": { @@ -2345,22 +5602,81 @@ } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" + } + } + } + }, "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IntegrationResponseDto" - } + "$ref": "#/components/schemas/SubscriberResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2372,6 +5688,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2383,6 +5725,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2394,7 +5762,7 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { @@ -2403,14 +5771,23 @@ ] } }, - "/v1/integrations/{integrationId}/set-primary": { - "post": { - "operationId": "IntegrationsController_setIntegrationAsPrimary", - "x-speakeasy-name-override": "setAsPrimary", - "summary": "Set integration as primary", + "/v1/subscribers/{subscriberId}/credentials/{providerId}": { + "delete": { + "operationId": "SubscribersController_deleteSubscriberCredentials", + "x-speakeasy-group": "subscribers.credentials", + "summary": "Delete subscriber credentials by providerId", + "description": "Delete subscriber credentials such as slack and expo tokens.", "parameters": [ { - "name": "integrationId", + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "providerId", "required": true, "in": "path", "schema": { @@ -2419,21 +5796,63 @@ } ], "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IntegrationResponseDto" - } + "204": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" } - } - }, - "404": { - "description": "The integration with the integrationId provided does not exist in the database." + }, + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2445,6 +5864,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2456,6 +5901,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2467,61 +5938,108 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "delete" } }, - "/v1/changes": { - "get": { - "operationId": "ChangesController_getChanges", - "summary": "Get changes", + "/v1/subscribers/{subscriberId}/online-status": { + "patch": { + "operationId": "SubscribersController_updateSubscriberOnlineFlag", + "x-speakeasy-name-override": "updateOnlineStatus", + "x-speakeasy-group": "Subscribers.properties", + "summary": "Update subscriber online status", + "description": "Used to update the subscriber isOnline flag.", "parameters": [ { - "name": "page", - "required": false, - "in": "query", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "maximum": 100, - "default": 10, - "type": "number" - } - }, - { - "name": "promoted", + "name": "subscriberId", "required": true, - "in": "query", + "in": "path", "schema": { - "default": "false", "type": "string" } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriberOnlineFlagRequestDto" + } + } + } + }, "responses": { "200": { - "description": "", + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ChangesResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2533,6 +6051,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2544,6 +6088,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2555,7 +6125,7 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { @@ -2564,25 +6134,98 @@ ] } }, - "/v1/changes/count": { + "/v1/subscribers/{subscriberId}/preferences": { "get": { - "operationId": "ChangesController_getChangesCount", - "x-speakeasy-name-override": "count", - "summary": "Get changes count", - "parameters": [], + "operationId": "SubscribersController_listSubscriberPreferences", + "x-speakeasy-group": "subscribers.preferences", + "summary": "Get subscriber preferences", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "includeInactiveChannels", + "required": false, + "in": "query", + "description": "A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true", + "schema": { + "type": "boolean" + } + } + ], "responses": { "200": { - "description": "", + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DataNumberDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" + } } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2594,6 +6237,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2605,6 +6274,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2616,47 +6311,105 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/changes/bulk/apply": { - "post": { - "operationId": "ChangesController_bulkApplyDiff", - "x-speakeasy-name-override": "applyBulk", - "summary": "Apply changes", - "parameters": [], + ], + "x-speakeasy-name-override": "get" + }, + "patch": { + "operationId": "SubscribersController_updateSubscriberGlobalPreferences", + "x-speakeasy-name-override": "updateGlobal", + "x-speakeasy-group": "subscribersPreferences", + "summary": "Update subscriber global preferences", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BulkApplyChangeDto" + "$ref": "#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto" } } } }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChangeResponseDto" - } + "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2668,6 +6421,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2679,6 +6458,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2690,7 +6495,7 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { @@ -2699,14 +6504,37 @@ ] } }, - "/v1/changes/{changeId}/apply": { - "post": { - "operationId": "ChangesController_applyDiff", - "x-speakeasy-name-override": "apply", - "summary": "Apply change", + "/v1/subscribers/{subscriberId}/preferences/{parameter}": { + "get": { + "operationId": "SubscribersController_getSubscriberPreferenceByLevel", + "x-speakeasy-name-override": "getByLevel", + "x-speakeasy-group": "subscribers.preferences", + "summary": "Get subscriber preferences by level", "parameters": [ { - "name": "changeId", + "name": "includeInactiveChannels", + "required": false, + "in": "query", + "description": "A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true", + "schema": { + "type": "boolean" + } + }, + { + "name": "parameter", + "required": true, + "in": "path", + "description": "the preferences level to be retrieved (template / global) ", + "schema": { + "enum": [ + "global", + "template" + ], + "type": "string" + } + }, + { + "name": "subscriberId", "required": true, "in": "path", "schema": { @@ -2715,14 +6543,37 @@ } ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ChangeResponseDto" + "$ref": "#/components/schemas/GetSubscriberPreferencesResponseDto" } } } @@ -2730,6 +6581,35 @@ }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2741,6 +6621,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2752,6 +6658,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2763,85 +6695,111 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/subscribers": { - "get": { - "operationId": "SubscribersController_listSubscribers", - "x-speakeasy-pagination": { - "type": "offsetLimit", - "inputs": [ - { - "name": "page", - "in": "parameters", - "type": "page" - }, - { - "name": "limit", - "in": "parameters", - "type": "limit" - } - ], - "outputs": { - "results": "$.data.resultArray" - } - }, - "summary": "Get subscribers", - "description": "Returns a list of subscribers, could paginated using the `page` and `limit` query parameter", + }, + "patch": { + "operationId": "SubscribersController_updateSubscriberPreference", + "x-speakeasy-group": "subscribers.preferences", + "summary": "Update subscriber preference", "parameters": [ { - "name": "page", - "required": false, - "in": "query", + "name": "subscriberId", + "required": true, + "in": "path", "schema": { - "type": "number" + "type": "string" } }, { - "name": "limit", - "required": false, - "in": "query", + "name": "parameter", + "required": true, + "in": "path", "schema": { - "maximum": 100, - "default": 10, - "type": "number" + "type": "string" } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriberPreferenceRequestDto" + } + } + } + }, "responses": { "200": { - "description": "", - "content": { + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/PaginatedResponseDto" - }, - { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriberResponseDto" - } - } - } - } - ] + "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2853,6 +6811,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2864,6 +6848,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2881,36 +6891,148 @@ { "api-key": [] } - ] - }, - "post": { - "operationId": "SubscribersController_createSubscriber", - "summary": "Create subscriber", - "description": "Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity.", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateSubscriberRequestDto" - } + ], + "x-speakeasy-name-override": "update" + } + }, + "/v1/subscribers/{subscriberId}/notifications/feed": { + "get": { + "operationId": "SubscribersController_getNotificationsFeed", + "x-speakeasy-group": "subscribers.notifications", + "summary": "Get in-app notification feed for a particular subscriber", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "maximum": 100, + "default": 10, + "type": "number" + } + }, + { + "name": "read", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "seen", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "payload", + "required": false, + "in": "query", + "description": "Base64 encoded string of the partial payload JSON object", + "example": "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + "schema": { + "type": "string" } } - }, + ], "responses": { - "201": { - "description": "Created", + "200": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "allOf": [ + { + "$ref": "#/components/schemas/PaginatedResponseDto" + }, + { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FeedResponseDto" + } + } + } + } + ] } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2922,6 +7044,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2933,6 +7081,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -2950,15 +7124,25 @@ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "getFeed" } }, - "/v1/subscribers/{subscriberId}": { + "/v1/subscribers/{subscriberId}/notifications/unseen": { "get": { - "operationId": "SubscribersController_getSubscriber", - "summary": "Get subscriber", - "description": "Get subscriber by your internal id used to identify the subscriber", + "operationId": "SubscribersController_getUnseenCount", + "x-speakeasy-name-override": "getUnseenCount", + "x-speakeasy-group": "subscribersNotifications", + "summary": "Get the unseen in-app notifications count for subscribers feed", "parameters": [ + { + "name": "seen", + "required": true, + "in": "query", + "schema": { + "type": "boolean" + } + }, { "name": "subscriberId", "required": true, @@ -2966,21 +7150,81 @@ "schema": { "type": "string" } + }, + { + "name": "limit", + "required": true, + "in": "query", + "schema": { + "type": "number" + } } ], "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "$ref": "#/components/schemas/UnseenCountResponse" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -2992,6 +7236,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3003,6 +7273,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3021,15 +7317,18 @@ "api-key": [] } ] - }, - "put": { - "operationId": "SubscribersController_updateSubscriber", - "summary": "Update subscriber", - "description": "Used to update the subscriber entity with new information", - "parameters": [ - { - "name": "subscriberId", - "required": true, + } + }, + "/v1/subscribers/{subscriberId}/messages/mark-as": { + "post": { + "operationId": "SubscribersController_markMessagesAs", + "x-speakeasy-name-override": "mark", + "x-speakeasy-group": "subscribers.messages", + "summary": "Mark a subscriber messages as seen, read, unseen or unread", + "parameters": [ + { + "name": "subscriberId", + "required": true, "in": "path", "schema": { "type": "string" @@ -3041,24 +7340,56 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSubscriberRequestDto" + "$ref": "#/components/schemas/MessageMarkAsRequestDto" } } } }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageEntity" + } } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3070,6 +7401,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3081,6 +7438,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3099,11 +7482,14 @@ "api-key": [] } ] - }, - "delete": { - "operationId": "SubscribersController_removeSubscriber", - "summary": "Delete subscriber", - "description": "Deletes a subscriber entity from the Novu platform", + } + }, + "/v1/subscribers/{subscriberId}/messages/mark-all": { + "post": { + "operationId": "SubscribersController_markAllUnreadAsRead", + "x-speakeasy-name-override": "markAll", + "x-speakeasy-group": "subscribersMessages", + "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.", "parameters": [ { "name": "subscriberId", @@ -3114,84 +7500,58 @@ } } ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteSubscriberResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/subscribers/bulk": { - "post": { - "operationId": "SubscribersController_bulkCreateSubscribers", - "x-speakeasy-name-override": "createBulk", - "summary": "Bulk create subscribers", - "description": "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n ", - "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BulkSubscriberCreateDto" + "$ref": "#/components/schemas/MarkAllMessageAsRequestDto" } } } }, "responses": { "201": { - "description": "" + "description": "", + "content": { + "application/json": { + "schema": { + "type": "number" + } + } + } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3203,6 +7563,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3214,6 +7600,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3234,13 +7646,27 @@ ] } }, - "/v1/subscribers/{subscriberId}/credentials": { - "put": { - "operationId": "SubscribersController_updateSubscriberChannel", - "x-speakeasy-group": "Subscribers.Credentials", - "summary": "Update subscriber credentials", - "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.", + "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}": { + "post": { + "operationId": "SubscribersController_markActionAsSeen", + "x-speakeasy-name-override": "updateAsSeen", + "x-speakeasy-group": "subscribersMessages", + "summary": "Mark message action as seen", "parameters": [ + { + "name": "messageId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "required": true, + "in": "path", + "schema": {} + }, { "name": "subscriberId", "required": true, @@ -3255,24 +7681,76 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" + "$ref": "#/components/schemas/MarkMessageActionAsSeenDto" } } } }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "$ref": "#/components/schemas/MessageResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3284,6 +7762,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3295,6 +7799,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3313,13 +7843,14 @@ "api-key": [] } ] - }, - "patch": { - "operationId": "SubscribersController_modifySubscriberChannel", - "x-speakeasy-name-override": "append", - "x-speakeasy-group": "Subscribers.Credentials", - "summary": "Modify subscriber credentials", - "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n This endpoint appends provided credentials and deviceTokens to the existing ones.", + } + }, + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": { + "get": { + "operationId": "SubscribersController_chatOauthCallback", + "x-speakeasy-name-override": "handleOauthCallback", + "x-speakeasy-group": "subscribers.authentication", + "summary": "Handle providers oauth redirect", "parameters": [ { "name": "subscriberId", @@ -3328,31 +7859,88 @@ "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", + }, + { + "name": "providerId", + "required": true, + "in": "path", + "schema": {} + }, + { + "name": "code", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "hmacHash", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "environmentId", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "integrationIdentifier", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "type": "object" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3364,6 +7952,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3375,6 +7989,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3395,12 +8035,12 @@ ] } }, - "/v1/subscribers/{subscriberId}/credentials/{providerId}": { - "delete": { - "operationId": "SubscribersController_deleteSubscriberCredentials", - "x-speakeasy-group": "Subscribers.Credentials", - "summary": "Delete subscriber credentials by providerId", - "description": "Delete subscriber credentials such as slack and expo tokens.", + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": { + "get": { + "operationId": "SubscribersController_chatAccessOauth", + "x-speakeasy-name-override": "handleOauth", + "x-speakeasy-group": "subscribers.authentication", + "summary": "Handle chat oauth", "parameters": [ { "name": "subscriberId", @@ -3414,17 +8054,68 @@ "name": "providerId", "required": true, "in": "path", + "schema": {} + }, + { + "name": "hmacHash", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "environmentId", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "integrationIdentifier", + "required": false, + "in": "query", "schema": { "type": "string" } } ], "responses": { - "204": { + "200": { "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3436,6 +8127,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3447,6 +8164,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3467,46 +8210,130 @@ ] } }, - "/v1/subscribers/{subscriberId}/online-status": { - "patch": { - "operationId": "SubscribersController_updateSubscriberOnlineFlag", - "x-speakeasy-name-override": "updateOnlineFlag", - "x-speakeasy-group": "Subscribers.properties", - "summary": "Update subscriber online status", - "description": "Used to update the subscriber isOnline flag.", + "/v1/messages": { + "get": { + "operationId": "MessagesController_getMessages", + "summary": "Get messages", + "description": "Returns a list of messages, could paginate using the `page` query parameter", "parameters": [ + { + "name": "channel", + "required": false, + "in": "query", + "schema": { + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ], + "type": "string" + } + }, { "name": "subscriberId", - "required": true, - "in": "path", + "required": false, + "in": "query", "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberOnlineFlagRequestDto" + }, + { + "name": "transactionId", + "required": false, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" } } + }, + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "default": 0, + "type": "number" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "default": 10, + "type": "number" + } } - }, + ], "responses": { "200": { - "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "$ref": "#/components/schemas/ActivitiesResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3518,6 +8345,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3529,6 +8382,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3540,23 +8419,24 @@ } }, "tags": [ - "Subscribers" + "Messages" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "get" } }, - "/v1/subscribers/{subscriberId}/preferences": { - "get": { - "operationId": "SubscribersController_listSubscriberPreferences", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Get subscriber preferences", + "/v1/messages/{messageId}": { + "delete": { + "operationId": "MessagesController_deleteMessage", + "summary": "Delete message", + "description": "Deletes a message entity from the Novu platform", "parameters": [ { - "name": "subscriberId", + "name": "messageId", "required": true, "in": "path", "schema": { @@ -3567,19 +8447,68 @@ "responses": { "200": { "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" - } + "$ref": "#/components/schemas/DeleteMessageResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3591,6 +8520,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3602,6 +8557,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3613,22 +8594,41 @@ } }, "tags": [ - "Subscribers" + "Messages" ], "security": [ { "api-key": [] } - ] - }, - "patch": { - "operationId": "SubscribersController_updateSubscriberGlobalPreferences", - "x-speakeasy-name-override": "updateGlobal", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Update subscriber global preferences", + ], + "x-speakeasy-name-override": "delete" + } + }, + "/v1/messages/transaction/{transactionId}": { + "delete": { + "operationId": "MessagesController_deleteMessagesByTransactionId", + "x-speakeasy-name-override": "deleteByTransactionId", + "summary": "Delete messages by transactionId", + "description": "Deletes messages entity from the Novu platform using TransactionId of message", "parameters": [ { - "name": "subscriberId", + "name": "channel", + "required": false, + "in": "query", + "description": "The channel of the message to be deleted", + "schema": { + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ], + "type": "string" + } + }, + { + "name": "transactionId", "required": true, "in": "path", "schema": { @@ -3636,29 +8636,64 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto" - } - } - } - }, "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" - } + "204": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" } - } + }, + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3670,6 +8705,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3681,6 +8742,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3692,7 +8779,7 @@ } }, "tags": [ - "Subscribers" + "Messages" ], "security": [ { @@ -3701,51 +8788,87 @@ ] } }, - "/v1/subscribers/{subscriberId}/preferences/{parameter}": { - "get": { - "operationId": "SubscribersController_getSubscriberPreferenceByLevel", - "x-speakeasy-name-override": "retrieveByLevel", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Get subscriber preferences by level", - "parameters": [ - { - "name": "parameter", - "required": true, - "in": "path", - "description": "the preferences level to be retrieved( Subscriber / Topic) ", - "schema": { - "enum": [ - "Subscriber", - "Topic" - ], - "type": "string" - } - }, - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" + "/v1/topics": { + "post": { + "operationId": "TopicsController_createTopic", + "summary": "Topic creation", + "description": "Create a topic", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTopicRequestDto" + } } } - ], + }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GetSubscriberPreferencesResponseDto" - } + "$ref": "#/components/schemas/CreateTopicResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3757,6 +8880,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3768,6 +8917,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3779,59 +8954,117 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "create" }, - "patch": { - "operationId": "SubscribersController_updateSubscriberPreference", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Update subscriber preference", + "get": { + "operationId": "TopicsController_listTopics", + "summary": "Filter topics", + "description": "Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter", "parameters": [ { - "name": "subscriberId", - "required": true, - "in": "path", + "name": "page", + "required": false, + "in": "query", + "description": "Number of page for the pagination", "schema": { - "type": "string" + "minimum": 0, + "default": 0, + "type": "number" } }, { - "name": "parameter", - "required": true, - "in": "path", + "name": "pageSize", + "required": false, + "in": "query", + "description": "Size of page for the pagination", + "schema": { + "minimum": 0, + "default": 10, + "type": "number" + } + }, + { + "name": "key", + "required": false, + "in": "query", + "description": "Topic key", "schema": { "type": "string" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceRequestDto" - } - } - } - }, "responses": { "200": { - "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" + "$ref": "#/components/schemas/FilterTopicsResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3843,6 +9076,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3854,6 +9113,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3865,101 +9150,102 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "getAll" } }, - "/v1/subscribers/{subscriberId}/notifications/feed": { - "get": { - "operationId": "SubscribersController_getNotificationsFeed", - "x-speakeasy-group": "Subscribers.Notifications", - "summary": "Get in-app notification feed for a particular subscriber", + "/v1/topics/{topicKey}/subscribers": { + "post": { + "operationId": "TopicsController_addSubscribers", + "x-speakeasy-name-override": "add", + "x-speakeasy-group": "topics.subscribers", + "summary": "Subscribers addition", + "description": "Add subscribers to a topic by key", "parameters": [ { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "maximum": 100, - "default": 10, - "type": "number" - } - }, - { - "name": "read", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "seen", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "payload", - "required": false, - "in": "query", - "description": "Base64 encoded string of the partial payload JSON object", - "example": "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + "description": "The topic key", "schema": { "type": "string" } } ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/PaginatedResponseDto" - }, - { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - } - ] - } + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddSubscribersRequestDto" } } + } + }, + "responses": { + "204": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -3971,6 +9257,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3982,6 +9294,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -3993,7 +9331,7 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { @@ -4002,51 +9340,74 @@ ] } }, - "/v1/subscribers/{subscriberId}/notifications/unseen": { + "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": { "get": { - "operationId": "SubscribersController_getUnseenCount", - "x-speakeasy-name-override": "unseenCount", - "x-speakeasy-group": "Subscribers.Notifications", - "summary": "Get the unseen in-app notifications count for subscribers feed", + "operationId": "TopicsController_getTopicSubscriber", + "x-speakeasy-group": "topics.subscribers", + "summary": "Check topic subscriber", + "description": "Check if a subscriber belongs to a certain topic", "parameters": [ { - "name": "seen", - "required": true, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "subscriberId", + "name": "externalSubscriberId", "required": true, "in": "path", + "description": "The external subscriber id", "schema": { "type": "string" } }, { - "name": "limit", + "name": "topicKey", "required": true, - "in": "query", + "in": "path", + "description": "The topic key", "schema": { - "type": "number" + "type": "string" } } ], "responses": { "200": { - "description": "Ok", + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnseenCountResponse" + "$ref": "#/components/schemas/TopicSubscriberDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -4058,6 +9419,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4069,6 +9456,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4080,26 +9493,28 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "check" } }, - "/v1/subscribers/{subscriberId}/messages/mark-as": { + "/v1/topics/{topicKey}/subscribers/removal": { "post": { - "operationId": "SubscribersController_markMessagesAs", - "x-speakeasy-name-override": "markAllAs", - "x-speakeasy-group": "Subscribers.Messages", - "summary": "Mark a subscriber messages as seen, read, unseen or unread", + "operationId": "TopicsController_removeSubscribers", + "x-speakeasy-group": "topics.subscribers", + "summary": "Subscribers removal", + "description": "Remove subscribers from a topic", "parameters": [ { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } @@ -4110,27 +9525,69 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MessageMarkAsRequestDto" + "$ref": "#/components/schemas/RemoveSubscribersRequestDto" } } } }, "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessageEntity" - } - } + "204": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" } - } + }, + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -4142,6 +9599,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4153,6 +9636,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4164,54 +9673,110 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } - ] + ], + "x-speakeasy-name-override": "remove" } }, - "/v1/subscribers/{subscriberId}/messages/mark-all": { - "post": { - "operationId": "SubscribersController_markAllUnreadAsRead", - "x-speakeasy-name-override": "markAll", - "x-speakeasy-group": "Subscribers.Messages", - "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.", + "/v1/topics/{topicKey}": { + "delete": { + "operationId": "TopicsController_deleteTopic", + "summary": "Delete topic", + "description": "Delete a topic by its topic key if it has no subscribers", "parameters": [ { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MarkAllMessageAsRequestDto" + "responses": { + "204": { + "description": "The topic has been deleted correctly", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" } } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "number" - } + }, + "404": { + "description": "The topic with the key provided does not exist in the database so it can not be deleted.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" } } }, "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "description": "The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { @@ -4223,6 +9788,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4234,6 +9825,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4245,68 +9862,95 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}": { - "post": { - "operationId": "SubscribersController_markActionAsSeen", - "x-speakeasy-name-override": "updateAsSeen", - "x-speakeasy-group": "Subscribers.Messages", - "summary": "Mark message action as seen", + ], + "x-speakeasy-name-override": "delete" + }, + "get": { + "operationId": "TopicsController_getTopic", + "summary": "Get topic", + "description": "Get a topic by its topic key", "parameters": [ { - "name": "messageId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "type", - "required": true, - "in": "path", - "schema": {} - }, - { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MarkMessageActionAsSeenDto" - } - } - } - }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MessageResponseDto" + "$ref": "#/components/schemas/GetTopicResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -4318,6 +9962,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4329,6 +9999,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4340,82 +10036,106 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } - ] - } - }, - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": { - "get": { - "operationId": "SubscribersController_chatOauthCallback", - "x-speakeasy-name-override": "chatAccessOauthCallBack", - "x-speakeasy-group": "Subscribers.Authentication", - "summary": "Handle providers oauth redirect", + ], + "x-speakeasy-name-override": "get" + }, + "patch": { + "operationId": "TopicsController_renameTopic", + "x-speakeasy-name-override": "rename", + "summary": "Rename a topic", + "description": "Rename a topic by providing a new name", "parameters": [ { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "providerId", + "name": "topicKey", "required": true, "in": "path", - "schema": {} - }, - { - "name": "code", - "required": true, - "in": "query", + "description": "The topic key", "schema": { "type": "string" } - }, - { - "name": "hmacHash", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "environmentId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "integrationIdentifier", - "required": false, - "in": "query", - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RenameTopicRequestDto" + } } } - ], + }, "responses": { "200": { - "description": "", + "description": "Ok", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/RenameTopicResponseDto" } } } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" + } + }, "content": { "application/json": { "schema": { @@ -4427,6 +10147,32 @@ }, "429": { "description": "The client has sent too many requests in a given amount of time. ", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4438,6 +10184,32 @@ }, "503": { "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, "content": { "application/json": { "schema": { @@ -4449,7 +10221,7 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { @@ -4457,3070 +10229,311 @@ } ] } + } + }, + "info": { + "title": "Novu API", + "description": "Novu REST API. Please see https://docs.novu.co/api-reference for more details.", + "version": "1.0", + "contact": { + "name": "Novu Support", + "url": "https://discord.gg/novu", + "email": "support@novu.co" + }, + "termsOfService": "https://novu.co/terms", + "license": { + "name": "MIT", + "url": "https://opensource.org/license/mit" + } + }, + "tags": [ + { + "name": "Events", + "description": "Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions.", + "externalDocs": { + "url": "https://docs.novu.co/workflows" + } }, - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": { - "get": { - "operationId": "SubscribersController_chatAccessOauth", - "x-speakeasy-name-override": "chatAccessOauth", - "x-speakeasy-group": "Subscribers.Authentication", - "summary": "Handle chat oauth", - "parameters": [ - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } + { + "name": "Subscribers", + "description": "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.", + "externalDocs": { + "url": "https://docs.novu.co/subscribers/subscribers" + } + }, + { + "name": "Topics", + "description": "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.", + "externalDocs": { + "url": "https://docs.novu.co/subscribers/topics" + } + }, + { + "name": "Notification", + "description": "A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness.", + "externalDocs": { + "url": "https://docs.novu.co/getting-started/introduction" + } + }, + { + "name": "Integrations", + "description": "With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers.", + "externalDocs": { + "url": "https://docs.novu.co/channels-and-providers/integration-store" + } + }, + { + "name": "Layouts", + "description": "Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform.", + "externalDocs": { + "url": "https://docs.novu.co/content-creation-design/layouts" + } + }, + { + "name": "Workflows", + "description": "All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system.", + "externalDocs": { + "url": "https://docs.novu.co/workflows" + } + }, + { + "name": "Notification Templates", + "description": "Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name." + }, + { + "name": "Workflow groups", + "description": "Workflow groups are used to organize workflows into logical groups." + }, + { + "name": "Changes", + "description": "Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready.", + "externalDocs": { + "url": "https://docs.novu.co/platform/environments#promoting-pending-changes-to-production" + } + }, + { + "name": "Environments", + "description": "Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another.", + "externalDocs": { + "url": "https://docs.novu.co/platform/environments" + } + }, + { + "name": "Inbound Parse", + "description": "Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format.", + "externalDocs": { + "url": "https://docs.novu.co/platform/inbound-parse-webhook" + } + }, + { + "name": "Feeds", + "description": "Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type.", + "externalDocs": { + "url": "https://docs.novu.co/activity-feed" + } + }, + { + "name": "Tenants", + "description": "A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations.", + "externalDocs": { + "url": "https://docs.novu.co/tenants" + } + }, + { + "name": "Messages", + "description": "A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages.", + "externalDocs": { + "url": "https://docs.novu.co/workflows/messages" + } + }, + { + "name": "Organizations", + "description": "An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account.", + "externalDocs": { + "url": "https://docs.novu.co/platform/organizations" + } + }, + { + "name": "Execution Details", + "description": "Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution.", + "externalDocs": { + "url": "https://docs.novu.co/activity-feed" + } + } + ], + "servers": [ + { + "url": "https://api.novu.co" + }, + { + "url": "https://eu.api.novu.co" + } + ], + "components": { + "securitySchemes": { + "api-key": { + "type": "apiKey", + "in": "header", + "name": "Authorization", + "description": "API key authentication. Allowed headers-- \"Authorization: ApiKey \u003capi_key\u003e\"." + } + }, + "schemas": { + "DataWrapperDto": { + "type": "object", + "properties": { + "data": { + "type": "object" + } + }, + "required": [ + "data" + ] + }, + "EnvironmentResponseDto": { + "type": "object", + "properties": { + "_id": { + "type": "string" }, - { - "name": "providerId", - "required": true, - "in": "path", - "schema": {} + "name": { + "type": "string" }, - { - "name": "hmacHash", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "environmentId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "integrationIdentifier", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/feeds": { - "post": { - "operationId": "FeedsController_createFeed", - "summary": "Create feed", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFeedRequestDto" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Feeds" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "FeedsController_getFeeds", - "summary": "Get feeds", - "parameters": [], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Feeds" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/feeds/{feedId}": { - "delete": { - "operationId": "FeedsController_deleteFeedById", - "summary": "Delete feed", - "parameters": [ - { - "name": "feedId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Feeds" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/layouts": { - "post": { - "operationId": "LayoutsController_PropertyDescriptor", - "x-speakeasy-name-override": "create", - "summary": "Layout creation", - "description": "Create a layout", - "parameters": [], - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateLayoutResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "LayoutsController_listLayouts", - "summary": "Filter layouts", - "description": "Returns a list of layouts that can be paginated using the `page` query parameter and filtered by the environment where it is executed from the organization the user belongs to.", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "description": "Number of page for pagination", - "schema": { - "minimum": 0, - "type": "number" - } - }, - { - "name": "pageSize", - "required": false, - "in": "query", - "description": "Size of page for pagination", - "schema": { - "minimum": 0, - "type": "number" - } - }, - { - "name": "sortBy", - "required": false, - "in": "query", - "description": "Sort field. Currently only supported `createdAt`", - "schema": { - "type": "string" - } - }, - { - "name": "orderBy", - "required": false, - "in": "query", - "description": "Direction of the sorting query param", - "schema": { - "enum": [ - "ASC", - "DESC" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The list of layouts that match the criteria of the query params are successfully returned." - }, - "400": { - "description": "Page size can not be larger than the page size limit." - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/layouts/{layoutId}": { - "get": { - "operationId": "LayoutsController_getLayout", - "summary": "Get layout", - "description": "Get a layout by its ID", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "description": "The layout id", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetLayoutResponseDto" - } - } - } - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database." - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "delete": { - "operationId": "LayoutsController_deleteLayout", - "summary": "Delete layout", - "description": "Execute a soft delete of a layout given a certain ID.", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "description": "The layout id", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The layout has been deleted correctly" - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database so it can not be deleted." - }, - "409": { - "description": "Either you are trying to delete a layout that is being used or a layout that is the default in the environment.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "patch": { - "operationId": "LayoutsController_updateLayout", - "summary": "Update a layout", - "description": "Update the name, content and variables of a layout. Also change it to be default or no.", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "description": "The layout id", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateLayoutRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateLayoutResponseDto" - } - } - } - }, - "400": { - "description": "The payload provided or the URL param are not right." - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database so it can not be updated." - }, - "409": { - "description": "One default layout is needed. If you are trying to turn a default layout as not default, you should turn a different layout as default first and automatically it will be done by the system.", - "content": { - "application/json": { - "schema": { - "example": "One default layout is required" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/layouts/{layoutId}/default": { - "post": { - "operationId": "LayoutsController_setDefaultLayout", - "x-speakeasy-name-override": "setAsDefault", - "summary": "Set default layout", - "description": "Sets the default layout for the environment and updates to non default to the existing default layout (if any).", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "description": "The layout id", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The selected layout has been set as the default for the environment." - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database so it can not be set as the default for the environment." - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/messages": { - "get": { - "operationId": "MessagesController_getMessages", - "summary": "Get messages", - "description": "Returns a list of messages, could paginate using the `page` query parameter", - "parameters": [ - { - "name": "channel", - "required": false, - "in": "query", - "schema": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], - "type": "string" - } - }, - { - "name": "subscriberId", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "transactionId", - "required": false, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "default": 0, - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "default": 10, - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ActivitiesResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Messages" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/messages/{messageId}": { - "delete": { - "operationId": "MessagesController_deleteMessage", - "summary": "Delete message", - "description": "Deletes a message entity from the Novu platform", - "parameters": [ - { - "name": "messageId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteMessageResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Messages" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/messages/transaction/{transactionId}": { - "delete": { - "operationId": "MessagesController_deleteMessagesByTransactionId", - "x-speakeasy-name-override": "deleteByTransactionId", - "summary": "Delete messages by transactionId", - "description": "Deletes messages entity from the Novu platform using TransactionId of message", - "parameters": [ - { - "name": "channel", - "required": false, - "in": "query", - "description": "The channel of the message to be deleted", - "schema": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], - "type": "string" - } - }, - { - "name": "transactionId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Messages" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics": { - "post": { - "operationId": "TopicsController_createTopic", - "summary": "Topic creation", - "description": "Create a topic", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTopicRequestDto" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTopicResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "TopicsController_listTopics", - "summary": "Filter topics", - "description": "Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "description": "Number of page for the pagination", - "schema": { - "minimum": 0, - "default": 0, - "type": "number" - } - }, - { - "name": "pageSize", - "required": false, - "in": "query", - "description": "Size of page for the pagination", - "schema": { - "minimum": 0, - "default": 10, - "type": "number" - } - }, - { - "name": "key", - "required": false, - "in": "query", - "description": "Topic key", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FilterTopicsResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}/subscribers": { - "post": { - "operationId": "TopicsController_addSubscribers", - "x-speakeasy-name-override": "assign", - "x-speakeasy-group": "Topics.Subscribers", - "summary": "Subscribers addition", - "description": "Add subscribers to a topic by key", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "description": "The topic key", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddSubscribersRequestDto" - } - } - } - }, - "responses": { - "204": { - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": { - "get": { - "operationId": "TopicsController_getTopicSubscriber", - "x-speakeasy-group": "Topics.Subscribers", - "summary": "Check topic subscriber", - "description": "Check if a subscriber belongs to a certain topic", - "parameters": [ - { - "name": "externalSubscriberId", - "required": true, - "in": "path", - "description": "The external subscriber id", - "schema": { - "type": "string" - } - }, - { - "name": "topicKey", - "required": true, - "in": "path", - "description": "The topic key", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TopicSubscriberDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}/subscribers/removal": { - "post": { - "operationId": "TopicsController_removeSubscribers", - "x-speakeasy-group": "Topics.Subscribers", - "summary": "Subscribers removal", - "description": "Remove subscribers from a topic", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "description": "The topic key", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RemoveSubscribersRequestDto" - } - } - } - }, - "responses": { - "204": { - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}": { - "delete": { - "operationId": "TopicsController_deleteTopic", - "summary": "Delete topic", - "description": "Delete a topic by its topic key if it has no subscribers", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "description": "The topic key", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The topic has been deleted correctly" - }, - "404": { - "description": "The topic with the key provided does not exist in the database so it can not be deleted." - }, - "409": { - "description": "The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "TopicsController_getTopic", - "summary": "Get topic", - "description": "Get a topic by its topic key", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "description": "The topic key", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTopicResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "patch": { - "operationId": "TopicsController_renameTopic", - "x-speakeasy-name-override": "rename", - "summary": "Rename a topic", - "description": "Rename a topic by providing a new name", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "description": "The topic key", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RenameTopicRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RenameTopicResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/tenants": { - "get": { - "operationId": "TenantController_listTenants", - "x-speakeasy-pagination": { - "type": "offsetLimit", - "inputs": [ - { - "name": "page", - "in": "parameters", - "type": "page" - }, - { - "name": "limit", - "in": "parameters", - "type": "limit" - } - ], - "outputs": { - "results": "$.data.resultArray" - } - }, - "summary": "Get tenants", - "description": "Returns a list of tenants, could paginated using the `page` and `limit` query parameter. Tenants is not supported in code first version of the API.", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "maximum": 100, - "default": 10, - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/PaginatedResponseDto" - }, - { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GetTenantResponseDto" - } - } - } - } - ] - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "post": { - "operationId": "TenantController_createTenant", - "summary": "Create tenant", - "description": "Create tenant under the current environment Tenants is not supported in code first version of the API.", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTenantRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTenantResponseDto" - } - } - } - }, - "409": { - "description": "A tenant with the same identifier is already exist.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/tenants/{identifier}": { - "get": { - "operationId": "TenantController_getTenantById", - "summary": "Get tenant", - "description": "Get tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API.", - "parameters": [ - { - "name": "identifier", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTenantResponseDto" - } - } - } - }, - "404": { - "description": "The tenant with the identifier provided does not exist in the database." - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "patch": { - "operationId": "TenantController_updateTenant", - "summary": "Update tenant", - "description": "Update tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API.", - "parameters": [ - { - "name": "identifier", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateTenantRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateTenantResponseDto" - } - } - } - }, - "404": { - "description": "The tenant with the identifier provided does not exist in the database." - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "delete": { - "operationId": "TenantController_removeTenant", - "summary": "Delete tenant", - "description": "Deletes a tenant entity from the Novu platform. Tenants is not supported in code first version of the API.", - "parameters": [ - { - "name": "identifier", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The tenant has been deleted correctly" - }, - "404": { - "description": "The tenant with the identifier provided does not exist in the database so it can not be deleted." - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - } - } - }, - "info": { - "title": "Novu API", - "description": "Novu REST API. Please see https://docs.novu.co/api-reference for more details.", - "version": "1.0", - "contact": { - "name": "Novu Support", - "url": "https://discord.gg/novu", - "email": "support@novu.co" - }, - "termsOfService": "https://novu.co/terms", - "license": { - "name": "MIT", - "url": "https://opensource.org/license/mit" - } - }, - "tags": [ - { - "name": "Events", - "description": "Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions.", - "externalDocs": { - "url": "https://docs.novu.co/workflows" - } - }, - { - "name": "Subscribers", - "description": "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.", - "externalDocs": { - "url": "https://docs.novu.co/subscribers/subscribers" - } - }, - { - "name": "Topics", - "description": "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.", - "externalDocs": { - "url": "https://docs.novu.co/subscribers/topics" - } - }, - { - "name": "Notification", - "description": "A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness.", - "externalDocs": { - "url": "https://docs.novu.co/getting-started/introduction" - } - }, - { - "name": "Integrations", - "description": "With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers.", - "externalDocs": { - "url": "https://docs.novu.co/channels-and-providers/integration-store" - } - }, - { - "name": "Layouts", - "description": "Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform.", - "externalDocs": { - "url": "https://docs.novu.co/content-creation-design/layouts" - } - }, - { - "name": "Workflows", - "description": "All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system.", - "externalDocs": { - "url": "https://docs.novu.co/workflows" - } - }, - { - "name": "Notification Templates", - "description": "Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name." - }, - { - "name": "Workflow groups", - "description": "Workflow groups are used to organize workflows into logical groups." - }, - { - "name": "Changes", - "description": "Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready.", - "externalDocs": { - "url": "https://docs.novu.co/platform/environments#promoting-pending-changes-to-production" - } - }, - { - "name": "Environments", - "description": "Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another.", - "externalDocs": { - "url": "https://docs.novu.co/platform/environments" - } - }, - { - "name": "Inbound Parse", - "description": "Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format.", - "externalDocs": { - "url": "https://docs.novu.co/platform/inbound-parse-webhook" - } - }, - { - "name": "Feeds", - "description": "Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type.", - "externalDocs": { - "url": "https://docs.novu.co/activity-feed" - } - }, - { - "name": "Tenants", - "description": "A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations.", - "externalDocs": { - "url": "https://docs.novu.co/tenants" - } - }, - { - "name": "Messages", - "description": "A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages.", - "externalDocs": { - "url": "https://docs.novu.co/workflows/messages" - } - }, - { - "name": "Organizations", - "description": "An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account.", - "externalDocs": { - "url": "https://docs.novu.co/platform/organizations" - } - }, - { - "name": "Execution Details", - "description": "Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution.", - "externalDocs": { - "url": "https://docs.novu.co/activity-feed" - } - }, - { - "name": "Translations", - "description": "Translations are used to localize your messages for different languages and regions. Novu provides a way to create and manage translations for your messages. You can create translations for your messages in different languages and regions, and assign them to your subscribers based on their preferences.", - "externalDocs": { - "url": "https://docs.novu.co/content-creation-design/translations" - } - } - ], - "servers": [ - { - "url": "https://api.novu.co" - }, - { - "url": "https://eu.api.novu.co" - } - ], - "components": { - "securitySchemes": { - "api-key": { - "type": "apiKey", - "in": "header", - "name": "Authorization", - "description": "API key authentication. Allowed headers-- \"Authorization: ApiKey \u003capi_key\u003e\"." - } - }, - "schemas": { - "DataWrapperDto": { - "type": "object", - "properties": { - "data": { - "type": "object" - } - }, - "required": [ - "data" - ] - }, - "EnvironmentResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "apiKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "_parentId": { - "type": "string" - } - }, - "required": [ - "name", - "_organizationId", - "identifier", - "_parentId" - ] - }, - "ApiKey": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "_userId": { - "type": "string" - } - }, - "required": [ - "key", - "_userId" - ] - }, - "ExecutionDetailsResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "_jobId": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_notificationId": { - "type": "string" - }, - "_notificationTemplateId": { - "type": "string" - }, - "_subscriberId": { - "type": "string" - }, - "_messageId": { - "type": "string" - }, - "providerId": { - "type": "string" - }, - "transactionId": { - "type": "string" - }, - "channel": { - "type": "string", - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push", - "digest", - "trigger", - "delay", - "custom" - ] - }, - "detail": { - "type": "string" - }, - "source": { - "type": "string", - "enum": [ - "Credentials", - "Internal", - "Payload", - "Webhook" - ] - }, - "status": { - "type": "string", - "enum": [ - "Success", - "Warning", - "Failed", - "Pending", - "Queued", - "ReadConfirmation" - ] - }, - "isTest": { - "type": "boolean" - }, - "isRetry": { - "type": "boolean" - }, - "createdAt": { - "type": "string" - } - }, - "required": [ - "_organizationId", - "_jobId", - "_environmentId", - "_notificationId", - "_notificationTemplateId", - "_subscriberId", - "transactionId", - "channel", - "detail", - "source", - "status", - "isTest", - "isRetry" - ] - }, - "WorkflowsResponseDto": { - "type": "object", - "properties": { - "totalCount": { - "type": "number" - }, - "data": { - "type": "array", - "items": { - "type": "string" - } - }, - "pageSize": { - "type": "number" - }, - "page": { - "type": "number" - } - }, - "required": [ - "totalCount", - "data", - "pageSize", - "page" - ] - }, - "NotificationGroup": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "_parentId": { - "type": "string" - } - }, - "required": [ - "name", - "_environmentId", - "_organizationId" - ] - }, - "PreferenceChannels": { - "type": "object", - "properties": { - "email": { - "type": "boolean" - }, - "sms": { - "type": "boolean" - }, - "in_app": { - "type": "boolean" - }, - "chat": { - "type": "boolean" - }, - "push": { - "type": "boolean" - } - } - }, - "DigestRegularMetadata": { - "type": "object", - "properties": { - "amount": { - "type": "number" - }, - "unit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "digestKey": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "regular", - "backoff" - ] - }, - "backoff": { - "type": "boolean" - }, - "backoffAmount": { - "type": "number" - }, - "backoffUnit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "updateMode": { - "type": "boolean" - } - }, - "required": [ - "type" - ] - }, - "TimedConfig": { - "type": "object", - "properties": { - "atTime": { - "type": "string" - }, - "weekDays": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "monday", - "tuesday", - "wednesday", - "thursday", - "friday", - "saturday", - "sunday" - ] - } - }, - "monthDays": { - "type": "array", - "items": { - "type": "string" - } - }, - "ordinal": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4", - "5", - "last" - ] - }, - "ordinalValue": { - "type": "string", - "enum": [ - "day", - "weekday", - "weekend", - "sunday", - "monday", - "tuesday", - "wednesday", - "thursday", - "friday", - "saturday" - ] - }, - "monthlyType": { - "type": "string", - "enum": [ - "each", - "on" - ] - } - } - }, - "DigestTimedMetadata": { - "type": "object", - "properties": { - "amount": { - "type": "number" - }, - "unit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "digestKey": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "timed" - ] - }, - "timed": { - "$ref": "#/components/schemas/TimedConfig" - } - }, - "required": [ - "type" - ] - }, - "DelayRegularMetadata": { - "type": "object", - "properties": { - "amount": { - "type": "number" - }, - "unit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "type": { - "type": "string", - "enum": [ - "regular" - ] - } - }, - "required": [ - "type" - ] - }, - "DelayScheduledMetadata": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "scheduled" - ] - }, - "delayPath": { - "type": "string" - } - }, - "required": [ - "type", - "delayPath" - ] - }, - "MessageTemplate": { - "type": "object", - "properties": {} - }, - "FieldFilterPart": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "value": { - "type": "string" - }, - "operator": { - "type": "string", - "enum": [ - "LARGER", - "SMALLER", - "LARGER_EQUAL", - "SMALLER_EQUAL", - "EQUAL", - "NOT_EQUAL", - "ALL_IN", - "ANY_IN", - "NOT_IN", - "BETWEEN", - "NOT_BETWEEN", - "LIKE", - "NOT_LIKE", - "IN" - ] - }, - "on": { - "type": "string", - "enum": [ - "subscriber", - "payload" - ] - } - }, - "required": [ - "field", - "value", - "operator", - "on" - ] - }, - "StepFilter": { - "type": "object", - "properties": { - "isNegated": { - "type": "boolean" - }, - "type": { - "type": "string", - "enum": [ - "BOOLEAN", - "TEXT", - "DATE", - "NUMBER", - "STATEMENT", - "LIST", - "MULTI_LIST", - "GROUP" - ] - }, - "value": { - "type": "string", - "enum": [ - "AND", - "OR" - ] - }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FieldFilterPart" - } - } - }, - "required": [ - "isNegated", - "type", - "value", - "children" - ] - }, - "NotificationStepVariant": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_templateId": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "shouldStopOnFail": { - "type": "boolean" - }, - "template": { - "$ref": "#/components/schemas/MessageTemplate" - }, - "filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StepFilter" - } - }, - "_parentId": { - "type": "object" - }, - "metadata": { - "oneOf": [ - { - "$ref": "#/components/schemas/DigestRegularMetadata" - }, - { - "$ref": "#/components/schemas/DigestTimedMetadata" - }, - { - "$ref": "#/components/schemas/DelayRegularMetadata" - }, - { - "$ref": "#/components/schemas/DelayScheduledMetadata" - } - ] - }, - "replyCallback": { - "type": "object" - } - } - }, - "NotificationStep": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_templateId": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "shouldStopOnFail": { - "type": "boolean" - }, - "template": { - "$ref": "#/components/schemas/MessageTemplate" - }, - "filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StepFilter" - } - }, - "_parentId": { - "type": "object" - }, - "metadata": { - "oneOf": [ - { - "$ref": "#/components/schemas/DigestRegularMetadata" - }, - { - "$ref": "#/components/schemas/DigestTimedMetadata" - }, - { - "$ref": "#/components/schemas/DelayRegularMetadata" - }, - { - "$ref": "#/components/schemas/DelayScheduledMetadata" - } - ] - }, - "replyCallback": { - "type": "object" - }, - "variants": { - "$ref": "#/components/schemas/NotificationStepVariant" - } - } - }, - "NotificationTriggerVariable": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - }, - "NotificationTrigger": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "event" - ] - }, - "identifier": { - "type": "string" - }, - "variables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationTriggerVariable" - } - }, - "subscriberVariables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationTriggerVariable" - } - } - }, - "required": [ - "type", - "identifier", - "variables" - ] - }, - "WorkflowResponse": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "draft": { - "type": "boolean" - }, - "preferenceSettings": { - "$ref": "#/components/schemas/PreferenceChannels" - }, - "critical": { - "type": "boolean" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "steps": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationStep" - } - }, - "_organizationId": { - "type": "string" - }, - "_creatorId": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "triggers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationTrigger" - } - }, - "_notificationGroupId": { - "type": "string" - }, - "_parentId": { - "type": "string" - }, - "deleted": { - "type": "boolean" - }, - "deletedAt": { - "type": "string" - }, - "deletedBy": { - "type": "string" - }, - "notificationGroup": { - "$ref": "#/components/schemas/NotificationGroup" - }, - "data": { - "type": "object" - }, - "workflowIntegrationStatus": { - "type": "object" - } - }, - "required": [ - "name", - "description", - "active", - "draft", - "preferenceSettings", - "critical", - "tags", - "steps", - "_organizationId", - "_creatorId", - "_environmentId", - "triggers", - "_notificationGroupId", - "deleted", - "deletedAt", - "deletedBy" - ] - }, - "UpdateWorkflowRequestDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string", - "maxLength": 300 + "_organizationId": { + "type": "string" }, "identifier": { "type": "string" }, - "steps": { + "apiKeys": { "type": "array", "items": { "type": "string" } }, - "notificationGroupId": { - "type": "string" - }, - "critical": { - "type": "boolean" - }, - "preferenceSettings": { - "$ref": "#/components/schemas/PreferenceChannels" + "_parentId": { + "type": "string" }, - "data": { - "type": "object" + "slug": { + "type": "string" } }, "required": [ "name", - "notificationGroupId" - ] - }, - "DataBooleanDto": { - "type": "object", - "properties": { - "data": { - "type": "boolean" - } - }, - "required": [ - "data" + "_organizationId", + "identifier", + "_parentId" ] }, - "VariablesResponseDto": { + "ApiKey": { "type": "object", "properties": { - "translations": { - "type": "object" + "key": { + "type": "string" }, - "system": { - "type": "object" + "_userId": { + "type": "string" } }, "required": [ - "translations", - "system" + "key", + "_userId" ] }, - "CreateWorkflowRequestDto": { + "ExecutionDetailsResponseDto": { "type": "object", "properties": { - "name": { + "_id": { "type": "string" }, - "notificationGroupId": { + "_organizationId": { "type": "string" }, - "notificationGroup": { - "type": "object" + "_jobId": { + "type": "string" }, - "tags": { - "type": "array", - "items": { - "type": "string" - } + "_environmentId": { + "type": "string" }, - "description": { - "type": "string", - "maxLength": 1000 + "_notificationId": { + "type": "string" }, - "steps": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationStep" - } + "_notificationTemplateId": { + "type": "string" }, - "active": { - "type": "boolean" + "_subscriberId": { + "type": "string" }, - "draft": { - "type": "boolean", - "deprecated": true + "_messageId": { + "type": "string" }, - "critical": { - "type": "boolean" + "providerId": { + "type": "string" }, - "preferenceSettings": { - "$ref": "#/components/schemas/PreferenceChannels" + "transactionId": { + "type": "string" + }, + "channel": { + "type": "string", + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push", + "digest", + "trigger", + "delay", + "custom" + ] }, - "blueprintId": { + "detail": { "type": "string" }, - "data": { - "type": "object" - } - }, - "required": [ - "name", - "notificationGroupId", - "steps" - ] - }, - "ChangeWorkflowStatusRequestDto": { - "type": "object", - "properties": { - "active": { + "source": { + "type": "string", + "enum": [ + "Credentials", + "Internal", + "Payload", + "Webhook" + ] + }, + "status": { + "type": "string", + "enum": [ + "Success", + "Warning", + "Failed", + "Pending", + "Queued", + "ReadConfirmation" + ] + }, + "isTest": { + "type": "boolean" + }, + "isRetry": { "type": "boolean" + }, + "createdAt": { + "type": "string" } }, "required": [ - "active" + "_organizationId", + "_jobId", + "_environmentId", + "_notificationId", + "_notificationTemplateId", + "_subscriberId", + "transactionId", + "channel", + "detail", + "source", + "status", + "isTest", + "isRetry" ] }, "TriggerEventResponseDto": { @@ -7798,6 +10811,17 @@ "payload" ] }, + "DataBooleanDto": { + "type": "object", + "properties": { + "data": { + "type": "boolean" + } + }, + "required": [ + "data" + ] + }, "ActivitiesResponseDto": { "type": "object", "properties": { @@ -7957,135 +10981,21 @@ "in_app", "email", "sms", - "chat", - "push", - "digest", - "trigger", - "delay", - "custom" - ] - }, - "subscriber": { - "$ref": "#/components/schemas/ActivityNotificationSubscriberResponseDto" - }, - "template": { - "$ref": "#/components/schemas/ActivityNotificationTemplateResponseDto" - }, - "jobs": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "_environmentId", - "_organizationId", - "transactionId" - ] - }, - "NotificationGroupResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "_parentId": { - "type": "string" - } - }, - "required": [ - "name", - "_environmentId", - "_organizationId" - ] - }, - "CreateNotificationGroupRequestDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - }, - "DeleteNotificationGroupResponseDto": { - "type": "object", - "properties": { - "acknowledged": { - "type": "boolean", - "description": "A boolean stating the success of the action" - }, - "status": { - "type": "string", - "description": "The status enum for the performed action", - "enum": [ - "deleted" - ] - } - }, - "required": [ - "acknowledged", - "status" - ] - }, - "OrganizationBrandingResponseDto": { - "type": "object", - "properties": { - "direction": { - "enum": [ - "ltr", - "trl" - ], - "type": "string" - }, - "logo": { - "type": "string" - }, - "color": { - "type": "string" - }, - "fontColor": { - "type": "string" - }, - "contentBackground": { - "type": "string" - }, - "fontFamily": { - "type": "string" - } - }, - "required": [ - "logo", - "color", - "fontColor", - "contentBackground" - ] - }, - "OrganizationResponseDto": { - "type": "object", - "properties": { - "name": { - "type": "string" + "chat", + "push", + "digest", + "trigger", + "delay", + "custom" + ] }, - "logo": { - "type": "string" + "subscriber": { + "$ref": "#/components/schemas/ActivityNotificationSubscriberResponseDto" }, - "branding": { - "$ref": "#/components/schemas/OrganizationBrandingResponseDto" + "template": { + "$ref": "#/components/schemas/ActivityNotificationTemplateResponseDto" }, - "partnerConfigurations": { + "jobs": { "type": "array", "items": { "type": "string" @@ -8093,37 +11003,37 @@ } }, "required": [ - "name", - "branding" + "_environmentId", + "_organizationId", + "transactionId" ] }, - "UpdateBrandingDetailsDto": { + "NotificationGroupResponseDto": { "type": "object", "properties": { - "logo": { + "_id": { "type": "string" }, - "color": { + "name": { "type": "string" }, - "fontColor": { + "_environmentId": { "type": "string" }, - "contentBackground": { + "_organizationId": { "type": "string" }, - "fontFamily": { + "_parentId": { "type": "string" } }, "required": [ - "logo", - "color", - "fontColor", - "contentBackground" + "name", + "_environmentId", + "_organizationId" ] }, - "RenameOrganizationDto": { + "CreateNotificationGroupRequestDto": { "type": "object", "properties": { "name": { @@ -8134,6 +11044,26 @@ "name" ] }, + "DeleteNotificationGroupResponseDto": { + "type": "object", + "properties": { + "acknowledged": { + "type": "boolean", + "description": "A boolean stating the success of the action" + }, + "status": { + "type": "string", + "description": "The status enum for the performed action", + "enum": [ + "deleted" + ] + } + }, + "required": [ + "acknowledged", + "status" + ] + }, "CredentialsDto": { "type": "object", "properties": { @@ -8265,6 +11195,89 @@ } } }, + "FieldFilterPart": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "LARGER", + "SMALLER", + "LARGER_EQUAL", + "SMALLER_EQUAL", + "EQUAL", + "NOT_EQUAL", + "ALL_IN", + "ANY_IN", + "NOT_IN", + "BETWEEN", + "NOT_BETWEEN", + "LIKE", + "NOT_LIKE", + "IN" + ] + }, + "on": { + "type": "string", + "enum": [ + "subscriber", + "payload" + ] + } + }, + "required": [ + "field", + "value", + "operator", + "on" + ] + }, + "StepFilter": { + "type": "object", + "properties": { + "isNegated": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "BOOLEAN", + "TEXT", + "DATE", + "NUMBER", + "STATEMENT", + "LIST", + "MULTI_LIST", + "GROUP" + ] + }, + "value": { + "type": "string", + "enum": [ + "AND", + "OR" + ] + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldFilterPart" + } + } + }, + "required": [ + "isNegated", + "type", + "value", + "children" + ] + }, "IntegrationResponseDto": { "type": "object", "properties": { @@ -8417,112 +11430,6 @@ } } }, - "ChangesResponseDto": { - "type": "object", - "properties": { - "totalCount": { - "type": "number" - }, - "data": { - "type": "array", - "items": { - "type": "string" - } - }, - "pageSize": { - "type": "number" - }, - "page": { - "type": "number" - } - }, - "required": [ - "totalCount", - "data", - "pageSize", - "page" - ] - }, - "DataNumberDto": { - "type": "object", - "properties": { - "data": { - "type": "number" - } - }, - "required": [ - "data" - ] - }, - "ChangeResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "_creatorId": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "_entityId": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "type": { - "enum": [ - "Feed", - "MessageTemplate", - "Layout", - "DefaultLayout", - "NotificationTemplate", - "NotificationGroup", - "TranslationGroup", - "Translation" - ], - "type": "string" - }, - "change": { - "type": "object" - }, - "createdAt": { - "type": "string" - }, - "_parentId": { - "type": "string" - } - }, - "required": [ - "_creatorId", - "_environmentId", - "_organizationId", - "_entityId", - "enabled", - "type", - "change", - "createdAt" - ] - }, - "BulkApplyChangeDto": { - "type": "object", - "properties": { - "changeIds": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "changeIds" - ] - }, "PaginatedResponseDto": { "type": "object", "properties": { @@ -8600,29 +11507,25 @@ "type": "object", "properties": { "providerId": { - "type": "number", + "type": "string", "enum": [ - { - "Slack": "slack", - "Discord": "discord", - "MsTeams": "msteams", - "Mattermost": "mattermost", - "Ryver": "ryver", - "Zulip": "zulip", - "GrafanaOnCall": "grafana-on-call", - "GetStream": "getstream", - "RocketChat": "rocket-chat", - "WhatsAppBusiness": "whatsapp-business" - }, - { - "FCM": "fcm", - "APNS": "apns", - "EXPO": "expo", - "OneSignal": "one-signal", - "Pushpad": "pushpad", - "PushWebhook": "push-webhook", - "PusherBeams": "pusher-beams" - } + "slack", + "discord", + "msteams", + "mattermost", + "ryver", + "zulip", + "grafana-on-call", + "getstream", + "rocket-chat", + "whatsapp-business", + "fcm", + "apns", + "expo", + "one-signal", + "pushpad", + "push-webhook", + "pusher-beams" ], "description": "The provider identifier for the credentials" }, @@ -8685,6 +11588,13 @@ "$ref": "#/components/schemas/ChannelSettings" } }, + "topics": { + "description": "Topics that subscriber belongs to", + "type": "array", + "items": { + "type": "string" + } + }, "isOnline": { "type": "boolean" }, @@ -8796,6 +11706,12 @@ }, "data": { "type": "object" + }, + "channels": { + "type": "array", + "items": { + "type": "string" + } } } }, @@ -8803,29 +11719,25 @@ "type": "object", "properties": { "providerId": { - "type": "number", + "type": "string", "enum": [ - { - "Slack": "slack", - "Discord": "discord", - "MsTeams": "msteams", - "Mattermost": "mattermost", - "Ryver": "ryver", - "Zulip": "zulip", - "GrafanaOnCall": "grafana-on-call", - "GetStream": "getstream", - "RocketChat": "rocket-chat", - "WhatsAppBusiness": "whatsapp-business" - }, - { - "FCM": "fcm", - "APNS": "apns", - "EXPO": "expo", - "OneSignal": "one-signal", - "Pushpad": "pushpad", - "PushWebhook": "push-webhook", - "PusherBeams": "pusher-beams" - } + "slack", + "discord", + "msteams", + "mattermost", + "ryver", + "zulip", + "grafana-on-call", + "getstream", + "rocket-chat", + "whatsapp-business", + "fcm", + "apns", + "expo", + "one-signal", + "pushpad", + "push-webhook", + "pusher-beams" ], "description": "The provider identifier for the credentials" }, @@ -8908,6 +11820,26 @@ "triggers" ] }, + "PreferenceChannels": { + "type": "object", + "properties": { + "email": { + "type": "boolean" + }, + "sms": { + "type": "boolean" + }, + "in_app": { + "type": "boolean" + }, + "chat": { + "type": "boolean" + }, + "push": { + "type": "boolean" + } + } + }, "Preference": { "type": "object", "properties": { @@ -9269,173 +12201,341 @@ "data" ] }, - "MessageResponseDto": { + "NotificationGroup": { "type": "object", "properties": { "_id": { "type": "string" }, - "_templateId": { + "name": { "type": "string" }, "_environmentId": { "type": "string" }, - "_messageTemplateId": { + "_organizationId": { "type": "string" }, - "_organizationId": { + "_parentId": { "type": "string" + } + }, + "required": [ + "name", + "_environmentId", + "_organizationId" + ] + }, + "DigestRegularMetadata": { + "type": "object", + "properties": { + "amount": { + "type": "number" }, - "_notificationId": { + "unit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] + }, + "digestKey": { "type": "string" }, - "_subscriberId": { + "type": { + "type": "string", + "enum": [ + "regular", + "backoff" + ] + }, + "backoff": { + "type": "boolean" + }, + "backoffAmount": { + "type": "number" + }, + "backoffUnit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] + }, + "updateMode": { + "type": "boolean" + } + }, + "required": [ + "type" + ] + }, + "TimedConfig": { + "type": "object", + "properties": { + "atTime": { "type": "string" }, - "subscriber": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "weekDays": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday", + "sunday" + ] + } }, - "template": { - "$ref": "#/components/schemas/WorkflowResponse" + "monthDays": { + "type": "array", + "items": { + "type": "string" + } }, - "templateIdentifier": { + "ordinal": { + "type": "string", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "last" + ] + }, + "ordinalValue": { + "type": "string", + "enum": [ + "day", + "weekday", + "weekend", + "sunday", + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday" + ] + }, + "monthlyType": { + "type": "string", + "enum": [ + "each", + "on" + ] + } + } + }, + "DigestTimedMetadata": { + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "unit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] + }, + "digestKey": { "type": "string" }, - "createdAt": { + "type": { + "type": "string", + "enum": [ + "timed" + ] + }, + "timed": { + "$ref": "#/components/schemas/TimedConfig" + } + }, + "required": [ + "type" + ] + }, + "DelayRegularMetadata": { + "type": "object", + "properties": { + "amount": { + "type": "number" + }, + "unit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] + }, + "type": { + "type": "string", + "enum": [ + "regular" + ] + } + }, + "required": [ + "type" + ] + }, + "DelayScheduledMetadata": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "scheduled" + ] + }, + "delayPath": { + "type": "string" + } + }, + "required": [ + "type", + "delayPath" + ] + }, + "MessageTemplate": { + "type": "object", + "properties": {} + }, + "NotificationStepVariant": { + "type": "object", + "properties": { + "_id": { "type": "string" }, - "lastSeenDate": { + "uuid": { "type": "string" }, - "lastReadDate": { + "name": { "type": "string" }, - "content": { + "_templateId": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "shouldStopOnFail": { + "type": "boolean" + }, + "template": { + "$ref": "#/components/schemas/MessageTemplate" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StepFilter" + } + }, + "_parentId": { + "type": "object" + }, + "metadata": { "oneOf": [ { - "$ref": "#/components/schemas/EmailBlock" + "$ref": "#/components/schemas/DigestRegularMetadata" }, { - "type": "string" + "$ref": "#/components/schemas/DigestTimedMetadata" + }, + { + "$ref": "#/components/schemas/DelayRegularMetadata" + }, + { + "$ref": "#/components/schemas/DelayScheduledMetadata" } ] }, - "transactionId": { + "replyCallback": { + "type": "object" + } + } + }, + "NotificationStep": { + "type": "object", + "properties": { + "_id": { "type": "string" }, - "subject": { + "uuid": { "type": "string" }, - "channel": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], + "name": { "type": "string" }, - "read": { - "type": "boolean" - }, - "seen": { - "type": "boolean" - }, - "email": { + "_templateId": { "type": "string" }, - "phone": { - "type": "string" + "active": { + "type": "boolean" }, - "directWebhookUrl": { - "type": "string" + "shouldStopOnFail": { + "type": "boolean" }, - "providerId": { - "type": "string" + "template": { + "$ref": "#/components/schemas/MessageTemplate" }, - "deviceTokens": { + "filters": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/StepFilter" } }, - "title": { - "type": "string" - }, - "cta": { - "$ref": "#/components/schemas/MessageCTA" - }, - "_feedId": { - "type": "object", - "nullable": true + "_parentId": { + "type": "object" }, - "status": { - "type": "string", - "enum": [ - "sent", - "error", - "warning" + "metadata": { + "oneOf": [ + { + "$ref": "#/components/schemas/DigestRegularMetadata" + }, + { + "$ref": "#/components/schemas/DigestTimedMetadata" + }, + { + "$ref": "#/components/schemas/DelayRegularMetadata" + }, + { + "$ref": "#/components/schemas/DelayScheduledMetadata" + } ] }, - "errorId": { - "type": "string" - }, - "errorText": { - "type": "string" - }, - "payload": { - "type": "object", - "description": "The payload that was used to send the notification trigger" - }, - "overrides": { - "type": "object", - "description": "Provider specific overrides used when triggering the notification" - } - }, - "required": [ - "_templateId", - "_environmentId", - "_messageTemplateId", - "_organizationId", - "_notificationId", - "_subscriberId", - "createdAt", - "content", - "transactionId", - "channel", - "read", - "seen", - "cta", - "status", - "errorId", - "errorText", - "payload", - "overrides" - ] - }, - "MarkMessageActionAsSeenDto": { - "type": "object", - "properties": { - "status": { - "enum": [ - "pending", - "done" - ], - "type": "string", - "description": "Message action status" + "replyCallback": { + "type": "object" }, - "payload": { - "type": "object", - "description": "Message action payload" + "variants": { + "$ref": "#/components/schemas/NotificationStepVariant" } - }, - "required": [ - "status" - ] + } }, - "CreateFeedRequestDto": { + "NotificationTriggerVariable": { "type": "object", "properties": { "name": { @@ -9446,115 +12546,188 @@ "name" ] }, - "CreateLayoutResponseDto": { + "NotificationTrigger": { "type": "object", "properties": { - "_id": { + "type": { "type": "string", - "description": "The unique identifier for the Layout created." + "enum": [ + "event" + ] + }, + "identifier": { + "type": "string" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTriggerVariable" + } + }, + "subscriberVariables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTriggerVariable" + } } }, "required": [ - "_id" + "type", + "identifier", + "variables" ] }, - "GetLayoutResponseDto": { + "WorkflowResponse": { "type": "object", "properties": { "_id": { "type": "string" }, - "_organizationId": { + "name": { "type": "string" }, - "_environmentId": { + "description": { "type": "string" }, - "_creatorId": { - "type": "string" + "active": { + "type": "boolean" }, - "name": { - "type": "string" + "draft": { + "type": "boolean" }, - "identifier": { - "type": "string" + "preferenceSettings": { + "$ref": "#/components/schemas/PreferenceChannels" }, - "description": { - "type": "string" + "critical": { + "type": "boolean" }, - "channel": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "steps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationStep" + } + }, + "_organizationId": { "type": "string" }, - "content": { + "_creatorId": { "type": "string" }, - "contentType": { + "_environmentId": { "type": "string" }, - "variables": { + "triggers": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/NotificationTrigger" } }, - "isDefault": { - "type": "boolean" + "_notificationGroupId": { + "type": "string" + }, + "_parentId": { + "type": "string" }, - "isDeleted": { + "deleted": { "type": "boolean" }, - "createdAt": { + "deletedAt": { "type": "string" }, - "updatedAt": { + "deletedBy": { "type": "string" }, - "_parentId": { - "type": "string" + "notificationGroup": { + "$ref": "#/components/schemas/NotificationGroup" + }, + "data": { + "type": "object" + }, + "workflowIntegrationStatus": { + "type": "object" } }, "required": [ + "name", + "description", + "active", + "draft", + "preferenceSettings", + "critical", + "tags", + "steps", "_organizationId", - "_environmentId", "_creatorId", - "name", - "identifier", - "channel", - "content", - "contentType", - "isDefault", - "isDeleted" + "_environmentId", + "triggers", + "_notificationGroupId", + "deleted", + "deletedAt", + "deletedBy" ] }, - "UpdateLayoutResponseDto": { + "MessageResponseDto": { "type": "object", "properties": { "_id": { "type": "string" }, + "_templateId": { + "type": "string" + }, + "_environmentId": { + "type": "string" + }, + "_messageTemplateId": { + "type": "string" + }, "_organizationId": { "type": "string" }, - "_environmentId": { + "_notificationId": { "type": "string" }, - "_creatorId": { + "_subscriberId": { "type": "string" }, - "name": { + "subscriber": { + "$ref": "#/components/schemas/SubscriberResponseDto" + }, + "template": { + "$ref": "#/components/schemas/WorkflowResponse" + }, + "templateIdentifier": { "type": "string" }, - "identifier": { + "createdAt": { "type": "string" }, - "description": { + "lastSeenDate": { + "type": "string" + }, + "lastReadDate": { + "type": "string" + }, + "content": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailBlock" + }, + { + "type": "string" + } + ] + }, + "transactionId": { + "type": "string" + }, + "subject": { "type": "string" }, "channel": { @@ -9567,77 +12740,102 @@ ], "type": "string" }, - "content": { + "read": { + "type": "boolean" + }, + "seen": { + "type": "boolean" + }, + "email": { + "type": "string" + }, + "phone": { "type": "string" }, - "contentType": { + "directWebhookUrl": { "type": "string" }, - "variables": { + "providerId": { + "type": "string" + }, + "deviceTokens": { "type": "array", "items": { "type": "string" } }, - "isDefault": { - "type": "boolean" + "title": { + "type": "string" }, - "isDeleted": { - "type": "boolean" + "cta": { + "$ref": "#/components/schemas/MessageCTA" }, - "createdAt": { - "type": "string" + "_feedId": { + "type": "object", + "nullable": true }, - "updatedAt": { + "status": { + "type": "string", + "enum": [ + "sent", + "error", + "warning" + ] + }, + "errorId": { "type": "string" }, - "_parentId": { + "errorText": { "type": "string" + }, + "payload": { + "type": "object", + "description": "The payload that was used to send the notification trigger" + }, + "overrides": { + "type": "object", + "description": "Provider specific overrides used when triggering the notification" } }, "required": [ - "_organizationId", + "_templateId", "_environmentId", - "_creatorId", - "name", - "identifier", - "channel", + "_messageTemplateId", + "_organizationId", + "_notificationId", + "_subscriberId", + "createdAt", "content", - "contentType", - "isDefault", - "isDeleted" + "transactionId", + "channel", + "read", + "seen", + "cta", + "status", + "errorId", + "errorText", + "payload", + "overrides" ] }, - "UpdateLayoutRequestDto": { + "MarkMessageActionAsSeenDto": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "User defined custom name and provided by the user that will name the Layout updated." - }, - "identifier": { - "type": "string", - "description": "User defined custom key that will be a unique identifier for the Layout updated." - }, - "description": { - "type": "string", - "description": "User defined description of the layout" - }, - "content": { + "status": { + "enum": [ + "pending", + "done" + ], "type": "string", - "description": "User defined content for the layout." + "description": "Message action status" }, - "variables": { + "payload": { "type": "object", - "description": "User defined variables to render in the layout placeholders." - }, - "isDefault": { - "type": "boolean", - "description": "Variable that defines if the layout is chosen as default when creating a layout." + "description": "Message action payload" } }, "required": [ - "identifier" + "status" ] }, "DeleteMessageResponseDto": { @@ -9891,136 +13089,9 @@ "name" ] }, - "GetTenantResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - }, - "_environmentId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "_id", - "identifier", - "_environmentId", - "createdAt", - "updatedAt" - ] - }, - "CreateTenantResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - }, - "_environmentId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "_id", - "identifier", - "_environmentId", - "createdAt", - "updatedAt" - ] - }, - "CreateTenantRequestDto": { - "type": "object", - "properties": { - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - } - }, - "required": [ - "identifier", - "name" - ] - }, - "UpdateTenantResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - }, - "_environmentId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "_id", - "identifier", - "_environmentId", - "createdAt", - "updatedAt" - ] - }, - "UpdateTenantRequestDto": { + "GeneratePreviewResponseDto": { "type": "object", - "properties": { - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - } - } + "properties": {} } }, "headers": { diff --git a/src/funcs/cancel.ts b/src/funcs/cancel.ts index af85b536..9544995c 100644 --- a/src/funcs/cancel.ts +++ b/src/funcs/cancel.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -31,7 +37,11 @@ import { Result } from "../types/fp.js"; * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... */ export async function cancel( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes transactionId: string, options?: RequestOptions, ): Promise< @@ -46,6 +56,7 @@ export async function cancel( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.EventsControllerCancelRequest = { transactionId: transactionId, }; @@ -64,11 +75,32 @@ export async function cancel( const pathParams$ = { transactionId: encodeSimple$("transactionId", payload$.transactionId, { +======= + const input: operations.EventsControllerCancelRequest = { + transactionId: transactionId, + }; + + const parsed = safeParse( + input, + (value) => + operations.EventsControllerCancelRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + transactionId: encodeSimple("transactionId", payload.transactionId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams$); const headers$ = new Headers({ @@ -102,6 +134,27 @@ export async function cancel( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_cancel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -111,15 +164,45 @@ export async function cancel( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.DataBooleanDto, | SDKError | SDKValidationError @@ -129,6 +212,7 @@ export async function cancel( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.DataBooleanDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -137,4 +221,14 @@ export async function cancel( } return result$; +======= + M.json(200, components.DataBooleanDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/environmentsApiKeysList.ts b/src/funcs/environmentsApiKeysList.ts index 2f87658d..a3a124fc 100644 --- a/src/funcs/environmentsApiKeysList.ts +++ b/src/funcs/environmentsApiKeysList.ts @@ -4,7 +4,11 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import * as m$ from "../lib/matchers.js"; +======= +import * as M from "../lib/matchers.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -24,7 +28,11 @@ import { Result } from "../types/fp.js"; * Get api keys */ export async function environmentsApiKeysList( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -38,6 +46,7 @@ export async function environmentsApiKeysList( | ConnectionError > > { +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/environments/api-keys")(); const headers$ = new Headers({ @@ -70,6 +79,27 @@ export async function environmentsApiKeysList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/environments/api-keys")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EnvironmentsControllerV1_listOrganizationApiKeys", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -79,15 +109,44 @@ export async function environmentsApiKeysList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes Array, | SDKError | SDKValidationError @@ -97,6 +156,7 @@ export async function environmentsApiKeysList( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, z.array(components.ApiKey$inboundSchema)), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -105,4 +165,14 @@ export async function environmentsApiKeysList( } return result$; +======= + M.json(200, z.array(components.ApiKey$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/environmentsGetAll.ts b/src/funcs/environmentsGetAll.ts new file mode 100644 index 00000000..db0b4872 --- /dev/null +++ b/src/funcs/environmentsGetAll.ts @@ -0,0 +1,115 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { Result } from "../types/fp.js"; + +/** + * Get environments + */ +export async function environmentsGetAll( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/environments")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EnvironmentsControllerV1_listMyEnvironments", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, z.array(components.EnvironmentResponseDto$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/environmentsGetCurrent.ts b/src/funcs/environmentsGetCurrent.ts new file mode 100644 index 00000000..5ebcf748 --- /dev/null +++ b/src/funcs/environmentsGetCurrent.ts @@ -0,0 +1,114 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { Result } from "../types/fp.js"; + +/** + * Get current environment + */ +export async function environmentsGetCurrent( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + components.EnvironmentResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/environments/me")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EnvironmentsControllerV1_getCurrentEnvironment", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.EnvironmentResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.EnvironmentResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/executionDetailsGet.ts b/src/funcs/executionDetailsGet.ts new file mode 100644 index 00000000..b97ccd7b --- /dev/null +++ b/src/funcs/executionDetailsGet.ts @@ -0,0 +1,149 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get execution details + */ +export async function executionDetailsGet( + client: NovuCore, + notificationId: string, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = + { + notificationId: notificationId, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/execution-details")(); + + const query = encodeFormQuery({ + "notificationId": payload.notificationId, + "subscriberId": payload.subscriberId, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: + "ExecutionDetailsController_getExecutionDetailsForNotification", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, z.array(components.ExecutionDetailsResponseDto$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsCreate.ts b/src/funcs/integrationsCreate.ts index 711603b9..f612c1ea 100644 --- a/src/funcs/integrationsCreate.ts +++ b/src/funcs/integrationsCreate.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -28,7 +34,11 @@ import { Result } from "../types/fp.js"; * Create an integration for the current environment the user is based on the API key provided */ export async function integrationsCreate( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: components.CreateIntegrationRequestDto, options?: RequestOptions, ): Promise< @@ -43,6 +53,7 @@ export async function integrationsCreate( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -60,10 +71,28 @@ export async function integrationsCreate( const path$ = pathToFunc("/v1/integrations")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => + components.CreateIntegrationRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/integrations")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -91,6 +120,21 @@ export async function integrationsCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_createIntegration", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -100,15 +144,45 @@ export async function integrationsCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.IntegrationResponseDto, | SDKError | SDKValidationError @@ -118,6 +192,7 @@ export async function integrationsCreate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, components.IntegrationResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -126,4 +201,14 @@ export async function integrationsCreate( } return result$; +======= + M.json(201, components.IntegrationResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/integrationsDelete.ts b/src/funcs/integrationsDelete.ts index db593277..dd4c57dc 100644 --- a/src/funcs/integrationsDelete.ts +++ b/src/funcs/integrationsDelete.ts @@ -4,9 +4,15 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -27,7 +33,11 @@ import { Result } from "../types/fp.js"; * Delete integration */ export async function integrationsDelete( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes integrationId: string, options?: RequestOptions, ): Promise< @@ -42,6 +52,7 @@ export async function integrationsDelete( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.IntegrationsControllerRemoveIntegrationRequest = { integrationId: integrationId, }; @@ -61,11 +72,33 @@ export async function integrationsDelete( const pathParams$ = { integrationId: encodeSimple$("integrationId", payload$.integrationId, { +======= + const input: operations.IntegrationsControllerRemoveIntegrationRequest = { + integrationId: integrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations.IntegrationsControllerRemoveIntegrationRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + integrationId: encodeSimple("integrationId", payload.integrationId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/integrations/{integrationId}")(pathParams$); const headers$ = new Headers({ @@ -99,6 +132,27 @@ export async function integrationsDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_removeIntegration", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -108,15 +162,45 @@ export async function integrationsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes Array, | SDKError | SDKValidationError @@ -126,6 +210,7 @@ export async function integrationsDelete( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -134,4 +219,14 @@ export async function integrationsDelete( } return result$; +======= + M.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/integrationsList.ts b/src/funcs/integrationsList.ts index c18bef66..d87501cb 100644 --- a/src/funcs/integrationsList.ts +++ b/src/funcs/integrationsList.ts @@ -4,7 +4,11 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import * as m$ from "../lib/matchers.js"; +======= +import * as M from "../lib/matchers.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -27,7 +31,11 @@ import { Result } from "../types/fp.js"; * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change */ export async function integrationsList( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -41,6 +49,7 @@ export async function integrationsList( | ConnectionError > > { +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/integrations")(); const headers$ = new Headers({ @@ -73,6 +82,27 @@ export async function integrationsList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/integrations")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_listIntegrations", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -82,15 +112,44 @@ export async function integrationsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes Array, | SDKError | SDKValidationError @@ -100,6 +159,7 @@ export async function integrationsList( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -108,4 +168,14 @@ export async function integrationsList( } return result$; +======= + M.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/integrationsListActive.ts b/src/funcs/integrationsListActive.ts index 0321683b..598e1a11 100644 --- a/src/funcs/integrationsListActive.ts +++ b/src/funcs/integrationsListActive.ts @@ -4,7 +4,11 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import * as m$ from "../lib/matchers.js"; +======= +import * as M from "../lib/matchers.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -27,7 +31,11 @@ import { Result } from "../types/fp.js"; * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change */ export async function integrationsListActive( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -41,6 +49,7 @@ export async function integrationsListActive( | ConnectionError > > { +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/integrations/active")(); const headers$ = new Headers({ @@ -73,6 +82,27 @@ export async function integrationsListActive( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/integrations/active")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_getActiveIntegrations", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -82,15 +112,44 @@ export async function integrationsListActive( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes Array, | SDKError | SDKValidationError @@ -100,6 +159,7 @@ export async function integrationsListActive( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -108,4 +168,14 @@ export async function integrationsListActive( } return result$; +======= + M.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/integrationsSetPrimary.ts b/src/funcs/integrationsSetPrimary.ts new file mode 100644 index 00000000..16e2eb7c --- /dev/null +++ b/src/funcs/integrationsSetPrimary.ts @@ -0,0 +1,147 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Set integration as primary + */ +export async function integrationsSetPrimary( + client: NovuCore, + integrationId: string, + options?: RequestOptions, +): Promise< + Result< + components.IntegrationResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.IntegrationsControllerSetIntegrationAsPrimaryRequest = + { + integrationId: integrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + integrationId: encodeSimple("integrationId", payload.integrationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/integrations/{integrationId}/set-primary")( + pathParams, + ); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_setIntegrationAsPrimary", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.IntegrationResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.IntegrationResponseDto$inboundSchema), + M.fail([404, 409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsUpdate.ts b/src/funcs/integrationsUpdate.ts index 6fa7dfd3..da01091f 100644 --- a/src/funcs/integrationsUpdate.ts +++ b/src/funcs/integrationsUpdate.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,9 +35,15 @@ import { Result } from "../types/fp.js"; * Update integration */ export async function integrationsUpdate( +<<<<<<< Updated upstream client$: NovuCore, integrationId: string, updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, +======= + client: NovuCore, + updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, + integrationId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -45,6 +57,7 @@ export async function integrationsUpdate( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.IntegrationsControllerUpdateIntegrationByIdRequest = { integrationId: integrationId, @@ -69,18 +82,50 @@ export async function integrationsUpdate( const pathParams$ = { integrationId: encodeSimple$("integrationId", payload$.integrationId, { +======= + const input: operations.IntegrationsControllerUpdateIntegrationByIdRequest = { + updateIntegrationRequestDto: updateIntegrationRequestDto, + integrationId: integrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateIntegrationRequestDto, { + explode: true, + }); + + const pathParams = { + integrationId: encodeSimple("integrationId", payload.integrationId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/integrations/{integrationId}")(pathParams$); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -108,6 +153,21 @@ export async function integrationsUpdate( errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_updateIntegrationById", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -117,15 +177,45 @@ export async function integrationsUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.IntegrationResponseDto, | SDKError | SDKValidationError @@ -135,6 +225,7 @@ export async function integrationsUpdate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.IntegrationResponseDto$inboundSchema), m$.fail([404, 409, 429, "4XX", 503, "5XX"]), )(response); @@ -143,4 +234,14 @@ export async function integrationsUpdate( } return result$; +======= + M.json(200, components.IntegrationResponseDto$inboundSchema), + M.fail([404, 409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/integrationsWebhooksGetStatus.ts b/src/funcs/integrationsWebhooksGetStatus.ts new file mode 100644 index 00000000..cae59da7 --- /dev/null +++ b/src/funcs/integrationsWebhooksGetStatus.ts @@ -0,0 +1,151 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get webhook support status for provider + * + * @remarks + * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + */ +export async function integrationsWebhooksGetStatus( + client: NovuCore, + providerOrIntegrationId: string, + options?: RequestOptions, +): Promise< + Result< + boolean, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.IntegrationsControllerGetWebhookSupportStatusRequest = + { + providerOrIntegrationId: providerOrIntegrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerOrIntegrationId: encodeSimple( + "providerOrIntegrationId", + payload.providerOrIntegrationId, + { explode: false, charEncoding: "percent" }, + ), + }; + + const path = pathToFunc( + "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status", + )(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_getWebhookSupportStatus", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + boolean, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, z.boolean()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/messagesDelete.ts b/src/funcs/messagesDelete.ts index 19734bf8..90b949a7 100644 --- a/src/funcs/messagesDelete.ts +++ b/src/funcs/messagesDelete.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,7 +35,11 @@ import { Result } from "../types/fp.js"; * Deletes a message entity from the Novu platform */ export async function messagesDelete( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes messageId: string, options?: RequestOptions, ): Promise< @@ -44,6 +54,7 @@ export async function messagesDelete( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.MessagesControllerDeleteMessageRequest = { messageId: messageId, }; @@ -64,11 +75,34 @@ export async function messagesDelete( const pathParams$ = { messageId: encodeSimple$("messageId", payload$.messageId, { +======= + const input: operations.MessagesControllerDeleteMessageRequest = { + messageId: messageId, + }; + + const parsed = safeParse( + input, + (value) => + operations.MessagesControllerDeleteMessageRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + messageId: encodeSimple("messageId", payload.messageId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/messages/{messageId}")(pathParams$); const headers$ = new Headers({ @@ -102,6 +136,27 @@ export async function messagesDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/messages/{messageId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "MessagesController_deleteMessage", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -111,15 +166,45 @@ export async function messagesDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.DeleteMessageResponseDto, | SDKError | SDKValidationError @@ -129,6 +214,7 @@ export async function messagesDelete( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.DeleteMessageResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -137,4 +223,14 @@ export async function messagesDelete( } return result$; +======= + M.json(200, components.DeleteMessageResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/messagesDeleteByTransactionId.ts b/src/funcs/messagesDeleteByTransactionId.ts index 3fdbb2f7..aa531641 100644 --- a/src/funcs/messagesDeleteByTransactionId.ts +++ b/src/funcs/messagesDeleteByTransactionId.ts @@ -4,12 +4,18 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeFormQuery as encodeFormQuery$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -32,7 +38,11 @@ import { Result } from "../types/fp.js"; * Deletes messages entity from the Novu platform using TransactionId of message */ export async function messagesDeleteByTransactionId( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes transactionId: string, channel?: operations.Channel | undefined, options?: RequestOptions, @@ -48,6 +58,7 @@ export async function messagesDeleteByTransactionId( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.MessagesControllerDeleteMessagesByTransactionIdRequest = { channel: channel, @@ -70,11 +81,36 @@ export async function messagesDeleteByTransactionId( const pathParams$ = { transactionId: encodeSimple$("transactionId", payload$.transactionId, { +======= + const input: + operations.MessagesControllerDeleteMessagesByTransactionIdRequest = { + transactionId: transactionId, + channel: channel, + }; + + const parsed = safeParse( + input, + (value) => + operations + .MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + transactionId: encodeSimple("transactionId", payload.transactionId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/messages/transaction/{transactionId}")( pathParams$, ); @@ -115,6 +151,33 @@ export async function messagesDeleteByTransactionId( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/messages/transaction/{transactionId}")( + pathParams, + ); + + const query = encodeFormQuery({ + "channel": payload.channel, + }); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "MessagesController_deleteMessagesByTransactionId", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -124,15 +187,46 @@ export async function messagesDeleteByTransactionId( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes void, | SDKError | SDKValidationError @@ -142,6 +236,7 @@ export async function messagesDeleteByTransactionId( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.nil(204, z.void()), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -150,4 +245,14 @@ export async function messagesDeleteByTransactionId( } return result$; +======= + M.nil(204, z.void()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/messagesGet.ts b/src/funcs/messagesGet.ts new file mode 100644 index 00000000..ade7b42d --- /dev/null +++ b/src/funcs/messagesGet.ts @@ -0,0 +1,145 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get messages + * + * @remarks + * Returns a list of messages, could paginate using the `page` query parameter + */ +export async function messagesGet( + client: NovuCore, + request: operations.MessagesControllerGetMessagesRequest, + options?: RequestOptions, +): Promise< + Result< + components.ActivitiesResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.MessagesControllerGetMessagesRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/messages")(); + + const query = encodeFormQuery({ + "channel": payload.channel, + "limit": payload.limit, + "page": payload.page, + "subscriberId": payload.subscriberId, + "transactionId": payload.transactionId, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "MessagesController_getMessages", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.ActivitiesResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.ActivitiesResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/notificationsGet.ts b/src/funcs/notificationsGet.ts new file mode 100644 index 00000000..6beeaffe --- /dev/null +++ b/src/funcs/notificationsGet.ts @@ -0,0 +1,143 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get notification + */ +export async function notificationsGet( + client: NovuCore, + notificationId: string, + options?: RequestOptions, +): Promise< + Result< + components.ActivityNotificationResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.NotificationsControllerGetNotificationRequest = { + notificationId: notificationId, + }; + + const parsed = safeParse( + input, + (value) => + operations.NotificationsControllerGetNotificationRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + notificationId: encodeSimple("notificationId", payload.notificationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/notifications/{notificationId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationsController_getNotification", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.ActivityNotificationResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.ActivityNotificationResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/notificationsList.ts b/src/funcs/notificationsList.ts index 0c0a75ec..ed073c89 100644 --- a/src/funcs/notificationsList.ts +++ b/src/funcs/notificationsList.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -26,7 +32,11 @@ import { Result } from "../types/fp.js"; * Get notifications */ export async function notificationsList( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: operations.NotificationsControllerListNotificationsRequest, options?: RequestOptions, ): Promise< @@ -41,6 +51,7 @@ export async function notificationsList( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -100,6 +111,50 @@ export async function notificationsList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const parsed = safeParse( + request, + (value) => + operations.NotificationsControllerListNotificationsRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/notifications")(); + + const query = encodeFormQuery({ + "channels": payload.channels, + "emails": payload.emails, + "page": payload.page, + "search": payload.search, + "subscriberIds": payload.subscriberIds, + "templates": payload.templates, + "transactionId": payload.transactionId, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationsController_listNotifications", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -109,15 +164,46 @@ export async function notificationsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.ActivitiesResponseDto, | SDKError | SDKValidationError @@ -127,6 +213,7 @@ export async function notificationsList( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.ActivitiesResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -135,4 +222,14 @@ export async function notificationsList( } return result$; +======= + M.json(200, components.ActivitiesResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/notificationsStatsGet.ts b/src/funcs/notificationsStatsGet.ts new file mode 100644 index 00000000..e7420b09 --- /dev/null +++ b/src/funcs/notificationsStatsGet.ts @@ -0,0 +1,114 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { Result } from "../types/fp.js"; + +/** + * Get notification statistics + */ +export async function notificationsStatsGet( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + components.ActivityStatsResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/notifications/stats")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationsController_getActivityStats", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.ActivityStatsResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.ActivityStatsResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersAuthenticationHandleOauth.ts b/src/funcs/subscribersAuthenticationHandleOauth.ts new file mode 100644 index 00000000..c0ee844a --- /dev/null +++ b/src/funcs/subscribersAuthenticationHandleOauth.ts @@ -0,0 +1,152 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Handle chat oauth + */ +export async function subscribersAuthenticationHandleOauth( + client: NovuCore, + request: operations.SubscribersControllerChatAccessOauthRequest, + options?: RequestOptions, +): Promise< + Result< + void, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerChatAccessOauthRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth", + )(pathParams); + + const query = encodeFormQuery({ + "environmentId": payload.environmentId, + "hmacHash": payload.hmacHash, + "integrationIdentifier": payload.integrationIdentifier, + }); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_chatAccessOauth", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + void, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil(200, z.void()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersAuthenticationHandleOauthCallback.ts b/src/funcs/subscribersAuthenticationHandleOauthCallback.ts new file mode 100644 index 00000000..75cb845e --- /dev/null +++ b/src/funcs/subscribersAuthenticationHandleOauthCallback.ts @@ -0,0 +1,156 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Handle providers oauth redirect + */ +export async function subscribersAuthenticationHandleOauthCallback( + client: NovuCore, + request: operations.SubscribersControllerChatOauthCallbackRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerChatOauthCallbackResponseBody, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerChatOauthCallbackRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback", + )(pathParams); + + const query = encodeFormQuery({ + "code": payload.code, + "environmentId": payload.environmentId, + "hmacHash": payload.hmacHash, + "integrationIdentifier": payload.integrationIdentifier, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_chatOauthCallback", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + operations.SubscribersControllerChatOauthCallbackResponseBody, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerChatOauthCallbackResponseBody$inboundSchema, + ), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersCreate.ts b/src/funcs/subscribersCreate.ts index 368b7590..2464adc5 100644 --- a/src/funcs/subscribersCreate.ts +++ b/src/funcs/subscribersCreate.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -28,7 +34,11 @@ import { Result } from "../types/fp.js"; * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. */ export async function subscribersCreate( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: components.CreateSubscriberRequestDto, options?: RequestOptions, ): Promise< @@ -43,6 +53,7 @@ export async function subscribersCreate( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -60,10 +71,28 @@ export async function subscribersCreate( const path$ = pathToFunc("/v1/subscribers")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => + components.CreateSubscriberRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/subscribers")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -91,6 +120,21 @@ export async function subscribersCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_createSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -100,15 +144,45 @@ export async function subscribersCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.SubscriberResponseDto, | SDKError | SDKValidationError @@ -118,6 +192,7 @@ export async function subscribersCreate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, components.SubscriberResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -126,4 +201,14 @@ export async function subscribersCreate( } return result$; +======= + M.json(201, components.SubscriberResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCreateBulk.ts b/src/funcs/subscribersCreateBulk.ts index 4353e37c..62a228d0 100644 --- a/src/funcs/subscribersCreateBulk.ts +++ b/src/funcs/subscribersCreateBulk.ts @@ -4,9 +4,15 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -31,7 +37,11 @@ import { Result } from "../types/fp.js"; * The bulk API is limited to 500 subscribers per request. */ export async function subscribersCreateBulk( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: components.BulkSubscriberCreateDto, options?: RequestOptions, ): Promise< @@ -46,6 +56,7 @@ export async function subscribersCreateBulk( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -62,10 +73,27 @@ export async function subscribersCreateBulk( const path$ = pathToFunc("/v1/subscribers/bulk")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => components.BulkSubscriberCreateDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/subscribers/bulk")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "*/*", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -93,6 +121,21 @@ export async function subscribersCreateBulk( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_bulkCreateSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -102,15 +145,45 @@ export async function subscribersCreateBulk( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes void, | SDKError | SDKValidationError @@ -120,6 +193,7 @@ export async function subscribersCreateBulk( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.nil(201, z.void()), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -128,4 +202,14 @@ export async function subscribersCreateBulk( } return result$; +======= + M.nil(201, z.void()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCredentialsAppend.ts b/src/funcs/subscribersCredentialsAppend.ts index a07dd359..f0757266 100644 --- a/src/funcs/subscribersCredentialsAppend.ts +++ b/src/funcs/subscribersCredentialsAppend.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -30,6 +36,7 @@ import { Result } from "../types/fp.js"; * * @remarks * Subscriber credentials associated to the delivery methods such as slack and push tokens. +<<<<<<< Updated upstream * This endpoint appends provided credentials and deviceTokens to the existing ones. */ export async function subscribersCredentialsAppend( @@ -37,6 +44,16 @@ export async function subscribersCredentialsAppend( subscriberId: string, updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, +======= + * + * This endpoint appends provided credentials and deviceTokens to the existing ones. + */ +export async function subscribersCredentialsAppend( + client: NovuCore, + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -50,6 +67,7 @@ export async function subscribersCredentialsAppend( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.SubscribersControllerModifySubscriberChannelRequest = { subscriberId: subscriberId, @@ -76,20 +94,55 @@ export async function subscribersCredentialsAppend( const pathParams$ = { subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const input: operations.SubscribersControllerModifySubscriberChannelRequest = + { + updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerModifySubscriberChannelRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateSubscriberChannelRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( pathParams$, ); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( + pathParams, + ); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -117,6 +170,21 @@ export async function subscribersCredentialsAppend( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_modifySubscriberChannel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -126,15 +194,45 @@ export async function subscribersCredentialsAppend( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.SubscriberResponseDto, | SDKError | SDKValidationError @@ -144,6 +242,7 @@ export async function subscribersCredentialsAppend( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.SubscriberResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -152,4 +251,14 @@ export async function subscribersCredentialsAppend( } return result$; +======= + M.json(200, components.SubscriberResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCredentialsDelete.ts b/src/funcs/subscribersCredentialsDelete.ts index 00df9a48..83a02725 100644 --- a/src/funcs/subscribersCredentialsDelete.ts +++ b/src/funcs/subscribersCredentialsDelete.ts @@ -4,9 +4,15 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,7 +35,11 @@ import { Result } from "../types/fp.js"; * Delete subscriber credentials such as slack and expo tokens. */ export async function subscribersCredentialsDelete( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes subscriberId: string, providerId: string, options?: RequestOptions, @@ -45,12 +55,17 @@ export async function subscribersCredentialsDelete( | ConnectionError > > { +<<<<<<< Updated upstream const input$: +======= + const input: +>>>>>>> Stashed changes operations.SubscribersControllerDeleteSubscriberCredentialsRequest = { subscriberId: subscriberId, providerId: providerId, }; +<<<<<<< Updated upstream const parsed$ = schemas$.safeParse( input$, (value$) => @@ -71,11 +86,34 @@ export async function subscribersCredentialsDelete( charEncoding: "percent", }), subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc( "/v1/subscribers/{subscriberId}/credentials/{providerId}", )(pathParams$); @@ -111,6 +149,29 @@ export async function subscribersCredentialsDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/credentials/{providerId}", + )(pathParams); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_deleteSubscriberCredentials", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -120,15 +181,45 @@ export async function subscribersCredentialsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes void, | SDKError | SDKValidationError @@ -138,6 +229,7 @@ export async function subscribersCredentialsDelete( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.nil(204, z.void()), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -146,4 +238,14 @@ export async function subscribersCredentialsDelete( } return result$; +======= + M.nil(204, z.void()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCredentialsUpdate.ts b/src/funcs/subscribersCredentialsUpdate.ts index 11a0b5f1..cf2eae4a 100644 --- a/src/funcs/subscribersCredentialsUpdate.ts +++ b/src/funcs/subscribersCredentialsUpdate.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -32,10 +38,17 @@ import { Result } from "../types/fp.js"; * Subscriber credentials associated to the delivery methods such as slack and push tokens. */ export async function subscribersCredentialsUpdate( +<<<<<<< Updated upstream client$: NovuCore, subscriberId: string, updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, +======= + client: NovuCore, + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -49,6 +62,7 @@ export async function subscribersCredentialsUpdate( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.SubscribersControllerUpdateSubscriberChannelRequest = { subscriberId: subscriberId, @@ -75,20 +89,55 @@ export async function subscribersCredentialsUpdate( const pathParams$ = { subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const input: operations.SubscribersControllerUpdateSubscriberChannelRequest = + { + updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateSubscriberChannelRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( pathParams$, ); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( + pathParams, + ); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -116,6 +165,21 @@ export async function subscribersCredentialsUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberChannel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -125,15 +189,45 @@ export async function subscribersCredentialsUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.SubscriberResponseDto, | SDKError | SDKValidationError @@ -143,6 +237,7 @@ export async function subscribersCredentialsUpdate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.SubscriberResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -151,4 +246,14 @@ export async function subscribersCredentialsUpdate( } return result$; +======= + M.json(200, components.SubscriberResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersDelete.ts b/src/funcs/subscribersDelete.ts index 938540d6..d0843f42 100644 --- a/src/funcs/subscribersDelete.ts +++ b/src/funcs/subscribersDelete.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,7 +35,11 @@ import { Result } from "../types/fp.js"; * Deletes a subscriber entity from the Novu platform */ export async function subscribersDelete( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes subscriberId: string, options?: RequestOptions, ): Promise< @@ -44,6 +54,7 @@ export async function subscribersDelete( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.SubscribersControllerRemoveSubscriberRequest = { subscriberId: subscriberId, }; @@ -63,11 +74,33 @@ export async function subscribersDelete( const pathParams$ = { subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const input: operations.SubscribersControllerRemoveSubscriberRequest = { + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerRemoveSubscriberRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams$); const headers$ = new Headers({ @@ -101,6 +134,27 @@ export async function subscribersDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_removeSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -110,15 +164,45 @@ export async function subscribersDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.DeleteSubscriberResponseDto, | SDKError | SDKValidationError @@ -128,6 +212,7 @@ export async function subscribersDelete( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.DeleteSubscriberResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -136,4 +221,14 @@ export async function subscribersDelete( } return result$; +======= + M.json(200, components.DeleteSubscriberResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersGet.ts b/src/funcs/subscribersGet.ts new file mode 100644 index 00000000..51633b00 --- /dev/null +++ b/src/funcs/subscribersGet.ts @@ -0,0 +1,154 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get subscriber + * + * @remarks + * Get subscriber by your internal id used to identify the subscriber + */ +export async function subscribersGet( + client: NovuCore, + subscriberId: string, + includeTopics?: string | undefined, + options?: RequestOptions, +): Promise< + Result< + components.SubscriberResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerGetSubscriberRequest = { + subscriberId: subscriberId, + includeTopics: includeTopics, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerGetSubscriberRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); + + const query = encodeFormQuery({ + "includeTopics": payload.includeTopics, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.SubscriberResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.SubscriberResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersGetAll.ts b/src/funcs/subscribersGetAll.ts new file mode 100644 index 00000000..c42ae4b8 --- /dev/null +++ b/src/funcs/subscribersGetAll.ts @@ -0,0 +1,202 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { dlv } from "../lib/dlv.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; +import { + createPageIterator, + haltIterator, + PageIterator, + Paginator, +} from "../types/operations.js"; + +/** + * Get subscribers + * + * @remarks + * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + */ +export async function subscribersGetAll( + client: NovuCore, + page?: number | undefined, + limit?: number | undefined, + options?: RequestOptions, +): Promise< + PageIterator< + Result< + operations.SubscribersControllerListSubscribersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > + > +> { + const input: operations.SubscribersControllerListSubscribersRequest = { + page: page, + limit: limit, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerListSubscribersRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return haltIterator(parsed); + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/subscribers")(); + + const query = encodeFormQuery({ + "limit": payload.limit, + "page": payload.page, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_listSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return haltIterator(requestRes); + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return haltIterator(doResult); + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result, raw] = await M.match< + operations.SubscribersControllerListSubscribersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.SubscribersControllerListSubscribersResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return haltIterator(result); + } + + const nextFunc = ( + responseData: unknown, + ): Paginator< + Result< + operations.SubscribersControllerListSubscribersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > + > => { + const page = input?.page || 0; + const nextPage = page + 1; + + if (!responseData) { + return () => null; + } + const results = dlv(responseData, "data.resultArray"); + if (!Array.isArray(results) || !results.length) { + return () => null; + } + const limit = input?.limit || 0; + if (results.length < limit) { + return () => null; + } + + return () => + subscribersGetAll( + client, + nextPage, + limit, + options, + ); + }; + + const page$ = { ...result, next: nextFunc(raw) }; + return { ...page$, ...createPageIterator(page$, (v) => !v.ok) }; +} diff --git a/src/funcs/subscribersMessagesMark.ts b/src/funcs/subscribersMessagesMark.ts new file mode 100644 index 00000000..bcb3c3e2 --- /dev/null +++ b/src/funcs/subscribersMessagesMark.ts @@ -0,0 +1,151 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Mark a subscriber messages as seen, read, unseen or unread + */ +export async function subscribersMessagesMark( + client: NovuCore, + messageMarkAsRequestDto: components.MessageMarkAsRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerMarkMessagesAsRequest = { + messageMarkAsRequestDto: messageMarkAsRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerMarkMessagesAsRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.MessageMarkAsRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-as")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_markMessagesAs", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(201, z.array(components.MessageEntity$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersMessagesMarkAll.ts b/src/funcs/subscribersMessagesMarkAll.ts index fc83af32..d8460c27 100644 --- a/src/funcs/subscribersMessagesMarkAll.ts +++ b/src/funcs/subscribersMessagesMarkAll.ts @@ -4,12 +4,18 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -30,9 +36,15 @@ import { Result } from "../types/fp.js"; * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. */ export async function subscribersMessagesMarkAll( +<<<<<<< Updated upstream client$: NovuCore, subscriberId: string, markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, +======= + client: NovuCore, + markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -46,6 +58,7 @@ export async function subscribersMessagesMarkAll( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.SubscribersControllerMarkAllUnreadAsReadRequest = { subscriberId: subscriberId, markAllMessageAsRequestDto: markAllMessageAsRequestDto, @@ -68,20 +81,53 @@ export async function subscribersMessagesMarkAll( const pathParams$ = { subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const input: operations.SubscribersControllerMarkAllUnreadAsReadRequest = { + markAllMessageAsRequestDto: markAllMessageAsRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.MarkAllMessageAsRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-all")( pathParams$, ); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-all")( + pathParams, + ); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -109,6 +155,21 @@ export async function subscribersMessagesMarkAll( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_markAllUnreadAsRead", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -118,15 +179,45 @@ export async function subscribersMessagesMarkAll( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes number, | SDKError | SDKValidationError @@ -136,6 +227,7 @@ export async function subscribersMessagesMarkAll( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, z.number()), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -144,4 +236,14 @@ export async function subscribersMessagesMarkAll( } return result$; +======= + M.json(201, z.number()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersMessagesUpdateAsSeen.ts b/src/funcs/subscribersMessagesUpdateAsSeen.ts index 2e46bb9f..15bd49eb 100644 --- a/src/funcs/subscribersMessagesUpdateAsSeen.ts +++ b/src/funcs/subscribersMessagesUpdateAsSeen.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,7 +35,11 @@ import { Result } from "../types/fp.js"; * Mark message action as seen */ export async function subscribersMessagesUpdateAsSeen( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: operations.SubscribersControllerMarkActionAsSeenRequest, options?: RequestOptions, ): Promise< @@ -44,6 +54,7 @@ export async function subscribersMessagesUpdateAsSeen( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -71,20 +82,56 @@ export async function subscribersMessagesUpdateAsSeen( charEncoding: "percent", }), type: encodeSimple$("type", payload$.type, { +======= + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerMarkActionAsSeenRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.MarkMessageActionAsSeenDto, { + explode: true, + }); + + const pathParams = { + messageId: encodeSimple("messageId", payload.messageId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + type: encodeSimple("type", payload.type, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc( "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}", )(pathParams$); const headers$ = new Headers({ +======= + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}", + )(pathParams); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -112,6 +159,21 @@ export async function subscribersMessagesUpdateAsSeen( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_markActionAsSeen", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -121,15 +183,45 @@ export async function subscribersMessagesUpdateAsSeen( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.MessageResponseDto, | SDKError | SDKValidationError @@ -139,6 +231,7 @@ export async function subscribersMessagesUpdateAsSeen( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, components.MessageResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -147,4 +240,14 @@ export async function subscribersMessagesUpdateAsSeen( } return result$; +======= + M.json(201, components.MessageResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersNotificationsGetFeed.ts b/src/funcs/subscribersNotificationsGetFeed.ts new file mode 100644 index 00000000..8fb8e67a --- /dev/null +++ b/src/funcs/subscribersNotificationsGetFeed.ts @@ -0,0 +1,153 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get in-app notification feed for a particular subscriber + */ +export async function subscribersNotificationsGetFeed( + client: NovuCore, + request: operations.SubscribersControllerGetNotificationsFeedRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerGetNotificationsFeedResponseBody, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerGetNotificationsFeedRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/notifications/feed")( + pathParams, + ); + + const query = encodeFormQuery({ + "limit": payload.limit, + "page": payload.page, + "payload": payload.payload, + "read": payload.read, + "seen": payload.seen, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getNotificationsFeed", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + operations.SubscribersControllerGetNotificationsFeedResponseBody, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema, + ), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersNotificationsGetUnseenCount.ts b/src/funcs/subscribersNotificationsGetUnseenCount.ts new file mode 100644 index 00000000..edcb7ed8 --- /dev/null +++ b/src/funcs/subscribersNotificationsGetUnseenCount.ts @@ -0,0 +1,147 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get the unseen in-app notifications count for subscribers feed + */ +export async function subscribersNotificationsGetUnseenCount( + client: NovuCore, + request: operations.SubscribersControllerGetUnseenCountRequest, + options?: RequestOptions, +): Promise< + Result< + components.UnseenCountResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerGetUnseenCountRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/notifications/unseen", + )(pathParams); + + const query = encodeFormQuery({ + "limit": payload.limit, + "seen": payload.seen, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getUnseenCount", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.UnseenCountResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.UnseenCountResponse$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPreferencesGet.ts b/src/funcs/subscribersPreferencesGet.ts new file mode 100644 index 00000000..3fae04a9 --- /dev/null +++ b/src/funcs/subscribersPreferencesGet.ts @@ -0,0 +1,158 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get subscriber preferences + */ +export async function subscribersPreferencesGet( + client: NovuCore, + subscriberId: string, + includeInactiveChannels?: boolean | undefined, + options?: RequestOptions, +): Promise< + Result< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.SubscribersControllerListSubscriberPreferencesRequest = { + subscriberId: subscriberId, + includeInactiveChannels: includeInactiveChannels, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerListSubscriberPreferencesRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( + pathParams, + ); + + const query = encodeFormQuery({ + "includeInactiveChannels": payload.includeInactiveChannels, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_listSubscriberPreferences", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + z.array(components.UpdateSubscriberPreferenceResponseDto$inboundSchema), + ), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPreferencesGetByLevel.ts b/src/funcs/subscribersPreferencesGetByLevel.ts new file mode 100644 index 00000000..d92e03d6 --- /dev/null +++ b/src/funcs/subscribersPreferencesGetByLevel.ts @@ -0,0 +1,156 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get subscriber preferences by level + */ +export async function subscribersPreferencesGetByLevel( + client: NovuCore, + request: + operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, + options?: RequestOptions, +): Promise< + Result< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations + .SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + parameter: encodeSimple("parameter", payload.parameter, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/preferences/{parameter}", + )(pathParams); + + const query = encodeFormQuery({ + "includeInactiveChannels": payload.includeInactiveChannels, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getSubscriberPreferenceByLevel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + Array, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + z.array(components.GetSubscriberPreferencesResponseDto$inboundSchema), + ), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPreferencesUpdate.ts b/src/funcs/subscribersPreferencesUpdate.ts index 451e189a..d37ca664 100644 --- a/src/funcs/subscribersPreferencesUpdate.ts +++ b/src/funcs/subscribersPreferencesUpdate.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,7 +35,11 @@ import { Result } from "../types/fp.js"; * Update subscriber preference */ export async function subscribersPreferencesUpdate( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: operations.SubscribersControllerUpdateSubscriberPreferenceRequest, options?: RequestOptions, ): Promise< @@ -44,6 +54,7 @@ export async function subscribersPreferencesUpdate( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -70,20 +81,55 @@ export async function subscribersPreferencesUpdate( charEncoding: "percent", }), subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const parsed = safeParse( + request, + (value) => + operations + .SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.UpdateSubscriberPreferenceRequestDto, + { explode: true }, + ); + + const pathParams = { + parameter: encodeSimple("parameter", payload.parameter, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc( "/v1/subscribers/{subscriberId}/preferences/{parameter}", )(pathParams$); const headers$ = new Headers({ +======= + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/preferences/{parameter}", + )(pathParams); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -111,6 +157,21 @@ export async function subscribersPreferencesUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberPreference", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -120,15 +181,45 @@ export async function subscribersPreferencesUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.UpdateSubscriberPreferenceResponseDto, | SDKError | SDKValidationError @@ -138,6 +229,7 @@ export async function subscribersPreferencesUpdate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json( 200, components.UpdateSubscriberPreferenceResponseDto$inboundSchema, @@ -149,4 +241,14 @@ export async function subscribersPreferencesUpdate( } return result$; +======= + M.json(200, components.UpdateSubscriberPreferenceResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersPreferencesUpdateGlobal.ts b/src/funcs/subscribersPreferencesUpdateGlobal.ts index c509b03e..bacaa427 100644 --- a/src/funcs/subscribersPreferencesUpdateGlobal.ts +++ b/src/funcs/subscribersPreferencesUpdateGlobal.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,10 +35,17 @@ import { Result } from "../types/fp.js"; * Update subscriber global preferences */ export async function subscribersPreferencesUpdateGlobal( +<<<<<<< Updated upstream client$: NovuCore, subscriberId: string, updateSubscriberGlobalPreferencesRequestDto: components.UpdateSubscriberGlobalPreferencesRequestDto, +======= + client: NovuCore, + updateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -46,6 +59,7 @@ export async function subscribersPreferencesUpdateGlobal( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { subscriberId: subscriberId, @@ -73,20 +87,58 @@ export async function subscribersPreferencesUpdateGlobal( const pathParams$ = { subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const input: + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { + updateSubscriberGlobalPreferencesRequestDto: + updateSubscriberGlobalPreferencesRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.UpdateSubscriberGlobalPreferencesRequestDto, + { explode: true }, + ); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( pathParams$, ); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( + pathParams, + ); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -114,6 +166,21 @@ export async function subscribersPreferencesUpdateGlobal( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberGlobalPreferences", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -123,15 +190,45 @@ export async function subscribersPreferencesUpdateGlobal( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.UpdateSubscriberPreferenceResponseDto, | SDKError | SDKValidationError @@ -141,6 +238,7 @@ export async function subscribersPreferencesUpdateGlobal( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json( 200, components.UpdateSubscriberPreferenceResponseDto$inboundSchema, @@ -152,4 +250,14 @@ export async function subscribersPreferencesUpdateGlobal( } return result$; +======= + M.json(200, components.UpdateSubscriberPreferenceResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts b/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts new file mode 100644 index 00000000..961d5981 --- /dev/null +++ b/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts @@ -0,0 +1,159 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update subscriber online status + * + * @remarks + * Used to update the subscriber isOnline flag. + */ +export async function subscribersPropertiesUpdateOnlineStatus( + client: NovuCore, + updateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + components.SubscriberResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.SubscribersControllerUpdateSubscriberOnlineFlagRequest = { + updateSubscriberOnlineFlagRequestDto: + updateSubscriberOnlineFlagRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.UpdateSubscriberOnlineFlagRequestDto, + { explode: true }, + ); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/online-status")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberOnlineFlag", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.SubscriberResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.SubscriberResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersUpdate.ts b/src/funcs/subscribersUpdate.ts index 6dc677ff..c2da26c3 100644 --- a/src/funcs/subscribersUpdate.ts +++ b/src/funcs/subscribersUpdate.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -32,9 +38,15 @@ import { Result } from "../types/fp.js"; * Used to update the subscriber entity with new information */ export async function subscribersUpdate( +<<<<<<< Updated upstream client$: NovuCore, subscriberId: string, updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, +======= + client: NovuCore, + updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -48,6 +60,7 @@ export async function subscribersUpdate( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.SubscribersControllerUpdateSubscriberRequest = { subscriberId: subscriberId, updateSubscriberRequestDto: updateSubscriberRequestDto, @@ -70,18 +83,49 @@ export async function subscribersUpdate( const pathParams$ = { subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { +======= + const input: operations.SubscribersControllerUpdateSubscriberRequest = { + updateSubscriberRequestDto: updateSubscriberRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerUpdateSubscriberRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateSubscriberRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams$); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -109,6 +153,21 @@ export async function subscribersUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -118,15 +177,45 @@ export async function subscribersUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.SubscriberResponseDto, | SDKError | SDKValidationError @@ -136,6 +225,7 @@ export async function subscribersUpdate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.SubscriberResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -144,4 +234,14 @@ export async function subscribersUpdate( } return result$; +======= + M.json(200, components.SubscriberResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/topicsCreate.ts b/src/funcs/topicsCreate.ts index 478b92e2..c47dfca8 100644 --- a/src/funcs/topicsCreate.ts +++ b/src/funcs/topicsCreate.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -28,7 +34,11 @@ import { Result } from "../types/fp.js"; * Create a topic */ export async function topicsCreate( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: components.CreateTopicRequestDto, options?: RequestOptions, ): Promise< @@ -43,6 +53,7 @@ export async function topicsCreate( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -59,10 +70,27 @@ export async function topicsCreate( const path$ = pathToFunc("/v1/topics")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => components.CreateTopicRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/topics")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -90,6 +118,21 @@ export async function topicsCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_createTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -99,15 +142,45 @@ export async function topicsCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.CreateTopicResponseDto, | SDKError | SDKValidationError @@ -117,6 +190,7 @@ export async function topicsCreate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, components.CreateTopicResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -125,4 +199,14 @@ export async function topicsCreate( } return result$; +======= + M.json(201, components.CreateTopicResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/topicsDelete.ts b/src/funcs/topicsDelete.ts index 7da8e531..4648c67c 100644 --- a/src/funcs/topicsDelete.ts +++ b/src/funcs/topicsDelete.ts @@ -4,9 +4,15 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,7 +35,11 @@ import { Result } from "../types/fp.js"; * Delete a topic by its topic key if it has no subscribers */ export async function topicsDelete( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes topicKey: string, options?: RequestOptions, ): Promise< @@ -44,6 +54,7 @@ export async function topicsDelete( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.TopicsControllerDeleteTopicRequest = { topicKey: topicKey, }; @@ -64,11 +75,32 @@ export async function topicsDelete( const pathParams$ = { topicKey: encodeSimple$("topicKey", payload$.topicKey, { +======= + const input: operations.TopicsControllerDeleteTopicRequest = { + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerDeleteTopicRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/topics/{topicKey}")(pathParams$); const headers$ = new Headers({ @@ -102,6 +134,27 @@ export async function topicsDelete( errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_deleteTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -111,15 +164,45 @@ export async function topicsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes void, | SDKError | SDKValidationError @@ -129,6 +212,7 @@ export async function topicsDelete( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.nil(204, z.void()), m$.fail([404, 409, 429, "4XX", 503, "5XX"]), )(response); @@ -137,4 +221,14 @@ export async function topicsDelete( } return result$; +======= + M.nil(204, z.void()), + M.fail([404, 409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/topicsGet.ts b/src/funcs/topicsGet.ts new file mode 100644 index 00000000..393296ec --- /dev/null +++ b/src/funcs/topicsGet.ts @@ -0,0 +1,145 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get topic + * + * @remarks + * Get a topic by its topic key + */ +export async function topicsGet( + client: NovuCore, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + components.GetTopicResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerGetTopicRequest = { + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerGetTopicRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_getTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.GetTopicResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.GetTopicResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsGetAll.ts b/src/funcs/topicsGetAll.ts new file mode 100644 index 00000000..2d68a4da --- /dev/null +++ b/src/funcs/topicsGetAll.ts @@ -0,0 +1,141 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Filter topics + * + * @remarks + * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + */ +export async function topicsGetAll( + client: NovuCore, + request: operations.TopicsControllerListTopicsRequest, + options?: RequestOptions, +): Promise< + Result< + components.FilterTopicsResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.TopicsControllerListTopicsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/topics")(); + + const query = encodeFormQuery({ + "key": payload.key, + "page": payload.page, + "pageSize": payload.pageSize, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_listTopics", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.FilterTopicsResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.FilterTopicsResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsRename.ts b/src/funcs/topicsRename.ts index d9685ee8..5617ef89 100644 --- a/src/funcs/topicsRename.ts +++ b/src/funcs/topicsRename.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -32,9 +38,15 @@ import { Result } from "../types/fp.js"; * Rename a topic by providing a new name */ export async function topicsRename( +<<<<<<< Updated upstream client$: NovuCore, topicKey: string, renameTopicRequestDto: components.RenameTopicRequestDto, +======= + client: NovuCore, + renameTopicRequestDto: components.RenameTopicRequestDto, + topicKey: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -48,6 +60,7 @@ export async function topicsRename( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.TopicsControllerRenameTopicRequest = { topicKey: topicKey, renameTopicRequestDto: renameTopicRequestDto, @@ -71,18 +84,48 @@ export async function topicsRename( const pathParams$ = { topicKey: encodeSimple$("topicKey", payload$.topicKey, { +======= + const input: operations.TopicsControllerRenameTopicRequest = { + renameTopicRequestDto: renameTopicRequestDto, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerRenameTopicRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RenameTopicRequestDto, { + explode: true, + }); + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/topics/{topicKey}")(pathParams$); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -110,6 +153,21 @@ export async function topicsRename( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_renameTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -119,15 +177,45 @@ export async function topicsRename( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.RenameTopicResponseDto, | SDKError | SDKValidationError @@ -137,6 +225,7 @@ export async function topicsRename( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.RenameTopicResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -145,4 +234,14 @@ export async function topicsRename( } return result$; +======= + M.json(200, components.RenameTopicResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/topicsSubscribersAdd.ts b/src/funcs/topicsSubscribersAdd.ts new file mode 100644 index 00000000..4f5bb265 --- /dev/null +++ b/src/funcs/topicsSubscribersAdd.ts @@ -0,0 +1,153 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Subscribers addition + * + * @remarks + * Add subscribers to a topic by key + */ +export async function topicsSubscribersAdd( + client: NovuCore, + addSubscribersRequestDto: components.AddSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + void, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerAddSubscribersRequest = { + addSubscribersRequestDto: addSubscribersRequestDto, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerAddSubscribersRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.AddSubscribersRequestDto, { + explode: true, + }); + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}/subscribers")(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_addSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + void, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil(204, z.void()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsSubscribersCheck.ts b/src/funcs/topicsSubscribersCheck.ts new file mode 100644 index 00000000..4d3b1a84 --- /dev/null +++ b/src/funcs/topicsSubscribersCheck.ts @@ -0,0 +1,156 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Check topic subscriber + * + * @remarks + * Check if a subscriber belongs to a certain topic + */ +export async function topicsSubscribersCheck( + client: NovuCore, + externalSubscriberId: string, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + components.TopicSubscriberDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerGetTopicSubscriberRequest = { + externalSubscriberId: externalSubscriberId, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + externalSubscriberId: encodeSimple( + "externalSubscriberId", + payload.externalSubscriberId, + { explode: false, charEncoding: "percent" }, + ), + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}", + )(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_getTopicSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.TopicSubscriberDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.TopicSubscriberDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsSubscribersRemove.ts b/src/funcs/topicsSubscribersRemove.ts new file mode 100644 index 00000000..0f288779 --- /dev/null +++ b/src/funcs/topicsSubscribersRemove.ts @@ -0,0 +1,155 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Subscribers removal + * + * @remarks + * Remove subscribers from a topic + */ +export async function topicsSubscribersRemove( + client: NovuCore, + removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + void, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerRemoveSubscribersRequest = { + removeSubscribersRequestDto: removeSubscribersRequestDto, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RemoveSubscribersRequestDto, { + explode: true, + }); + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}/subscribers/removal")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_removeSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + void, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil(204, z.void()), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/trigger.ts b/src/funcs/trigger.ts index ae672b44..efec2982 100644 --- a/src/funcs/trigger.ts +++ b/src/funcs/trigger.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -31,7 +37,11 @@ import { Result } from "../types/fp.js"; * Additional information can be passed according the body interface below. */ export async function trigger( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: components.TriggerEventRequestDto, options?: RequestOptions, ): Promise< @@ -46,6 +56,7 @@ export async function trigger( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -62,10 +73,27 @@ export async function trigger( const path$ = pathToFunc("/v1/events/trigger")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => components.TriggerEventRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/events/trigger")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -93,6 +121,21 @@ export async function trigger( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_trigger", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -102,15 +145,45 @@ export async function trigger( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.TriggerEventResponseDto, | SDKError | SDKValidationError @@ -120,6 +193,7 @@ export async function trigger( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, components.TriggerEventResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -128,4 +202,14 @@ export async function trigger( } return result$; +======= + M.json(201, components.TriggerEventResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/triggerBroadcast.ts b/src/funcs/triggerBroadcast.ts index 7004f5b8..0d0c9691 100644 --- a/src/funcs/triggerBroadcast.ts +++ b/src/funcs/triggerBroadcast.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -26,10 +32,18 @@ import { Result } from "../types/fp.js"; * * @remarks * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. +<<<<<<< Updated upstream * In the future could be used to trigger events to a subset of subscribers based on defined filters. */ export async function triggerBroadcast( client$: NovuCore, +======= + * + * In the future could be used to trigger events to a subset of subscribers based on defined filters. + */ +export async function triggerBroadcast( + client: NovuCore, +>>>>>>> Stashed changes request: components.TriggerEventToAllRequestDto, options?: RequestOptions, ): Promise< @@ -44,6 +58,7 @@ export async function triggerBroadcast( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -61,10 +76,28 @@ export async function triggerBroadcast( const path$ = pathToFunc("/v1/events/trigger/broadcast")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => + components.TriggerEventToAllRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/events/trigger/broadcast")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -92,6 +125,21 @@ export async function triggerBroadcast( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_broadcastEventToAll", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -101,15 +149,45 @@ export async function triggerBroadcast( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.TriggerEventResponseDto, | SDKError | SDKValidationError @@ -119,6 +197,7 @@ export async function triggerBroadcast( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.TriggerEventResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -127,4 +206,14 @@ export async function triggerBroadcast( } return result$; +======= + M.json(200, components.TriggerEventResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/triggerBulk.ts b/src/funcs/triggerBulk.ts index 7072dd0d..e3a2bc8e 100644 --- a/src/funcs/triggerBulk.ts +++ b/src/funcs/triggerBulk.ts @@ -4,9 +4,15 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -31,7 +37,11 @@ import { Result } from "../types/fp.js"; * The bulk API is limited to 100 events per request. */ export async function triggerBulk( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: components.BulkTriggerEventDto, options?: RequestOptions, ): Promise< @@ -46,6 +56,7 @@ export async function triggerBulk( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -62,10 +73,27 @@ export async function triggerBulk( const path$ = pathToFunc("/v1/events/trigger/bulk")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => components.BulkTriggerEventDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/events/trigger/bulk")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -93,6 +121,21 @@ export async function triggerBulk( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_triggerBulk", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -102,15 +145,45 @@ export async function triggerBulk( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes Array, | SDKError | SDKValidationError @@ -120,6 +193,7 @@ export async function triggerBulk( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, z.array(components.TriggerEventResponseDto$inboundSchema)), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -128,4 +202,14 @@ export async function triggerBulk( } return result$; +======= + M.json(201, z.array(components.TriggerEventResponseDto$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsCreate.ts b/src/funcs/workflowGroupsCreate.ts index 64aae9b6..606a6b57 100644 --- a/src/funcs/workflowGroupsCreate.ts +++ b/src/funcs/workflowGroupsCreate.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -28,7 +34,11 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsCreate( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes request: components.CreateNotificationGroupRequestDto, options?: RequestOptions, ): Promise< @@ -43,6 +53,7 @@ export async function workflowGroupsCreate( | ConnectionError > > { +<<<<<<< Updated upstream const input$ = request; const parsed$ = schemas$.safeParse( @@ -60,10 +71,28 @@ export async function workflowGroupsCreate( const path$ = pathToFunc("/v1/notification-groups")(); const headers$ = new Headers({ +======= + const parsed = safeParse( + request, + (value) => + components.CreateNotificationGroupRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/notification-groups")(); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -91,6 +120,21 @@ export async function workflowGroupsCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_createNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -100,15 +144,45 @@ export async function workflowGroupsCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.NotificationGroupResponseDto, | SDKError | SDKValidationError @@ -118,6 +192,7 @@ export async function workflowGroupsCreate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(201, components.NotificationGroupResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -126,4 +201,14 @@ export async function workflowGroupsCreate( } return result$; +======= + M.json(201, components.NotificationGroupResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsDelete.ts b/src/funcs/workflowGroupsDelete.ts index 9bed9bf5..172053b0 100644 --- a/src/funcs/workflowGroupsDelete.ts +++ b/src/funcs/workflowGroupsDelete.ts @@ -3,9 +3,15 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,7 +35,11 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsDelete( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes id: string, options?: RequestOptions, ): Promise< @@ -44,11 +54,16 @@ export async function workflowGroupsDelete( | ConnectionError > > { +<<<<<<< Updated upstream const input$: +======= + const input: +>>>>>>> Stashed changes operations.NotificationGroupsControllerDeleteNotificationGroupRequest = { id: id, }; +<<<<<<< Updated upstream const parsed$ = schemas$.safeParse( input$, (value$) => @@ -65,11 +80,30 @@ export async function workflowGroupsDelete( const pathParams$ = { id: encodeSimple$("id", payload$.id, { +======= + const parsed = safeParse( + input, + (value) => + operations + .NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/notification-groups/{id}")(pathParams$); const headers$ = new Headers({ @@ -103,6 +137,27 @@ export async function workflowGroupsDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_deleteNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -112,15 +167,45 @@ export async function workflowGroupsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.DeleteNotificationGroupResponseDto, | SDKError | SDKValidationError @@ -130,6 +215,7 @@ export async function workflowGroupsDelete( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.DeleteNotificationGroupResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -138,4 +224,14 @@ export async function workflowGroupsDelete( } return result$; +======= + M.json(200, components.DeleteNotificationGroupResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsGet.ts b/src/funcs/workflowGroupsGet.ts new file mode 100644 index 00000000..67dbe341 --- /dev/null +++ b/src/funcs/workflowGroupsGet.ts @@ -0,0 +1,148 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get workflow group + * + * @remarks + * workflow group was previously named notification group + */ +export async function workflowGroupsGet( + client: NovuCore, + id: string, + options?: RequestOptions, +): Promise< + Result< + components.NotificationGroupResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.NotificationGroupsControllerGetNotificationGroupRequest = { + id: id, + }; + + const parsed = safeParse( + input, + (value) => + operations + .NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_getNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const [result] = await M.match< + components.NotificationGroupResponseDto, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, components.NotificationGroupResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/workflowGroupsList.ts b/src/funcs/workflowGroupsList.ts index 8edd041f..ebab1174 100644 --- a/src/funcs/workflowGroupsList.ts +++ b/src/funcs/workflowGroupsList.ts @@ -4,7 +4,11 @@ import * as z from "zod"; import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import * as m$ from "../lib/matchers.js"; +======= +import * as M from "../lib/matchers.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -27,7 +31,11 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsList( +<<<<<<< Updated upstream client$: NovuCore, +======= + client: NovuCore, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -41,6 +49,7 @@ export async function workflowGroupsList( | ConnectionError > > { +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/notification-groups")(); const headers$ = new Headers({ @@ -73,6 +82,27 @@ export async function workflowGroupsList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const path = pathToFunc("/v1/notification-groups")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_listNotificationGroups", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -82,15 +112,44 @@ export async function workflowGroupsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes Array, | SDKError | SDKValidationError @@ -100,6 +159,7 @@ export async function workflowGroupsList( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json( 200, z.array(components.NotificationGroupResponseDto$inboundSchema), @@ -111,4 +171,14 @@ export async function workflowGroupsList( } return result$; +======= + M.json(200, z.array(components.NotificationGroupResponseDto$inboundSchema)), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsUpdate.ts b/src/funcs/workflowGroupsUpdate.ts index 284d5d50..e76233ba 100644 --- a/src/funcs/workflowGroupsUpdate.ts +++ b/src/funcs/workflowGroupsUpdate.ts @@ -3,12 +3,18 @@ */ import { NovuCore } from "../core.js"; +<<<<<<< Updated upstream import { encodeJSON as encodeJSON$, encodeSimple as encodeSimple$, } from "../lib/encodings.js"; import * as m$ from "../lib/matchers.js"; import * as schemas$ from "../lib/schemas.js"; +======= +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +>>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -32,10 +38,17 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsUpdate( +<<<<<<< Updated upstream client$: NovuCore, id: string, createNotificationGroupRequestDto: components.CreateNotificationGroupRequestDto, +======= + client: NovuCore, + createNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto, + id: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< @@ -49,6 +62,7 @@ export async function workflowGroupsUpdate( | ConnectionError > > { +<<<<<<< Updated upstream const input$: operations.NotificationGroupsControllerUpdateNotificationGroupRequest = { id: id, @@ -75,18 +89,51 @@ export async function workflowGroupsUpdate( const pathParams$ = { id: encodeSimple$("id", payload$.id, { +======= + const input: + operations.NotificationGroupsControllerUpdateNotificationGroupRequest = { + createNotificationGroupRequestDto: createNotificationGroupRequestDto, + id: id, + }; + + const parsed = safeParse( + input, + (value) => + operations + .NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.CreateNotificationGroupRequestDto, { + explode: true, + }); + + const pathParams = { + id: encodeSimple("id", payload.id, { +>>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; +<<<<<<< Updated upstream const path$ = pathToFunc("/v1/notification-groups/{id}")(pathParams$); const headers$ = new Headers({ +======= + const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); + + const headers = new Headers({ +>>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); +<<<<<<< Updated upstream const apiKey$ = await extractSecurity(client$.options$.apiKey); const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; const context = { @@ -114,6 +161,21 @@ export async function workflowGroupsUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: options?.retries || client$.options$.retryConfig +======= + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_updateNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig +>>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -123,15 +185,45 @@ export async function workflowGroupsUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, +<<<<<<< Updated upstream }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], +======= + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, +>>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; +<<<<<<< Updated upstream const [result$] = await m$.match< +======= + const [result] = await M.match< +>>>>>>> Stashed changes components.NotificationGroupResponseDto, | SDKError | SDKValidationError @@ -141,6 +233,7 @@ export async function workflowGroupsUpdate( | RequestTimeoutError | ConnectionError >( +<<<<<<< Updated upstream m$.json(200, components.NotificationGroupResponseDto$inboundSchema), m$.fail([409, 429, "4XX", 503, "5XX"]), )(response); @@ -149,4 +242,14 @@ export async function workflowGroupsUpdate( } return result$; +======= + M.json(200, components.NotificationGroupResponseDto$inboundSchema), + M.fail([409, 429, "4XX", 503, "5XX"]), + )(response); + if (!result.ok) { + return result; + } + + return result; +>>>>>>> Stashed changes } diff --git a/src/hooks/types.ts b/src/hooks/types.ts index 656b9e37..66b3a604 100644 --- a/src/hooks/types.ts +++ b/src/hooks/types.ts @@ -3,11 +3,21 @@ */ import { HTTPClient, RequestInput } from "../lib/http.js"; +<<<<<<< Updated upstream +======= +import { RetryConfig } from "../lib/retries.js"; +import { SecurityState } from "../lib/security.js"; +>>>>>>> Stashed changes export type HookContext = { operationID: string; oAuth2Scopes?: string[]; securitySource?: any | (() => Promise); +<<<<<<< Updated upstream +======= + retryConfig: RetryConfig; + resolvedSecurity: SecurityState | null; +>>>>>>> Stashed changes }; export type Awaitable = T | Promise; diff --git a/src/lib/config.ts b/src/lib/config.ts index 0a6e23cb..b12bbf5c 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -56,6 +56,11 @@ export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0", sdkVersion: "0.0.1-alpha.11", +<<<<<<< Updated upstream genVersion: "2.416.6", userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.11 2.416.6 1.0 @novu/api", +======= + genVersion: "2.461.4", + userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.11 2.461.4 1.0 @novu/api", +>>>>>>> Stashed changes } as const; diff --git a/src/lib/matchers.ts b/src/lib/matchers.ts index 55a9e14b..8b40db47 100644 --- a/src/lib/matchers.ts +++ b/src/lib/matchers.ts @@ -205,7 +205,11 @@ export function match( raw = await response.json(); break; case "bytes": +<<<<<<< Updated upstream raw = await response.arrayBuffer(); +======= + raw = new Uint8Array(await response.arrayBuffer()); +>>>>>>> Stashed changes break; case "stream": raw = response.body; diff --git a/src/lib/primitives.ts b/src/lib/primitives.ts index 23794a2b..48b28674 100644 --- a/src/lib/primitives.ts +++ b/src/lib/primitives.ts @@ -2,6 +2,26 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +class InvariantError extends Error { + constructor(message: string) { + super(message); + this.name = "InvariantError"; + } +} + +export function invariant( + condition: unknown, + message: string, +): asserts condition { + if (!condition) { + throw new InvariantError(message); + } +} + +export type ExactPartial = { + [P in keyof T]?: T[P] | undefined; +}; + export type Remap = { [k in keyof Inp as Mapping[k] extends string /* if we have a string mapping for this key then use it */ ? Mapping[k] diff --git a/src/lib/retries.ts b/src/lib/retries.ts index df3e0bc2..93ebc8de 100644 --- a/src/lib/retries.ts +++ b/src/lib/retries.ts @@ -26,23 +26,44 @@ export type RetryConfig = retryConnectionErrors?: boolean; }; -class PermanentError extends Error { - inner: unknown; +/** + * PermanentError is an error that is not recoverable. Throwing this error will + * cause a retry loop to terminate. + */ +export class PermanentError extends Error { + /** The underlying cause of the error. */ + override readonly cause: unknown; + + constructor(message: string, options?: { cause?: unknown }) { + let msg = message; + if (options?.cause) { + msg += `: ${options.cause}`; + } - constructor(inner: unknown) { - super("Permanent error"); - this.inner = inner; + super(msg, options); + this.name = "PermanentError"; + // In older runtimes, the cause field would not have been assigned through + // the super() call. + if (typeof this.cause === "undefined") { + this.cause = options?.cause; + } Object.setPrototypeOf(this, PermanentError.prototype); } } -class TemporaryError extends Error { - res: Response; +/** + * TemporaryError is an error is used to signal that an HTTP request can be + * retried as part of a retry loop. If retry attempts are exhausted and this + * error is thrown, the response will be returned to the caller. + */ +export class TemporaryError extends Error { + response: Response; - constructor(res: Response) { - super("Temporary error"); - this.res = res; + constructor(message: string, response: Response) { + super(message); + this.response = response; + this.name = "TemporaryError"; Object.setPrototypeOf(this, TemporaryError.prototype); } @@ -80,11 +101,14 @@ function wrapFetcher( try { const res = await fn(); if (isRetryableResponse(res, options.statusCodes)) { - throw new TemporaryError(res); + throw new TemporaryError( + "Response failed with retryable status code", + res, + ); } return res; - } catch (err) { + } catch (err: unknown) { if (err instanceof TemporaryError) { throw err; } @@ -96,7 +120,7 @@ function wrapFetcher( throw err; } - throw new PermanentError(err); + throw new PermanentError("Permanent error", { cause: err }); } }; } @@ -139,37 +163,25 @@ async function retryBackoff( try { const res = await fn(); return res; - } catch (err) { + } catch (err: unknown) { if (err instanceof PermanentError) { - throw err.inner; + throw err.cause; } const elapsed = Date.now() - start; if (elapsed > maxElapsedTime) { if (err instanceof TemporaryError) { - return err.res; + return err.response; } throw err; } let retryInterval = 0; - if (err instanceof TemporaryError && err.res && err.res.headers) { - const retryVal = err.res.headers.get("retry-after") || ""; - if (retryVal != "") { - const parsedNumber = Number(retryVal); - if (!isNaN(parsedNumber) && Number.isInteger(parsedNumber)) { - retryInterval = parsedNumber * 1000; - } else { - const parsedDate = Date.parse(retryVal); - if (!isNaN(parsedDate)) { - const deltaMS = parsedDate - Date.now(); - retryInterval = deltaMS > 0 ? Math.ceil(deltaMS) : 0; - } - } - } + if (err instanceof TemporaryError) { + retryInterval = retryIntervalFromResponse(err.response); } - if (retryInterval == 0) { + if (retryInterval <= 0) { retryInterval = initialInterval * Math.pow(x, exponent) + Math.random() * 1000; } @@ -182,6 +194,26 @@ async function retryBackoff( } } +function retryIntervalFromResponse(res: Response): number { + const retryVal = res.headers.get("retry-after") || ""; + if (!retryVal) { + return 0; + } + + const parsedNumber = Number(retryVal); + if (Number.isInteger(parsedNumber)) { + return parsedNumber * 1000; + } + + const parsedDate = Date.parse(retryVal); + if (Number.isInteger(parsedDate)) { + const deltaMS = parsedDate - Date.now(); + return deltaMS > 0 ? Math.ceil(deltaMS) : 0; + } + + return 0; +} + async function delay(delay: number): Promise { return new Promise((resolve) => setTimeout(resolve, delay)); } diff --git a/src/lib/sdks.ts b/src/lib/sdks.ts index 5e2a8909..29abc45a 100644 --- a/src/lib/sdks.ts +++ b/src/lib/sdks.ts @@ -71,11 +71,19 @@ const isBrowserLike = webWorkerLike || (typeof window === "object" && typeof window.document !== "undefined"); export class ClientSDK { +<<<<<<< Updated upstream private readonly httpClient: HTTPClient; protected readonly baseURL: URL | null; protected readonly hooks$: SDKHooks; protected readonly logger?: Logger | undefined; public readonly options$: SDKOptions & { hooks?: SDKHooks }; +======= + readonly #httpClient: HTTPClient; + readonly #hooks: SDKHooks; + readonly #logger?: Logger | undefined; + protected readonly _baseURL: URL | null; + public readonly _options: SDKOptions & { hooks?: SDKHooks }; +>>>>>>> Stashed changes constructor(options: SDKOptions = {}) { const opt = options as unknown; @@ -85,16 +93,25 @@ export class ClientSDK { && "hooks" in opt && opt.hooks instanceof SDKHooks ) { +<<<<<<< Updated upstream this.hooks$ = opt.hooks; } else { this.hooks$ = new SDKHooks(); } this.options$ = { ...options, hooks: this.hooks$ }; +======= + this.#hooks = opt.hooks; + } else { + this.#hooks = new SDKHooks(); + } + this._options = { ...options, hooks: this.#hooks }; +>>>>>>> Stashed changes const url = serverURLFromOptions(options); if (url) { url.pathname = url.pathname.replace(/\/+$/, "") + "/"; } +<<<<<<< Updated upstream const { baseURL, client } = this.hooks$.sdkInit({ baseURL: url, client: options.httpClient || new HTTPClient(), @@ -105,13 +122,29 @@ export class ClientSDK { } public createRequest$( +======= + const { baseURL, client } = this.#hooks.sdkInit({ + baseURL: url, + client: options.httpClient || new HTTPClient(), + }); + this._baseURL = baseURL; + this.#httpClient = client; + this.#logger = options.debugLogger; + } + + public _createRequest( +>>>>>>> Stashed changes context: HookContext, conf: RequestConfig, options?: RequestOptions, ): Result { const { method, path, query, headers: opHeaders, security } = conf; +<<<<<<< Updated upstream const base = conf.baseURL ?? this.baseURL; +======= + const base = conf.baseURL ?? this._baseURL; +>>>>>>> Stashed changes if (!base) { return ERR(new InvalidRequestError("No base URL provided for operation")); } @@ -195,7 +228,11 @@ export class ClientSDK { let input; try { +<<<<<<< Updated upstream input = this.hooks$.beforeCreateRequest(context, { +======= + input = this.#hooks.beforeCreateRequest(context, { +>>>>>>> Stashed changes url: reqURL, options: { ...fetchOptions, @@ -214,6 +251,7 @@ export class ClientSDK { return OK(new Request(input.url, input.options)); } +<<<<<<< Updated upstream public async do$( request: Request, @@ -253,6 +291,54 @@ export class ClientSDK { response = result.response || response; } else { response = await this.hooks$.afterSuccess(context, response); +======= + + public async _do( + request: Request, + options: { + context: HookContext; + errorCodes: number | string | (number | string)[]; + retryConfig: RetryConfig; + retryCodes: string[]; + }, + ): Promise< + Result< + Response, + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + | UnexpectedClientError + > + > { + const { context, errorCodes } = options; + + return retry( + async () => { + const req = await this.#hooks.beforeRequest(context, request.clone()); + await logRequest(this.#logger, req).catch((e) => + this.#logger?.log("Failed to log request:", e) + ); + + let response = await this.#httpClient.request(req); + + try { + if (matchStatusCode(response, errorCodes)) { + const result = await this.#hooks.afterError( + context, + response, + null, + ); + if (result.error) { + throw result.error; + } + response = result.response || response; + } else { + response = await this.#hooks.afterSuccess(context, response); + } + } finally { + await logResponse(this.#logger, response, req) + .catch(e => this.#logger?.log("Failed to log response:", e)); +>>>>>>> Stashed changes } await logResponse(this.logger, response, req) @@ -260,7 +346,11 @@ export class ClientSDK { return response; }, +<<<<<<< Updated upstream { config: retryConfig, statusCodes: retryCodes }, +======= + { config: options.retryConfig, statusCodes: options.retryCodes }, +>>>>>>> Stashed changes ).then( (r) => OK(r), (err) => { diff --git a/src/lib/security.ts b/src/lib/security.ts index f9d684c4..9d51a8de 100644 --- a/src/lib/security.ts +++ b/src/lib/security.ts @@ -3,6 +3,17 @@ */ import * as components from "../models/components/index.js"; +<<<<<<< Updated upstream +======= + +type OAuth2PasswordFlow = { + username: string; + password?: string | undefined; + clientID: string; + clientSecret?: string | undefined; + tokenURL: string; +}; +>>>>>>> Stashed changes export enum SecurityErrorCode { Incomplete = "incomplete", @@ -37,6 +48,10 @@ export type SecurityState = { headers: Record; queryParams: Record; cookies: Record; +<<<<<<< Updated upstream +======= + oauth2: ({ type: "password" } & OAuth2PasswordFlow) | { type: "none" }; +>>>>>>> Stashed changes }; type SecurityInputBasic = { @@ -73,7 +88,22 @@ type SecurityInputOAuth2 = { type SecurityInputOAuth2ClientCredentials = { type: "oauth2:client_credentials"; +<<<<<<< Updated upstream value: string | null | undefined; +======= + value: + | { clientID?: string | undefined; clientSecret?: string | undefined } + | null + | undefined; +}; + +type SecurityInputOAuth2PasswordCredentials = { + type: "oauth2:password"; + value: + | string + | null + | undefined; +>>>>>>> Stashed changes fieldName: string; }; @@ -89,6 +119,10 @@ export type SecurityInput = | SecurityInputAPIKey | SecurityInputOAuth2 | SecurityInputOAuth2ClientCredentials +<<<<<<< Updated upstream +======= + | SecurityInputOAuth2PasswordCredentials +>>>>>>> Stashed changes | SecurityInputOIDC | SecurityInputCustom; @@ -100,6 +134,10 @@ export function resolveSecurity( headers: {}, queryParams: {}, cookies: {}, +<<<<<<< Updated upstream +======= + oauth2: { type: "none" }, +>>>>>>> Stashed changes }; const option = options.find((opts) => { @@ -110,6 +148,15 @@ export function resolveSecurity( return o.value.username != null || o.value.password != null; } else if (o.type === "http:custom") { return null; +<<<<<<< Updated upstream +======= + } else if (o.type === "oauth2:password") { + return ( + typeof o.value === "string" && !!o.value + ); + } else if (o.type === "oauth2:client_credentials") { + return o.value.clientID != null || o.value.clientSecret != null; +>>>>>>> Stashed changes } else if (typeof o.value === "string") { return !!o.value; } else { @@ -152,6 +199,12 @@ export function resolveSecurity( case "oauth2": applyBearer(state, spec); break; +<<<<<<< Updated upstream +======= + case "oauth2:password": + applyBearer(state, spec); + break; +>>>>>>> Stashed changes case "oauth2:client_credentials": break; case "openIdConnect": @@ -179,9 +232,19 @@ function applyBasic( function applyBearer( state: SecurityState, +<<<<<<< Updated upstream spec: SecurityInputBearer | SecurityInputOAuth2 | SecurityInputOIDC, ) { if (spec.value == null) { +======= + spec: + | SecurityInputBearer + | SecurityInputOAuth2 + | SecurityInputOIDC + | SecurityInputOAuth2PasswordCredentials, +) { + if (typeof spec.value !== "string" || !spec.value) { +>>>>>>> Stashed changes return; } @@ -192,6 +255,7 @@ function applyBearer( state.headers[spec.fieldName] = value; } + export function resolveGlobalSecurity( security: Partial | null | undefined, ): SecurityState | null { diff --git a/src/sdk/authentication.ts b/src/sdk/authentication.ts index 6d078cde..69022a83 100644 --- a/src/sdk/authentication.ts +++ b/src/sdk/authentication.ts @@ -2,8 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { subscribersAuthenticationChatAccessOauth } from "../funcs/subscribersAuthenticationChatAccessOauth.js"; import { subscribersAuthenticationChatAccessOauthCallBack } from "../funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; +======= +import { subscribersAuthenticationHandleOauth } from "../funcs/subscribersAuthenticationHandleOauth.js"; +import { subscribersAuthenticationHandleOauthCallback } from "../funcs/subscribersAuthenticationHandleOauthCallback.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -12,11 +17,19 @@ export class Authentication extends ClientSDK { /** * Handle chat oauth */ +<<<<<<< Updated upstream async chatAccessOauth( request: operations.SubscribersControllerChatAccessOauthRequest, options?: RequestOptions, ): Promise { return unwrapAsync(subscribersAuthenticationChatAccessOauth( +======= + async handleOauth( + request: operations.SubscribersControllerChatAccessOauthRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersAuthenticationHandleOauth( +>>>>>>> Stashed changes this, request, options, @@ -26,11 +39,19 @@ export class Authentication extends ClientSDK { /** * Handle providers oauth redirect */ +<<<<<<< Updated upstream async chatAccessOauthCallBack( request: operations.SubscribersControllerChatOauthCallbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(subscribersAuthenticationChatAccessOauthCallBack( +======= + async handleOauthCallback( + request: operations.SubscribersControllerChatOauthCallbackRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersAuthenticationHandleOauthCallback( +>>>>>>> Stashed changes this, request, options, diff --git a/src/sdk/credentials.ts b/src/sdk/credentials.ts index 27a591af..2894dd98 100644 --- a/src/sdk/credentials.ts +++ b/src/sdk/credentials.ts @@ -15,18 +15,33 @@ export class Credentials extends ClientSDK { * * @remarks * Subscriber credentials associated to the delivery methods such as slack and push tokens. +<<<<<<< Updated upstream * This endpoint appends provided credentials and deviceTokens to the existing ones. */ async append( subscriberId: string, updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, +======= + * + * This endpoint appends provided credentials and deviceTokens to the existing ones. + */ + async append( + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise { return unwrapAsync(subscribersCredentialsAppend( this, +<<<<<<< Updated upstream subscriberId, updateSubscriberChannelRequestDto, +======= + updateSubscriberChannelRequestDto, + subscriberId, +>>>>>>> Stashed changes options, )); } @@ -57,15 +72,26 @@ export class Credentials extends ClientSDK { * Subscriber credentials associated to the delivery methods such as slack and push tokens. */ async update( +<<<<<<< Updated upstream subscriberId: string, updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, +======= + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise { return unwrapAsync(subscribersCredentialsUpdate( this, +<<<<<<< Updated upstream subscriberId, updateSubscriberChannelRequestDto, +======= + updateSubscriberChannelRequestDto, + subscriberId, +>>>>>>> Stashed changes options, )); } diff --git a/src/sdk/environments.ts b/src/sdk/environments.ts index 39009c6f..6207ee41 100644 --- a/src/sdk/environments.ts +++ b/src/sdk/environments.ts @@ -2,8 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { environmentsList } from "../funcs/environmentsList.js"; import { environmentsRetrieve } from "../funcs/environmentsRetrieve.js"; +======= +import { environmentsGetAll } from "../funcs/environmentsGetAll.js"; +import { environmentsGetCurrent } from "../funcs/environmentsGetCurrent.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -12,16 +17,27 @@ import { ApiKeys } from "./apikeys.js"; export class Environments extends ClientSDK { private _apiKeys?: ApiKeys; get apiKeys(): ApiKeys { +<<<<<<< Updated upstream return (this._apiKeys ??= new ApiKeys(this.options$)); +======= + return (this._apiKeys ??= new ApiKeys(this._options)); +>>>>>>> Stashed changes } /** * Get environments */ +<<<<<<< Updated upstream async list( options?: RequestOptions, ): Promise> { return unwrapAsync(environmentsList( +======= + async getAll( + options?: RequestOptions, + ): Promise> { + return unwrapAsync(environmentsGetAll( +>>>>>>> Stashed changes this, options, )); @@ -30,10 +46,17 @@ export class Environments extends ClientSDK { /** * Get current environment */ +<<<<<<< Updated upstream async retrieve( options?: RequestOptions, ): Promise { return unwrapAsync(environmentsRetrieve( +======= + async getCurrent( + options?: RequestOptions, + ): Promise { + return unwrapAsync(environmentsGetCurrent( +>>>>>>> Stashed changes this, options, )); diff --git a/src/sdk/executiondetails.ts b/src/sdk/executiondetails.ts index 0d223d3a..d75a8865 100644 --- a/src/sdk/executiondetails.ts +++ b/src/sdk/executiondetails.ts @@ -2,7 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { executionDetailsRetrieve } from "../funcs/executionDetailsRetrieve.js"; +======= +import { executionDetailsGet } from "../funcs/executionDetailsGet.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -11,12 +15,20 @@ export class ExecutionDetails extends ClientSDK { /** * Get execution details */ +<<<<<<< Updated upstream async retrieve( +======= + async get( +>>>>>>> Stashed changes notificationId: string, subscriberId: string, options?: RequestOptions, ): Promise> { +<<<<<<< Updated upstream return unwrapAsync(executionDetailsRetrieve( +======= + return unwrapAsync(executionDetailsGet( +>>>>>>> Stashed changes this, notificationId, subscriberId, diff --git a/src/sdk/integrations.ts b/src/sdk/integrations.ts index 6702c4f1..553fc90e 100644 --- a/src/sdk/integrations.ts +++ b/src/sdk/integrations.ts @@ -6,11 +6,16 @@ import { integrationsCreate } from "../funcs/integrationsCreate.js"; import { integrationsDelete } from "../funcs/integrationsDelete.js"; import { integrationsList } from "../funcs/integrationsList.js"; import { integrationsListActive } from "../funcs/integrationsListActive.js"; +<<<<<<< Updated upstream import { integrationsSetAsPrimary } from "../funcs/integrationsSetAsPrimary.js"; +======= +import { integrationsSetPrimary } from "../funcs/integrationsSetPrimary.js"; +>>>>>>> Stashed changes import { integrationsUpdate } from "../funcs/integrationsUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import { unwrapAsync } from "../types/fp.js"; +<<<<<<< Updated upstream import { Webhooks } from "./webhooks.js"; export class Integrations extends ClientSDK { @@ -19,6 +24,22 @@ export class Integrations extends ClientSDK { return (this._webhooks ??= new Webhooks(this.options$)); } + /** + * Create integration + * + * @remarks + * Create an integration for the current environment the user is based on the API key provided + */ + async create( + request: components.CreateIntegrationRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsCreate( + this, + request, +======= + +export class Integrations extends ClientSDK { /** * Create integration * @@ -46,11 +67,40 @@ export class Integrations extends ClientSDK { return unwrapAsync(integrationsDelete( this, integrationId, +>>>>>>> Stashed changes + options, + )); + } + + /** +<<<<<<< Updated upstream + * Delete integration + */ + async delete( + integrationId: string, + options?: RequestOptions, + ): Promise> { + return unwrapAsync(integrationsDelete( + this, + integrationId, +======= + * Get integrations + * + * @remarks + * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + */ + async list( + options?: RequestOptions, + ): Promise> { + return unwrapAsync(integrationsList( + this, +>>>>>>> Stashed changes options, )); } /** +<<<<<<< Updated upstream * Get integrations * * @remarks @@ -60,12 +110,24 @@ export class Integrations extends ClientSDK { options?: RequestOptions, ): Promise> { return unwrapAsync(integrationsList( +======= + * Get active integrations + * + * @remarks + * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + */ + async listActive( + options?: RequestOptions, + ): Promise> { + return unwrapAsync(integrationsListActive( +>>>>>>> Stashed changes this, options, )); } /** +<<<<<<< Updated upstream * Get active integrations * * @remarks @@ -76,11 +138,23 @@ export class Integrations extends ClientSDK { ): Promise> { return unwrapAsync(integrationsListActive( this, +======= + * Set integration as primary + */ + async setPrimary( + integrationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsSetPrimary( + this, + integrationId, +>>>>>>> Stashed changes options, )); } /** +<<<<<<< Updated upstream * Set integration as primary */ async setAsPrimary( @@ -100,12 +174,24 @@ export class Integrations extends ClientSDK { async update( integrationId: string, updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, +======= + * Update integration + */ + async update( + updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, + integrationId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise { return unwrapAsync(integrationsUpdate( this, +<<<<<<< Updated upstream integrationId, updateIntegrationRequestDto, +======= + updateIntegrationRequestDto, + integrationId, +>>>>>>> Stashed changes options, )); } diff --git a/src/sdk/integrationswebhooks.ts b/src/sdk/integrationswebhooks.ts new file mode 100644 index 00000000..b3d42b1a --- /dev/null +++ b/src/sdk/integrationswebhooks.ts @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { integrationsWebhooksGetStatus } from "../funcs/integrationsWebhooksGetStatus.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class IntegrationsWebhooks extends ClientSDK { + /** + * Get webhook support status for provider + * + * @remarks + * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + */ + async getStatus( + providerOrIntegrationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsWebhooksGetStatus( + this, + providerOrIntegrationId, + options, + )); + } +} diff --git a/src/sdk/messages.ts b/src/sdk/messages.ts index eb7d0541..9cef8c74 100644 --- a/src/sdk/messages.ts +++ b/src/sdk/messages.ts @@ -4,7 +4,11 @@ import { messagesDelete } from "../funcs/messagesDelete.js"; import { messagesDeleteByTransactionId } from "../funcs/messagesDeleteByTransactionId.js"; +<<<<<<< Updated upstream import { messagesRetrieve } from "../funcs/messagesRetrieve.js"; +======= +import { messagesGet } from "../funcs/messagesGet.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; @@ -53,11 +57,19 @@ export class Messages extends ClientSDK { * @remarks * Returns a list of messages, could paginate using the `page` query parameter */ +<<<<<<< Updated upstream async retrieve( request: operations.MessagesControllerGetMessagesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(messagesRetrieve( +======= + async get( + request: operations.MessagesControllerGetMessagesRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(messagesGet( +>>>>>>> Stashed changes this, request, options, diff --git a/src/sdk/notifications.ts b/src/sdk/notifications.ts index ec0b8b2c..45057910 100644 --- a/src/sdk/notifications.ts +++ b/src/sdk/notifications.ts @@ -2,8 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { notificationsList } from "../funcs/notificationsList.js"; import { notificationsRetrieve } from "../funcs/notificationsRetrieve.js"; +======= +import { notificationsGet } from "../funcs/notificationsGet.js"; +import { notificationsList } from "../funcs/notificationsList.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; @@ -13,6 +18,7 @@ import { Stats } from "./stats.js"; export class Notifications extends ClientSDK { private _stats?: Stats; get stats(): Stats { +<<<<<<< Updated upstream return (this._stats ??= new Stats(this.options$)); } @@ -26,11 +32,27 @@ export class Notifications extends ClientSDK { return unwrapAsync(notificationsList( this, request, +======= + return (this._stats ??= new Stats(this._options)); + } + + /** + * Get notification + */ + async get( + notificationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsGet( + this, + notificationId, +>>>>>>> Stashed changes options, )); } /** +<<<<<<< Updated upstream * Get notification */ async retrieve( @@ -40,6 +62,17 @@ export class Notifications extends ClientSDK { return unwrapAsync(notificationsRetrieve( this, notificationId, +======= + * Get notifications + */ + async list( + request: operations.NotificationsControllerListNotificationsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsList( + this, + request, +>>>>>>> Stashed changes options, )); } diff --git a/src/sdk/notificationsstats.ts b/src/sdk/notificationsstats.ts new file mode 100644 index 00000000..b95849b2 --- /dev/null +++ b/src/sdk/notificationsstats.ts @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { notificationsStatsGet } from "../funcs/notificationsStatsGet.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class NotificationsStats extends ClientSDK { + /** + * Get notification graph statistics + */ + async get( + days?: number | undefined, + options?: RequestOptions, + ): Promise> { + return unwrapAsync(notificationsStatsGet( + this, + days, + options, + )); + } +} diff --git a/src/sdk/novumessages.ts b/src/sdk/novumessages.ts index 6a8e9f01..90868c21 100644 --- a/src/sdk/novumessages.ts +++ b/src/sdk/novumessages.ts @@ -2,16 +2,23 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.js"; import { subscribersMessagesMarkAllAs } from "../funcs/subscribersMessagesMarkAllAs.js"; import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; +======= +import { subscribersMessagesMark } from "../funcs/subscribersMessagesMark.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +>>>>>>> Stashed changes import { unwrapAsync } from "../types/fp.js"; export class NovuMessages extends ClientSDK { /** +<<<<<<< Updated upstream * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. */ async markAll( @@ -53,6 +60,19 @@ export class NovuMessages extends ClientSDK { return unwrapAsync(subscribersMessagesUpdateAsSeen( this, request, +======= + * Mark a subscriber messages as seen, read, unseen or unread + */ + async mark( + messageMarkAsRequestDto: components.MessageMarkAsRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise> { + return unwrapAsync(subscribersMessagesMark( + this, + messageMarkAsRequestDto, + subscriberId, +>>>>>>> Stashed changes options, )); } diff --git a/src/sdk/novusubscribersnotifications.ts b/src/sdk/novusubscribersnotifications.ts new file mode 100644 index 00000000..af8de999 --- /dev/null +++ b/src/sdk/novusubscribersnotifications.ts @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersNotificationsGetFeed } from "../funcs/subscribersNotificationsGetFeed.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class NovuSubscribersNotifications extends ClientSDK { + /** + * Get in-app notification feed for a particular subscriber + */ + async getFeed( + request: operations.SubscribersControllerGetNotificationsFeedRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersNotificationsGetFeed( + this, + request, + options, + )); + } +} diff --git a/src/sdk/novutopicssubscribers.ts b/src/sdk/novutopicssubscribers.ts new file mode 100644 index 00000000..dd6a9cab --- /dev/null +++ b/src/sdk/novutopicssubscribers.ts @@ -0,0 +1,69 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { topicsSubscribersAdd } from "../funcs/topicsSubscribersAdd.js"; +import { topicsSubscribersCheck } from "../funcs/topicsSubscribersCheck.js"; +import { topicsSubscribersRemove } from "../funcs/topicsSubscribersRemove.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class NovuTopicsSubscribers extends ClientSDK { + /** + * Subscribers addition + * + * @remarks + * Add subscribers to a topic by key + */ + async add( + addSubscribersRequestDto: components.AddSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsSubscribersAdd( + this, + addSubscribersRequestDto, + topicKey, + options, + )); + } + + /** + * Check topic subscriber + * + * @remarks + * Check if a subscriber belongs to a certain topic + */ + async check( + externalSubscriberId: string, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsSubscribersCheck( + this, + externalSubscriberId, + topicKey, + options, + )); + } + + /** + * Subscribers removal + * + * @remarks + * Remove subscribers from a topic + */ + async remove( + removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsSubscribersRemove( + this, + removeSubscribersRequestDto, + topicKey, + options, + )); + } +} diff --git a/src/sdk/preferences.ts b/src/sdk/preferences.ts index c7652ddb..65758573 100644 --- a/src/sdk/preferences.ts +++ b/src/sdk/preferences.ts @@ -2,10 +2,16 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { subscribersPreferencesList } from "../funcs/subscribersPreferencesList.js"; import { subscribersPreferencesRetrieveByLevel } from "../funcs/subscribersPreferencesRetrieveByLevel.js"; import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.js"; import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; +======= +import { subscribersPreferencesGet } from "../funcs/subscribersPreferencesGet.js"; +import { subscribersPreferencesGetByLevel } from "../funcs/subscribersPreferencesGetByLevel.js"; +import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; @@ -15,6 +21,7 @@ export class Preferences extends ClientSDK { /** * Get subscriber preferences */ +<<<<<<< Updated upstream async list( subscriberId: string, options?: RequestOptions, @@ -22,6 +29,17 @@ export class Preferences extends ClientSDK { return unwrapAsync(subscribersPreferencesList( this, subscriberId, +======= + async get( + subscriberId: string, + includeInactiveChannels?: boolean | undefined, + options?: RequestOptions, + ): Promise> { + return unwrapAsync(subscribersPreferencesGet( + this, + subscriberId, + includeInactiveChannels, +>>>>>>> Stashed changes options, )); } @@ -29,6 +47,7 @@ export class Preferences extends ClientSDK { /** * Get subscriber preferences by level */ +<<<<<<< Updated upstream async retrieveByLevel( parameter: operations.Parameter, subscriberId: string, @@ -38,6 +57,16 @@ export class Preferences extends ClientSDK { this, parameter, subscriberId, +======= + async getByLevel( + request: + operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, + options?: RequestOptions, + ): Promise> { + return unwrapAsync(subscribersPreferencesGetByLevel( + this, + request, +>>>>>>> Stashed changes options, )); } @@ -55,6 +84,7 @@ export class Preferences extends ClientSDK { options, )); } +<<<<<<< Updated upstream /** * Update subscriber global preferences @@ -72,4 +102,6 @@ export class Preferences extends ClientSDK { options, )); } +======= +>>>>>>> Stashed changes } diff --git a/src/sdk/properties.ts b/src/sdk/properties.ts index 1948ae52..9bdc438b 100644 --- a/src/sdk/properties.ts +++ b/src/sdk/properties.ts @@ -2,7 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { subscribersPropertiesUpdateOnlineFlag } from "../funcs/subscribersPropertiesUpdateOnlineFlag.js"; +======= +import { subscribersPropertiesUpdateOnlineStatus } from "../funcs/subscribersPropertiesUpdateOnlineStatus.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -14,6 +18,7 @@ export class Properties extends ClientSDK { * @remarks * Used to update the subscriber isOnline flag. */ +<<<<<<< Updated upstream async updateOnlineFlag( subscriberId: string, updateSubscriberOnlineFlagRequestDto: @@ -24,6 +29,18 @@ export class Properties extends ClientSDK { this, subscriberId, updateSubscriberOnlineFlagRequestDto, +======= + async updateOnlineStatus( + updateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersPropertiesUpdateOnlineStatus( + this, + updateSubscriberOnlineFlagRequestDto, + subscriberId, +>>>>>>> Stashed changes options, )); } diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts index 98c805ff..e42d93bc 100644 --- a/src/sdk/sdk.ts +++ b/src/sdk/sdk.ts @@ -9,6 +9,7 @@ import { triggerBulk } from "../funcs/triggerBulk.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import { unwrapAsync } from "../types/fp.js"; +<<<<<<< Updated upstream import { Changes } from "./changes.js"; import { Environments } from "./environments.js"; import { ExecutionDetails } from "./executiondetails.js"; @@ -83,10 +84,94 @@ export class Novu extends ClientSDK { private _tenants?: Tenants; get tenants(): Tenants { return (this._tenants ??= new Tenants(this.options$)); +======= +import { Environments } from "./environments.js"; +import { ExecutionDetails } from "./executiondetails.js"; +import { Integrations } from "./integrations.js"; +import { IntegrationsWebhooks } from "./integrationswebhooks.js"; +import { Messages } from "./messages.js"; +import { Notifications } from "./notifications.js"; +import { NotificationsStats } from "./notificationsstats.js"; +import { Subscribers } from "./subscribers.js"; +import { SubscribersMessages } from "./subscribersmessages.js"; +import { SubscribersNotifications } from "./subscribersnotifications.js"; +import { SubscribersPreferences } from "./subscriberspreferences.js"; +import { Topics } from "./topics.js"; +import { WorkflowGroups } from "./workflowgroups.js"; + +export class Novu extends ClientSDK { + private _environments?: Environments; + get environments(): Environments { + return (this._environments ??= new Environments(this._options)); + } + + private _executionDetails?: ExecutionDetails; + get executionDetails(): ExecutionDetails { + return (this._executionDetails ??= new ExecutionDetails(this._options)); + } + + private _integrations?: Integrations; + get integrations(): Integrations { + return (this._integrations ??= new Integrations(this._options)); + } + + private _integrationsWebhooks?: IntegrationsWebhooks; + get integrationsWebhooks(): IntegrationsWebhooks { + return (this._integrationsWebhooks ??= new IntegrationsWebhooks( + this._options, + )); + } + + private _messages?: Messages; + get messages(): Messages { + return (this._messages ??= new Messages(this._options)); + } + + private _workflowGroups?: WorkflowGroups; + get workflowGroups(): WorkflowGroups { + return (this._workflowGroups ??= new WorkflowGroups(this._options)); + } + + private _notifications?: Notifications; + get notifications(): Notifications { + return (this._notifications ??= new Notifications(this._options)); + } + + private _notificationsStats?: NotificationsStats; + get notificationsStats(): NotificationsStats { + return (this._notificationsStats ??= new NotificationsStats(this._options)); + } + + private _subscribers?: Subscribers; + get subscribers(): Subscribers { + return (this._subscribers ??= new Subscribers(this._options)); + } + + private _subscribersMessages?: SubscribersMessages; + get subscribersMessages(): SubscribersMessages { + return (this._subscribersMessages ??= new SubscribersMessages( + this._options, + )); + } + + private _subscribersNotifications?: SubscribersNotifications; + get subscribersNotifications(): SubscribersNotifications { + return (this._subscribersNotifications ??= new SubscribersNotifications( + this._options, + )); + } + + private _subscribersPreferences?: SubscribersPreferences; + get subscribersPreferences(): SubscribersPreferences { + return (this._subscribersPreferences ??= new SubscribersPreferences( + this._options, + )); +>>>>>>> Stashed changes } private _topics?: Topics; get topics(): Topics { +<<<<<<< Updated upstream return (this._topics ??= new Topics(this.options$)); } @@ -95,6 +180,25 @@ export class Novu extends ClientSDK { return (this._workflows ??= new Workflows(this.options$)); } + /** + * Cancel triggered event + * + * @remarks + * + * Using a previously generated transactionId during the event trigger, + * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + */ + async cancel( + transactionId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(cancel( + this, + transactionId, +======= + return (this._topics ??= new Topics(this._options)); + } + /** * Cancel triggered event * @@ -130,11 +234,48 @@ export class Novu extends ClientSDK { return unwrapAsync(trigger( this, request, +>>>>>>> Stashed changes + options, + )); + } + + /** +<<<<<<< Updated upstream + * Trigger event + * + * @remarks + * + * Trigger event is the main (and only) way to send notifications to subscribers. + * The trigger identifier is used to match the particular workflow associated with it. + * Additional information can be passed according the body interface below. + */ + async trigger( + request: components.TriggerEventRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(trigger( +======= + * Broadcast event to all + * + * @remarks + * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + * + * In the future could be used to trigger events to a subset of subscribers based on defined filters. + */ + async triggerBroadcast( + request: components.TriggerEventToAllRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggerBroadcast( +>>>>>>> Stashed changes + this, + request, options, )); } /** +<<<<<<< Updated upstream * Broadcast event to all * * @remarks @@ -153,6 +294,8 @@ export class Novu extends ClientSDK { } /** +======= +>>>>>>> Stashed changes * Bulk trigger event * * @remarks diff --git a/src/sdk/stats.ts b/src/sdk/stats.ts index 4656836b..fffe2a2d 100644 --- a/src/sdk/stats.ts +++ b/src/sdk/stats.ts @@ -2,14 +2,19 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +<<<<<<< Updated upstream import { notificationsStatsGraph } from "../funcs/notificationsStatsGraph.js"; import { notificationsStatsRetrieve } from "../funcs/notificationsStatsRetrieve.js"; +======= +import { notificationsStatsGet } from "../funcs/notificationsStatsGet.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Stats extends ClientSDK { /** +<<<<<<< Updated upstream * Get notification graph statistics */ async graph( @@ -30,6 +35,14 @@ export class Stats extends ClientSDK { options?: RequestOptions, ): Promise { return unwrapAsync(notificationsStatsRetrieve( +======= + * Get notification statistics + */ + async get( + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsStatsGet( +>>>>>>> Stashed changes this, options, )); diff --git a/src/sdk/subscribers.ts b/src/sdk/subscribers.ts index dcfe25e3..3fbc51c6 100644 --- a/src/sdk/subscribers.ts +++ b/src/sdk/subscribers.ts @@ -5,8 +5,13 @@ import { subscribersCreate } from "../funcs/subscribersCreate.js"; import { subscribersCreateBulk } from "../funcs/subscribersCreateBulk.js"; import { subscribersDelete } from "../funcs/subscribersDelete.js"; +<<<<<<< Updated upstream import { subscribersList } from "../funcs/subscribersList.js"; import { subscribersRetrieve } from "../funcs/subscribersRetrieve.js"; +======= +import { subscribersGet } from "../funcs/subscribersGet.js"; +import { subscribersGetAll } from "../funcs/subscribersGetAll.js"; +>>>>>>> Stashed changes import { subscribersUpdate } from "../funcs/subscribersUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; @@ -16,39 +21,70 @@ import { PageIterator, unwrapResultIterator } from "../types/operations.js"; import { Authentication } from "./authentication.js"; import { Credentials } from "./credentials.js"; import { NovuMessages } from "./novumessages.js"; +<<<<<<< Updated upstream import { NovuNotifications } from "./novunotifications.js"; +======= +import { NovuSubscribersNotifications } from "./novusubscribersnotifications.js"; +>>>>>>> Stashed changes import { Preferences } from "./preferences.js"; import { Properties } from "./properties.js"; export class Subscribers extends ClientSDK { private _credentials?: Credentials; get credentials(): Credentials { +<<<<<<< Updated upstream return (this._credentials ??= new Credentials(this.options$)); +======= + return (this._credentials ??= new Credentials(this._options)); +>>>>>>> Stashed changes } private _authentication?: Authentication; get authentication(): Authentication { +<<<<<<< Updated upstream return (this._authentication ??= new Authentication(this.options$)); +======= + return (this._authentication ??= new Authentication(this._options)); +>>>>>>> Stashed changes } private _messages?: NovuMessages; get messages(): NovuMessages { +<<<<<<< Updated upstream return (this._messages ??= new NovuMessages(this.options$)); } private _notifications?: NovuNotifications; get notifications(): NovuNotifications { return (this._notifications ??= new NovuNotifications(this.options$)); +======= + return (this._messages ??= new NovuMessages(this._options)); + } + + private _notifications?: NovuSubscribersNotifications; + get notifications(): NovuSubscribersNotifications { + return (this._notifications ??= new NovuSubscribersNotifications( + this._options, + )); +>>>>>>> Stashed changes } private _properties?: Properties; get properties(): Properties { +<<<<<<< Updated upstream return (this._properties ??= new Properties(this.options$)); +======= + return (this._properties ??= new Properties(this._options)); +>>>>>>> Stashed changes } private _preferences?: Preferences; get preferences(): Preferences { +<<<<<<< Updated upstream return (this._preferences ??= new Preferences(this.options$)); +======= + return (this._preferences ??= new Preferences(this._options)); +>>>>>>> Stashed changes } /** @@ -105,19 +141,49 @@ export class Subscribers extends ClientSDK { } /** +<<<<<<< Updated upstream +======= + * Get subscriber + * + * @remarks + * Get subscriber by your internal id used to identify the subscriber + */ + async get( + subscriberId: string, + includeTopics?: string | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersGet( + this, + subscriberId, + includeTopics, + options, + )); + } + + /** +>>>>>>> Stashed changes * Get subscribers * * @remarks * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter */ +<<<<<<< Updated upstream async list( +======= + async getAll( +>>>>>>> Stashed changes page?: number | undefined, limit?: number | undefined, options?: RequestOptions, ): Promise< PageIterator > { +<<<<<<< Updated upstream return unwrapResultIterator(subscribersList( +======= + return unwrapResultIterator(subscribersGetAll( +>>>>>>> Stashed changes this, page, limit, @@ -126,6 +192,7 @@ export class Subscribers extends ClientSDK { } /** +<<<<<<< Updated upstream * Get subscriber * * @remarks @@ -143,20 +210,32 @@ export class Subscribers extends ClientSDK { } /** +======= +>>>>>>> Stashed changes * Update subscriber * * @remarks * Used to update the subscriber entity with new information */ async update( +<<<<<<< Updated upstream subscriberId: string, updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, +======= + updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, + subscriberId: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise { return unwrapAsync(subscribersUpdate( this, +<<<<<<< Updated upstream subscriberId, updateSubscriberRequestDto, +======= + updateSubscriberRequestDto, + subscriberId, +>>>>>>> Stashed changes options, )); } diff --git a/src/sdk/subscribersmessages.ts b/src/sdk/subscribersmessages.ts new file mode 100644 index 00000000..6a884fe9 --- /dev/null +++ b/src/sdk/subscribersmessages.ts @@ -0,0 +1,42 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.js"; +import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class SubscribersMessages extends ClientSDK { + /** + * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + */ + async markAll( + markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersMessagesMarkAll( + this, + markAllMessageAsRequestDto, + subscriberId, + options, + )); + } + + /** + * Mark message action as seen + */ + async updateAsSeen( + request: operations.SubscribersControllerMarkActionAsSeenRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersMessagesUpdateAsSeen( + this, + request, + options, + )); + } +} diff --git a/src/sdk/subscribersnotifications.ts b/src/sdk/subscribersnotifications.ts new file mode 100644 index 00000000..b7f47da5 --- /dev/null +++ b/src/sdk/subscribersnotifications.ts @@ -0,0 +1,25 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersNotificationsGetUnseenCount } from "../funcs/subscribersNotificationsGetUnseenCount.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class SubscribersNotifications extends ClientSDK { + /** + * Get the unseen in-app notifications count for subscribers feed + */ + async getUnseenCount( + request: operations.SubscribersControllerGetUnseenCountRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersNotificationsGetUnseenCount( + this, + request, + options, + )); + } +} diff --git a/src/sdk/subscriberspreferences.ts b/src/sdk/subscriberspreferences.ts new file mode 100644 index 00000000..ebe75715 --- /dev/null +++ b/src/sdk/subscriberspreferences.ts @@ -0,0 +1,27 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class SubscribersPreferences extends ClientSDK { + /** + * Update subscriber global preferences + */ + async updateGlobal( + updateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersPreferencesUpdateGlobal( + this, + updateSubscriberGlobalPreferencesRequestDto, + subscriberId, + options, + )); + } +} diff --git a/src/sdk/topics.ts b/src/sdk/topics.ts index a7a1f39f..d59e3dbd 100644 --- a/src/sdk/topics.ts +++ b/src/sdk/topics.ts @@ -4,19 +4,34 @@ import { topicsCreate } from "../funcs/topicsCreate.js"; import { topicsDelete } from "../funcs/topicsDelete.js"; +<<<<<<< Updated upstream import { topicsList } from "../funcs/topicsList.js"; import { topicsRename } from "../funcs/topicsRename.js"; import { topicsRetrieve } from "../funcs/topicsRetrieve.js"; +======= +import { topicsGet } from "../funcs/topicsGet.js"; +import { topicsGetAll } from "../funcs/topicsGetAll.js"; +import { topicsRename } from "../funcs/topicsRename.js"; +>>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; +<<<<<<< Updated upstream import { NovuSubscribers } from "./novusubscribers.js"; export class Topics extends ClientSDK { private _subscribers?: NovuSubscribers; get subscribers(): NovuSubscribers { return (this._subscribers ??= new NovuSubscribers(this.options$)); +======= +import { NovuTopicsSubscribers } from "./novutopicssubscribers.js"; + +export class Topics extends ClientSDK { + private _subscribers?: NovuTopicsSubscribers; + get subscribers(): NovuTopicsSubscribers { + return (this._subscribers ??= new NovuTopicsSubscribers(this._options)); +>>>>>>> Stashed changes } /** @@ -54,6 +69,7 @@ export class Topics extends ClientSDK { } /** +<<<<<<< Updated upstream * Filter topics * * @remarks @@ -66,11 +82,26 @@ export class Topics extends ClientSDK { return unwrapAsync(topicsList( this, request, +======= + * Get topic + * + * @remarks + * Get a topic by its topic key + */ + async get( + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsGet( + this, + topicKey, +>>>>>>> Stashed changes options, )); } /** +<<<<<<< Updated upstream * Rename a topic * * @remarks @@ -85,11 +116,26 @@ export class Topics extends ClientSDK { this, topicKey, renameTopicRequestDto, +======= + * Filter topics + * + * @remarks + * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + */ + async getAll( + request: operations.TopicsControllerListTopicsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsGetAll( + this, + request, +>>>>>>> Stashed changes options, )); } /** +<<<<<<< Updated upstream * Get topic * * @remarks @@ -101,6 +147,21 @@ export class Topics extends ClientSDK { ): Promise { return unwrapAsync(topicsRetrieve( this, +======= + * Rename a topic + * + * @remarks + * Rename a topic by providing a new name + */ + async rename( + renameTopicRequestDto: components.RenameTopicRequestDto, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsRename( + this, + renameTopicRequestDto, +>>>>>>> Stashed changes topicKey, options, )); diff --git a/src/sdk/workflowgroups.ts b/src/sdk/workflowgroups.ts index 74c45305..7c87dfdd 100644 --- a/src/sdk/workflowgroups.ts +++ b/src/sdk/workflowgroups.ts @@ -4,8 +4,13 @@ import { workflowGroupsCreate } from "../funcs/workflowGroupsCreate.js"; import { workflowGroupsDelete } from "../funcs/workflowGroupsDelete.js"; +<<<<<<< Updated upstream import { workflowGroupsList } from "../funcs/workflowGroupsList.js"; import { workflowGroupsRetrieve } from "../funcs/workflowGroupsRetrieve.js"; +======= +import { workflowGroupsGet } from "../funcs/workflowGroupsGet.js"; +import { workflowGroupsList } from "../funcs/workflowGroupsList.js"; +>>>>>>> Stashed changes import { workflowGroupsUpdate } from "../funcs/workflowGroupsUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; @@ -47,26 +52,45 @@ export class WorkflowGroups extends ClientSDK { } /** +<<<<<<< Updated upstream * Get workflow groups +======= + * Get workflow group +>>>>>>> Stashed changes * * @remarks * workflow group was previously named notification group */ +<<<<<<< Updated upstream async list( options?: RequestOptions, ): Promise> { return unwrapAsync(workflowGroupsList( this, +======= + async get( + id: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(workflowGroupsGet( + this, + id, +>>>>>>> Stashed changes options, )); } /** +<<<<<<< Updated upstream * Get workflow group +======= + * Get workflow groups +>>>>>>> Stashed changes * * @remarks * workflow group was previously named notification group */ +<<<<<<< Updated upstream async retrieve( id: string, options?: RequestOptions, @@ -74,6 +98,13 @@ export class WorkflowGroups extends ClientSDK { return unwrapAsync(workflowGroupsRetrieve( this, id, +======= + async list( + options?: RequestOptions, + ): Promise> { + return unwrapAsync(workflowGroupsList( + this, +>>>>>>> Stashed changes options, )); } @@ -85,15 +116,26 @@ export class WorkflowGroups extends ClientSDK { * workflow group was previously named notification group */ async update( +<<<<<<< Updated upstream id: string, createNotificationGroupRequestDto: components.CreateNotificationGroupRequestDto, +======= + createNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto, + id: string, +>>>>>>> Stashed changes options?: RequestOptions, ): Promise { return unwrapAsync(workflowGroupsUpdate( this, +<<<<<<< Updated upstream id, createNotificationGroupRequestDto, +======= + createNotificationGroupRequestDto, + id, +>>>>>>> Stashed changes options, )); } From 0f122b95b80dd33b904cb4fb2a52e6708c70121b Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:37:17 +0100 Subject: [PATCH 02/12] relaunch --- .speakeasy/gen.lock | 1838 ------------------------------------------- .speakeasy/gen.yaml | 3 +- 2 files changed, 2 insertions(+), 1839 deletions(-) delete mode 100755 .speakeasy/gen.lock diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock deleted file mode 100755 index c501572a..00000000 --- a/.speakeasy/gen.lock +++ /dev/null @@ -1,1838 +0,0 @@ -lockVersion: 2.0.0 -id: f50499c4-d106-4975-983f-ead3a386ec53 -management: -<<<<<<< Updated upstream - docChecksum: d35f4f2287646adf6b222b56b786719d - docVersion: "1.0" - speakeasyVersion: 1.399.2 - generationVersion: 2.416.6 - releaseVersion: 0.0.1-alpha.11 - configChecksum: 3a75dd73a304fb0621acb8c3a38cdf41 - repoURL: https://github.com/novuhq/novu-ts.git - installationURL: https://github.com/novuhq/novu-ts -======= - docChecksum: 04230eaab3e3bff1a8783517be37ad60 - docVersion: "1.0" - speakeasyVersion: 1.444.1 - generationVersion: 2.461.4 - releaseVersion: 0.0.1-alpha.11 - configChecksum: 818568f42529f4a1a2a504b605a99baf - repoURL: https://github.com/novuhq/novu-node.git - installationURL: https://github.com/novuhq/novu-node ->>>>>>> Stashed changes - published: true -features: - typescript: - additionalDependencies: 0.1.0 - constsAndDefaults: 0.1.11 -<<<<<<< Updated upstream - core: 3.17.4 - defaultEnabledRetries: 0.1.0 - deprecations: 2.81.1 - enumUnions: 0.1.0 - envVarSecurityUsage: 0.1.1 - examples: 2.81.4 - flattening: 2.81.1 -======= - core: 3.18.6 - defaultEnabledRetries: 0.1.0 - deprecations: 2.81.1 - enumUnions: 0.1.0 - envVarSecurityUsage: 0.1.2 - examples: 2.81.4 - flattening: 2.82.0 ->>>>>>> Stashed changes - globalSecurity: 2.82.11 - globalSecurityCallbacks: 0.1.0 - globalSecurityFlattening: 0.1.0 - globalServerURLs: 2.82.4 - groups: 2.81.2 - nameOverrides: 2.81.2 - nullables: 0.1.0 -<<<<<<< Updated upstream - pagination: 2.82.6 - responseFormat: 0.2.3 - retries: 2.83.0 - sdkHooks: 0.1.0 - unions: 2.85.7 -======= - pagination: 2.82.7 - responseFormat: 0.2.3 - retries: 2.83.0 - sdkHooks: 0.2.0 - tests: 0.7.0 - unions: 2.85.8 ->>>>>>> Stashed changes -generatedFiles: - - .eslintrc.cjs - - .gitattributes - - .npmignore - - CONTRIBUTING.md - - FUNCTIONS.md - - RUNTIMES.md - - USAGE.md - - docs/lib/utils/retryconfig.md - - docs/models/components/activitiesresponsedto.md - - docs/models/components/activitygraphstatesresponse.md - - docs/models/components/activitynotificationresponsedto.md - - docs/models/components/activitynotificationresponsedtochannels.md - - docs/models/components/activitynotificationsubscriberresponsedto.md - - docs/models/components/activitynotificationtemplateresponsedto.md - - docs/models/components/activitystatsresponsedto.md - - docs/models/components/actor.md - - docs/models/components/addsubscribersrequestdto.md - - docs/models/components/apikey.md - - docs/models/components/backoffunit.md -<<<<<<< Updated upstream - - docs/models/components/bulkapplychangedto.md - - docs/models/components/bulksubscribercreatedto.md - - docs/models/components/bulktriggereventdto.md - - docs/models/components/change.md - - docs/models/components/changeresponsedto.md - - docs/models/components/changesresponsedto.md - - docs/models/components/changeworkflowstatusrequestdto.md - - docs/models/components/channel.md - - docs/models/components/channelcredentials.md - - docs/models/components/channelpreference.md - - docs/models/components/channelpreferencetype.md -======= - - docs/models/components/bulksubscribercreatedto.md - - docs/models/components/bulktriggereventdto.md - - docs/models/components/channel.md - - docs/models/components/channelcredentials.md - - docs/models/components/channelpreference.md ->>>>>>> Stashed changes - - docs/models/components/channels.md - - docs/models/components/channelsettings.md - - docs/models/components/content.md - - docs/models/components/controls.md -<<<<<<< Updated upstream - - docs/models/components/createfeedrequestdto.md - - docs/models/components/createintegrationrequestdto.md - - docs/models/components/createlayoutresponsedto.md - - docs/models/components/createnotificationgrouprequestdto.md - - docs/models/components/createsubscriberrequestdto.md - - docs/models/components/createtenantrequestdto.md - - docs/models/components/createtenantrequestdtodata.md - - docs/models/components/createtenantresponsedto.md - - docs/models/components/createtenantresponsedtodata.md - - docs/models/components/createtopicrequestdto.md - - docs/models/components/createtopicresponsedto.md - - docs/models/components/createworkflowrequestdto.md - - docs/models/components/createworkflowrequestdtodata.md - - docs/models/components/createworkflowrequestdtonotificationgroup.md - - docs/models/components/credentialsdto.md - - docs/models/components/data.md - - docs/models/components/databooleandto.md - - docs/models/components/datanumberdto.md -======= - - docs/models/components/createintegrationrequestdto.md - - docs/models/components/createnotificationgrouprequestdto.md - - docs/models/components/createsubscriberrequestdto.md - - docs/models/components/createtopicrequestdto.md - - docs/models/components/createtopicresponsedto.md - - docs/models/components/credentialsdto.md - - docs/models/components/data.md - - docs/models/components/databooleandto.md ->>>>>>> Stashed changes - - docs/models/components/delayregularmetadata.md - - docs/models/components/delayregularmetadatatype.md - - docs/models/components/delayscheduledmetadata.md - - docs/models/components/delayscheduledmetadatatype.md - - docs/models/components/deletemessageresponsedto.md - - docs/models/components/deletenotificationgroupresponsedto.md - - docs/models/components/deletenotificationgroupresponsedtostatus.md - - docs/models/components/deletesubscriberresponsedto.md - - docs/models/components/deletesubscriberresponsedtostatus.md - - docs/models/components/digestregularmetadata.md - - docs/models/components/digestregularmetadatatype.md - - docs/models/components/digestregularmetadataunit.md - - docs/models/components/digesttimedmetadata.md - - docs/models/components/digesttimedmetadatatype.md - - docs/models/components/digesttimedmetadataunit.md -<<<<<<< Updated upstream - - docs/models/components/direction.md -======= ->>>>>>> Stashed changes - - docs/models/components/emailblock.md - - docs/models/components/emailblockstyles.md - - docs/models/components/emailblocktype.md - - docs/models/components/environmentresponsedto.md - - docs/models/components/executiondetailsresponsedto.md - - docs/models/components/executiondetailsresponsedtochannel.md - - docs/models/components/executiondetailsresponsedtostatus.md - - docs/models/components/feedid.md - - docs/models/components/feedidentifier.md - - docs/models/components/feedresponsedto.md - - docs/models/components/fieldfilterpart.md - - docs/models/components/filtertopicsresponsedto.md -<<<<<<< Updated upstream - - docs/models/components/getlayoutresponsedto.md - - docs/models/components/getlayoutresponsedtochannel.md - - docs/models/components/getsubscriberpreferencesresponsedto.md - - docs/models/components/gettenantresponsedto.md - - docs/models/components/gettenantresponsedtodata.md -======= - - docs/models/components/getsubscriberpreferencesresponsedto.md ->>>>>>> Stashed changes - - docs/models/components/gettopicresponsedto.md - - docs/models/components/integrationresponsedto.md - - docs/models/components/integrationresponsedtochannel.md - - docs/models/components/markallmessageasrequestdto.md - - docs/models/components/markas.md - - docs/models/components/markmessageactionasseendto.md - - docs/models/components/markmessageactionasseendtostatus.md - - docs/models/components/messageaction.md - - docs/models/components/messageactionresult.md - - docs/models/components/messageactionresultpayload.md - - docs/models/components/messageactionresulttype.md - - docs/models/components/messageactionstatus.md - - docs/models/components/messagebutton.md - - docs/models/components/messagebuttontype.md - - docs/models/components/messagecta.md - - docs/models/components/messagectadata.md - - docs/models/components/messagectatype.md - - docs/models/components/messageentity.md - - docs/models/components/messageid.md - - docs/models/components/messagemarkasrequestdto.md - - docs/models/components/messagemarkasrequestdtomarkas.md - - docs/models/components/messageresponsedto.md - - docs/models/components/messageresponsedtochannel.md - - docs/models/components/messageresponsedtopayload.md - - docs/models/components/messageresponsedtostatus.md - - docs/models/components/messagetemplate.md - - docs/models/components/metadata.md - - docs/models/components/monthlytype.md - - docs/models/components/notificationgroup.md - - docs/models/components/notificationgroupresponsedto.md - - docs/models/components/notificationstep.md - - docs/models/components/notificationstepvariant.md - - docs/models/components/notificationstepvariantmetadata.md - - docs/models/components/notificationstepvariantparentid.md - - docs/models/components/notificationstepvariantreplycallback.md - - docs/models/components/notificationtrigger.md - - docs/models/components/notificationtriggertype.md - - docs/models/components/notificationtriggervariable.md - - docs/models/components/on.md - - docs/models/components/operator.md - - docs/models/components/ordinal.md - - docs/models/components/ordinalvalue.md -<<<<<<< Updated upstream - - docs/models/components/organizationbrandingresponsedto.md - - docs/models/components/organizationresponsedto.md -======= ->>>>>>> Stashed changes - - docs/models/components/overrides.md - - docs/models/components/parentid.md - - docs/models/components/payload.md - - docs/models/components/preference.md - - docs/models/components/preferencechannels.md -<<<<<<< Updated upstream - - docs/models/components/removesubscribersrequestdto.md - - docs/models/components/renameorganizationdto.md -======= - - docs/models/components/providerid.md - - docs/models/components/removesubscribersrequestdto.md ->>>>>>> Stashed changes - - docs/models/components/renametopicrequestdto.md - - docs/models/components/renametopicresponsedto.md - - docs/models/components/replycallback.md - - docs/models/components/security.md - - docs/models/components/source.md - - docs/models/components/status.md - - docs/models/components/stepfilter.md - - docs/models/components/stepfiltertype.md - - docs/models/components/subscriberpayloaddto.md - - docs/models/components/subscriberpayloaddtodata.md - - docs/models/components/subscriberresponsedto.md -<<<<<<< Updated upstream - - docs/models/components/system.md -======= ->>>>>>> Stashed changes - - docs/models/components/templateresponse.md - - docs/models/components/tenant.md - - docs/models/components/tenantpayloaddto.md - - docs/models/components/tenantpayloaddtodata.md - - docs/models/components/textalign.md - - docs/models/components/timedconfig.md - - docs/models/components/tlsoptions.md - - docs/models/components/to.md - - docs/models/components/topicdto.md - - docs/models/components/topicpayloaddto.md - - docs/models/components/topicpayloaddtotype.md - - docs/models/components/topicsubscriberdto.md -<<<<<<< Updated upstream - - docs/models/components/translations.md -======= ->>>>>>> Stashed changes - - docs/models/components/triggereventrequestdto.md - - docs/models/components/triggereventrequestdtooverrides.md - - docs/models/components/triggereventrequestdtopayload.md - - docs/models/components/triggereventresponsedto.md - - docs/models/components/triggereventresponsedtostatus.md - - docs/models/components/triggereventtoallrequestdto.md - - docs/models/components/triggereventtoallrequestdtoactor.md - - docs/models/components/triggereventtoallrequestdtooverrides.md - - docs/models/components/triggereventtoallrequestdtopayload.md - - docs/models/components/triggereventtoallrequestdtotenant.md - - docs/models/components/type.md - - docs/models/components/unit.md - - docs/models/components/unseencountresponse.md -<<<<<<< Updated upstream - - docs/models/components/updatebrandingdetailsdto.md - - docs/models/components/updateintegrationrequestdto.md - - docs/models/components/updatelayoutrequestdto.md - - docs/models/components/updatelayoutresponsedto.md - - docs/models/components/updatelayoutresponsedtochannel.md - - docs/models/components/updatesubscriberchannelrequestdto.md -======= - - docs/models/components/updateintegrationrequestdto.md - - docs/models/components/updatesubscriberchannelrequestdto.md - - docs/models/components/updatesubscriberchannelrequestdtoproviderid.md ->>>>>>> Stashed changes - - docs/models/components/updatesubscriberglobalpreferencesrequestdto.md - - docs/models/components/updatesubscriberonlineflagrequestdto.md - - docs/models/components/updatesubscriberpreferencerequestdto.md - - docs/models/components/updatesubscriberpreferenceresponsedto.md - - docs/models/components/updatesubscriberrequestdto.md - - docs/models/components/updatesubscriberrequestdtodata.md -<<<<<<< Updated upstream - - docs/models/components/updatetenantrequestdto.md - - docs/models/components/updatetenantrequestdtodata.md - - docs/models/components/updatetenantresponsedto.md - - docs/models/components/updatetenantresponsedtodata.md - - docs/models/components/updateworkflowrequestdto.md - - docs/models/components/updateworkflowrequestdtodata.md - - docs/models/components/value.md - - docs/models/components/variables.md - - docs/models/components/variablesresponsedto.md -======= - - docs/models/components/value.md ->>>>>>> Stashed changes - - docs/models/components/weekdays.md - - docs/models/components/workflowintegrationstatus.md - - docs/models/components/workflowresponse.md - - docs/models/components/workflowresponsedata.md -<<<<<<< Updated upstream - - docs/models/components/workflowsresponsedto.md - - docs/models/operations/changescontrollerapplydiffrequest.md - - docs/models/operations/changescontrollergetchangesrequest.md -======= ->>>>>>> Stashed changes - - docs/models/operations/channel.md - - docs/models/operations/channels.md - - docs/models/operations/eventscontrollercancelrequest.md - - docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md -<<<<<<< Updated upstream - - docs/models/operations/feedscontrollerdeletefeedbyidrequest.md -======= ->>>>>>> Stashed changes - - docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md - - docs/models/operations/integrationscontrollerremoveintegrationrequest.md - - docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md - - docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md -<<<<<<< Updated upstream - - docs/models/operations/layoutscontrollerdeletelayoutrequest.md - - docs/models/operations/layoutscontrollergetlayoutrequest.md - - docs/models/operations/layoutscontrollerlistlayoutsrequest.md - - docs/models/operations/layoutscontrollersetdefaultlayoutrequest.md - - docs/models/operations/layoutscontrollerupdatelayoutrequest.md -======= ->>>>>>> Stashed changes - - docs/models/operations/messagescontrollerdeletemessagerequest.md - - docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md - - docs/models/operations/messagescontrollergetmessagesrequest.md - - docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md - - docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md - - docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md - - docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md - - docs/models/operations/notificationscontrollergetnotificationrequest.md - - docs/models/operations/notificationscontrollerlistnotificationsrequest.md -<<<<<<< Updated upstream - - docs/models/operations/orderby.md -======= ->>>>>>> Stashed changes - - docs/models/operations/parameter.md - - docs/models/operations/queryparamchannel.md - - docs/models/operations/subscriberscontrollerchataccessoauthrequest.md - - docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md - - docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md - - docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md - - docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md - - docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md - - docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md - - docs/models/operations/subscriberscontrollergetsubscriberrequest.md - - docs/models/operations/subscriberscontrollergetunseencountrequest.md - - docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md - - docs/models/operations/subscriberscontrollerlistsubscribersrequest.md - - docs/models/operations/subscriberscontrollerlistsubscribersresponse.md - - docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md - - docs/models/operations/subscriberscontrollermarkactionasseenrequest.md - - docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md - - docs/models/operations/subscriberscontrollermarkmessagesasrequest.md - - docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md - - docs/models/operations/subscriberscontrollerremovesubscriberrequest.md - - docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md - - docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md - - docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md - - docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md - - docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md -<<<<<<< Updated upstream - - docs/models/operations/tenantcontrollergettenantbyidrequest.md - - docs/models/operations/tenantcontrollerlisttenantsrequest.md - - docs/models/operations/tenantcontrollerlisttenantsresponse.md - - docs/models/operations/tenantcontrollerlisttenantsresponsebody.md - - docs/models/operations/tenantcontrollerremovetenantrequest.md - - docs/models/operations/tenantcontrollerupdatetenantrequest.md -======= ->>>>>>> Stashed changes - - docs/models/operations/topicscontrolleraddsubscribersrequest.md - - docs/models/operations/topicscontrollerdeletetopicrequest.md - - docs/models/operations/topicscontrollergettopicrequest.md - - docs/models/operations/topicscontrollergettopicsubscriberrequest.md - - docs/models/operations/topicscontrollerlisttopicsrequest.md - - docs/models/operations/topicscontrollerremovesubscribersrequest.md - - docs/models/operations/topicscontrollerrenametopicrequest.md -<<<<<<< Updated upstream - - docs/models/operations/workflowcontrollerdeleteworkflowbyidrequest.md - - docs/models/operations/workflowcontrollergetworkflowbyidrequest.md - - docs/models/operations/workflowcontrollerlistworkflowsrequest.md - - docs/models/operations/workflowcontrollerupdateactivestatusrequest.md - - docs/models/operations/workflowcontrollerupdateworkflowbyidrequest.md - - docs/sdks/apikeys/README.md - - docs/sdks/authentication/README.md - - docs/sdks/changes/README.md - - docs/sdks/credentials/README.md - - docs/sdks/environments/README.md - - docs/sdks/executiondetails/README.md - - docs/sdks/feeds/README.md - - docs/sdks/integrations/README.md - - docs/sdks/layouts/README.md - - docs/sdks/messages/README.md - - docs/sdks/notifications/README.md - - docs/sdks/novu/README.md - - docs/sdks/novumessages/README.md - - docs/sdks/novunotifications/README.md - - docs/sdks/novusubscribers/README.md - - docs/sdks/organizations/README.md - - docs/sdks/preferences/README.md - - docs/sdks/properties/README.md - - docs/sdks/stats/README.md - - docs/sdks/status/README.md - - docs/sdks/subscribers/README.md - - docs/sdks/tenants/README.md - - docs/sdks/topics/README.md - - docs/sdks/variables/README.md - - docs/sdks/webhooks/README.md - - docs/sdks/workflowgroups/README.md - - docs/sdks/workflows/README.md -======= - - docs/sdks/apikeys/README.md - - docs/sdks/authentication/README.md - - docs/sdks/credentials/README.md - - docs/sdks/environments/README.md - - docs/sdks/executiondetails/README.md - - docs/sdks/integrations/README.md - - docs/sdks/integrationswebhooks/README.md - - docs/sdks/messages/README.md - - docs/sdks/notifications/README.md - - docs/sdks/notificationsstats/README.md - - docs/sdks/novu/README.md - - docs/sdks/novumessages/README.md - - docs/sdks/novusubscribersnotifications/README.md - - docs/sdks/novutopicssubscribers/README.md - - docs/sdks/preferences/README.md - - docs/sdks/properties/README.md - - docs/sdks/stats/README.md - - docs/sdks/subscribers/README.md - - docs/sdks/subscribersmessages/README.md - - docs/sdks/subscribersnotifications/README.md - - docs/sdks/subscriberspreferences/README.md - - docs/sdks/topics/README.md - - docs/sdks/workflowgroups/README.md ->>>>>>> Stashed changes - - jsr.json - - package.json - - src/core.ts - - src/funcs/cancel.ts -<<<<<<< Updated upstream - - src/funcs/changesApply.ts - - src/funcs/changesApplyBulk.ts - - src/funcs/changesCount.ts - - src/funcs/changesRetrieve.ts - - src/funcs/environmentsApiKeysList.ts - - src/funcs/environmentsList.ts - - src/funcs/environmentsRetrieve.ts - - src/funcs/executionDetailsRetrieve.ts - - src/funcs/feedsCreate.ts - - src/funcs/feedsDelete.ts - - src/funcs/feedsRetrieve.ts -======= - - src/funcs/environmentsApiKeysList.ts - - src/funcs/environmentsGetAll.ts - - src/funcs/environmentsGetCurrent.ts - - src/funcs/executionDetailsGet.ts ->>>>>>> Stashed changes - - src/funcs/integrationsCreate.ts - - src/funcs/integrationsDelete.ts - - src/funcs/integrationsList.ts - - src/funcs/integrationsListActive.ts -<<<<<<< Updated upstream - - src/funcs/integrationsSetAsPrimary.ts - - src/funcs/integrationsUpdate.ts - - src/funcs/integrationsWebhooksRetrieve.ts - - src/funcs/layoutsCreate.ts - - src/funcs/layoutsDelete.ts - - src/funcs/layoutsList.ts - - src/funcs/layoutsRetrieve.ts - - src/funcs/layoutsSetAsDefault.ts - - src/funcs/layoutsUpdate.ts - - src/funcs/messagesDelete.ts - - src/funcs/messagesDeleteByTransactionId.ts - - src/funcs/messagesRetrieve.ts - - src/funcs/notificationsList.ts - - src/funcs/notificationsRetrieve.ts - - src/funcs/notificationsStatsGraph.ts - - src/funcs/notificationsStatsRetrieve.ts - - src/funcs/organizationsEEOrganizationControllerRenameOrganization.ts - - src/funcs/organizationsRetrieve.ts - - src/funcs/organizationsUpdate.ts - - src/funcs/subscribersAuthenticationChatAccessOauth.ts - - src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts -======= - - src/funcs/integrationsSetPrimary.ts - - src/funcs/integrationsUpdate.ts - - src/funcs/integrationsWebhooksGetStatus.ts - - src/funcs/messagesDelete.ts - - src/funcs/messagesDeleteByTransactionId.ts - - src/funcs/messagesGet.ts - - src/funcs/notificationsGet.ts - - src/funcs/notificationsList.ts - - src/funcs/notificationsStatsGet.ts - - src/funcs/subscribersAuthenticationHandleOauth.ts - - src/funcs/subscribersAuthenticationHandleOauthCallback.ts ->>>>>>> Stashed changes - - src/funcs/subscribersCreate.ts - - src/funcs/subscribersCreateBulk.ts - - src/funcs/subscribersCredentialsAppend.ts - - src/funcs/subscribersCredentialsDelete.ts - - src/funcs/subscribersCredentialsUpdate.ts - - src/funcs/subscribersDelete.ts -<<<<<<< Updated upstream - - src/funcs/subscribersList.ts - - src/funcs/subscribersMessagesMarkAll.ts - - src/funcs/subscribersMessagesMarkAllAs.ts - - src/funcs/subscribersMessagesUpdateAsSeen.ts - - src/funcs/subscribersNotificationsRetrieve.ts - - src/funcs/subscribersNotificationsUnseenCount.ts - - src/funcs/subscribersPreferencesList.ts - - src/funcs/subscribersPreferencesRetrieveByLevel.ts - - src/funcs/subscribersPreferencesUpdate.ts - - src/funcs/subscribersPreferencesUpdateGlobal.ts - - src/funcs/subscribersPropertiesUpdateOnlineFlag.ts - - src/funcs/subscribersRetrieve.ts - - src/funcs/subscribersUpdate.ts - - src/funcs/tenantsCreate.ts - - src/funcs/tenantsDelete.ts - - src/funcs/tenantsList.ts - - src/funcs/tenantsRetrieve.ts - - src/funcs/tenantsUpdate.ts - - src/funcs/topicsCreate.ts - - src/funcs/topicsDelete.ts - - src/funcs/topicsList.ts - - src/funcs/topicsRename.ts - - src/funcs/topicsRetrieve.ts - - src/funcs/topicsSubscribersAssign.ts - - src/funcs/topicsSubscribersDelete.ts - - src/funcs/topicsSubscribersRetrieve.ts -======= - - src/funcs/subscribersGet.ts - - src/funcs/subscribersGetAll.ts - - src/funcs/subscribersMessagesMark.ts - - src/funcs/subscribersMessagesMarkAll.ts - - src/funcs/subscribersMessagesUpdateAsSeen.ts - - src/funcs/subscribersNotificationsGetFeed.ts - - src/funcs/subscribersNotificationsGetUnseenCount.ts - - src/funcs/subscribersPreferencesGet.ts - - src/funcs/subscribersPreferencesGetByLevel.ts - - src/funcs/subscribersPreferencesUpdate.ts - - src/funcs/subscribersPreferencesUpdateGlobal.ts - - src/funcs/subscribersPropertiesUpdateOnlineStatus.ts - - src/funcs/subscribersUpdate.ts - - src/funcs/topicsCreate.ts - - src/funcs/topicsDelete.ts - - src/funcs/topicsGet.ts - - src/funcs/topicsGetAll.ts - - src/funcs/topicsRename.ts - - src/funcs/topicsSubscribersAdd.ts - - src/funcs/topicsSubscribersCheck.ts - - src/funcs/topicsSubscribersRemove.ts ->>>>>>> Stashed changes - - src/funcs/trigger.ts - - src/funcs/triggerBroadcast.ts - - src/funcs/triggerBulk.ts - - src/funcs/workflowGroupsCreate.ts - - src/funcs/workflowGroupsDelete.ts -<<<<<<< Updated upstream - - src/funcs/workflowGroupsList.ts - - src/funcs/workflowGroupsRetrieve.ts - - src/funcs/workflowGroupsUpdate.ts - - src/funcs/workflowsCreate.ts - - src/funcs/workflowsDelete.ts - - src/funcs/workflowsList.ts - - src/funcs/workflowsRetrieve.ts - - src/funcs/workflowsStatusUpdate.ts - - src/funcs/workflowsUpdate.ts - - src/funcs/workflowsVariablesRetrieve.ts -======= - - src/funcs/workflowGroupsGet.ts - - src/funcs/workflowGroupsList.ts - - src/funcs/workflowGroupsUpdate.ts ->>>>>>> Stashed changes - - src/hooks/hooks.ts - - src/hooks/index.ts - - src/hooks/types.ts - - src/index.ts - - src/lib/base64.ts - - src/lib/config.ts - - src/lib/dlv.ts - - src/lib/encodings.ts - - src/lib/files.ts - - src/lib/http.ts - - src/lib/is-plain-object.ts - - src/lib/logger.ts - - src/lib/matchers.ts - - src/lib/primitives.ts - - src/lib/retries.ts - - src/lib/schemas.ts - - src/lib/sdks.ts - - src/lib/security.ts - - src/lib/url.ts - - src/models/components/activitiesresponsedto.ts - - src/models/components/activitygraphstatesresponse.ts - - src/models/components/activitynotificationresponsedto.ts - - src/models/components/activitynotificationsubscriberresponsedto.ts - - src/models/components/activitynotificationtemplateresponsedto.ts - - src/models/components/activitystatsresponsedto.ts - - src/models/components/addsubscribersrequestdto.ts - - src/models/components/apikey.ts -<<<<<<< Updated upstream - - src/models/components/bulkapplychangedto.ts - - src/models/components/bulksubscribercreatedto.ts - - src/models/components/bulktriggereventdto.ts - - src/models/components/changeresponsedto.ts - - src/models/components/changesresponsedto.ts - - src/models/components/changeworkflowstatusrequestdto.ts - - src/models/components/channelcredentials.ts - - src/models/components/channelpreference.ts - - src/models/components/channelsettings.ts - - src/models/components/createfeedrequestdto.ts - - src/models/components/createintegrationrequestdto.ts - - src/models/components/createlayoutresponsedto.ts - - src/models/components/createnotificationgrouprequestdto.ts - - src/models/components/createsubscriberrequestdto.ts - - src/models/components/createtenantrequestdto.ts - - src/models/components/createtenantresponsedto.ts - - src/models/components/createtopicrequestdto.ts - - src/models/components/createtopicresponsedto.ts - - src/models/components/createworkflowrequestdto.ts - - src/models/components/credentialsdto.ts - - src/models/components/databooleandto.ts - - src/models/components/datanumberdto.ts -======= - - src/models/components/bulksubscribercreatedto.ts - - src/models/components/bulktriggereventdto.ts - - src/models/components/channelcredentials.ts - - src/models/components/channelpreference.ts - - src/models/components/channelsettings.ts - - src/models/components/createintegrationrequestdto.ts - - src/models/components/createnotificationgrouprequestdto.ts - - src/models/components/createsubscriberrequestdto.ts - - src/models/components/createtopicrequestdto.ts - - src/models/components/createtopicresponsedto.ts - - src/models/components/credentialsdto.ts - - src/models/components/databooleandto.ts ->>>>>>> Stashed changes - - src/models/components/delayregularmetadata.ts - - src/models/components/delayscheduledmetadata.ts - - src/models/components/deletemessageresponsedto.ts - - src/models/components/deletenotificationgroupresponsedto.ts - - src/models/components/deletesubscriberresponsedto.ts - - src/models/components/digestregularmetadata.ts - - src/models/components/digesttimedmetadata.ts - - src/models/components/emailblock.ts - - src/models/components/emailblockstyles.ts - - src/models/components/environmentresponsedto.ts - - src/models/components/executiondetailsresponsedto.ts - - src/models/components/feedresponsedto.ts - - src/models/components/fieldfilterpart.ts - - src/models/components/filtertopicsresponsedto.ts -<<<<<<< Updated upstream - - src/models/components/getlayoutresponsedto.ts - - src/models/components/getsubscriberpreferencesresponsedto.ts - - src/models/components/gettenantresponsedto.ts -======= - - src/models/components/getsubscriberpreferencesresponsedto.ts ->>>>>>> Stashed changes - - src/models/components/gettopicresponsedto.ts - - src/models/components/index.ts - - src/models/components/integrationresponsedto.ts - - src/models/components/markallmessageasrequestdto.ts - - src/models/components/markmessageactionasseendto.ts - - src/models/components/messageaction.ts - - src/models/components/messageactionresult.ts - - src/models/components/messagebutton.ts - - src/models/components/messagecta.ts - - src/models/components/messagectadata.ts - - src/models/components/messageentity.ts - - src/models/components/messagemarkasrequestdto.ts - - src/models/components/messageresponsedto.ts - - src/models/components/messagetemplate.ts - - src/models/components/notificationgroup.ts - - src/models/components/notificationgroupresponsedto.ts - - src/models/components/notificationstep.ts - - src/models/components/notificationstepvariant.ts - - src/models/components/notificationtrigger.ts - - src/models/components/notificationtriggervariable.ts -<<<<<<< Updated upstream - - src/models/components/organizationbrandingresponsedto.ts - - src/models/components/organizationresponsedto.ts - - src/models/components/preference.ts - - src/models/components/preferencechannels.ts - - src/models/components/removesubscribersrequestdto.ts - - src/models/components/renameorganizationdto.ts -======= - - src/models/components/preference.ts - - src/models/components/preferencechannels.ts - - src/models/components/removesubscribersrequestdto.ts ->>>>>>> Stashed changes - - src/models/components/renametopicrequestdto.ts - - src/models/components/renametopicresponsedto.ts - - src/models/components/security.ts - - src/models/components/stepfilter.ts - - src/models/components/subscriberpayloaddto.ts - - src/models/components/subscriberresponsedto.ts - - src/models/components/templateresponse.ts - - src/models/components/tenantpayloaddto.ts - - src/models/components/timedconfig.ts - - src/models/components/topicdto.ts - - src/models/components/topicpayloaddto.ts - - src/models/components/topicsubscriberdto.ts - - src/models/components/triggereventrequestdto.ts - - src/models/components/triggereventresponsedto.ts - - src/models/components/triggereventtoallrequestdto.ts - - src/models/components/unseencountresponse.ts -<<<<<<< Updated upstream - - src/models/components/updatebrandingdetailsdto.ts - - src/models/components/updateintegrationrequestdto.ts - - src/models/components/updatelayoutrequestdto.ts - - src/models/components/updatelayoutresponsedto.ts -======= - - src/models/components/updateintegrationrequestdto.ts ->>>>>>> Stashed changes - - src/models/components/updatesubscriberchannelrequestdto.ts - - src/models/components/updatesubscriberglobalpreferencesrequestdto.ts - - src/models/components/updatesubscriberonlineflagrequestdto.ts - - src/models/components/updatesubscriberpreferencerequestdto.ts - - src/models/components/updatesubscriberpreferenceresponsedto.ts - - src/models/components/updatesubscriberrequestdto.ts -<<<<<<< Updated upstream - - src/models/components/updatetenantrequestdto.ts - - src/models/components/updatetenantresponsedto.ts - - src/models/components/updateworkflowrequestdto.ts - - src/models/components/variablesresponsedto.ts - - src/models/components/workflowresponse.ts - - src/models/components/workflowsresponsedto.ts -======= - - src/models/components/workflowresponse.ts ->>>>>>> Stashed changes - - src/models/errors/httpclienterrors.ts - - src/models/errors/index.ts - - src/models/errors/sdkerror.ts - - src/models/errors/sdkvalidationerror.ts -<<<<<<< Updated upstream - - src/models/operations/changescontrollerapplydiff.ts - - src/models/operations/changescontrollergetchanges.ts - - src/models/operations/eventscontrollercancel.ts - - src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts - - src/models/operations/feedscontrollerdeletefeedbyid.ts -======= - - src/models/operations/eventscontrollercancel.ts - - src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts ->>>>>>> Stashed changes - - src/models/operations/index.ts - - src/models/operations/integrationscontrollergetwebhooksupportstatus.ts - - src/models/operations/integrationscontrollerremoveintegration.ts - - src/models/operations/integrationscontrollersetintegrationasprimary.ts - - src/models/operations/integrationscontrollerupdateintegrationbyid.ts -<<<<<<< Updated upstream - - src/models/operations/layoutscontrollerdeletelayout.ts - - src/models/operations/layoutscontrollergetlayout.ts - - src/models/operations/layoutscontrollerlistlayouts.ts - - src/models/operations/layoutscontrollersetdefaultlayout.ts - - src/models/operations/layoutscontrollerupdatelayout.ts -======= ->>>>>>> Stashed changes - - src/models/operations/messagescontrollerdeletemessage.ts - - src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts - - src/models/operations/messagescontrollergetmessages.ts - - src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts - - src/models/operations/notificationgroupscontrollergetnotificationgroup.ts - - src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts - - src/models/operations/notificationscontrollergetactivitygraphstats.ts - - src/models/operations/notificationscontrollergetnotification.ts - - src/models/operations/notificationscontrollerlistnotifications.ts - - src/models/operations/subscriberscontrollerchataccessoauth.ts - - src/models/operations/subscriberscontrollerchatoauthcallback.ts - - src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts - - src/models/operations/subscriberscontrollergetnotificationsfeed.ts - - src/models/operations/subscriberscontrollergetsubscriber.ts - - src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts - - src/models/operations/subscriberscontrollergetunseencount.ts - - src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts - - src/models/operations/subscriberscontrollerlistsubscribers.ts - - src/models/operations/subscriberscontrollermarkactionasseen.ts - - src/models/operations/subscriberscontrollermarkallunreadasread.ts - - src/models/operations/subscriberscontrollermarkmessagesas.ts - - src/models/operations/subscriberscontrollermodifysubscriberchannel.ts - - src/models/operations/subscriberscontrollerremovesubscriber.ts - - src/models/operations/subscriberscontrollerupdatesubscriber.ts - - src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts - - src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts - - src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts - - src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts -<<<<<<< Updated upstream - - src/models/operations/tenantcontrollergettenantbyid.ts - - src/models/operations/tenantcontrollerlisttenants.ts - - src/models/operations/tenantcontrollerremovetenant.ts - - src/models/operations/tenantcontrollerupdatetenant.ts -======= ->>>>>>> Stashed changes - - src/models/operations/topicscontrolleraddsubscribers.ts - - src/models/operations/topicscontrollerdeletetopic.ts - - src/models/operations/topicscontrollergettopic.ts - - src/models/operations/topicscontrollergettopicsubscriber.ts - - src/models/operations/topicscontrollerlisttopics.ts - - src/models/operations/topicscontrollerremovesubscribers.ts - - src/models/operations/topicscontrollerrenametopic.ts -<<<<<<< Updated upstream - - src/models/operations/workflowcontrollerdeleteworkflowbyid.ts - - src/models/operations/workflowcontrollergetworkflowbyid.ts - - src/models/operations/workflowcontrollerlistworkflows.ts - - src/models/operations/workflowcontrollerupdateactivestatus.ts - - src/models/operations/workflowcontrollerupdateworkflowbyid.ts - - src/sdk/apikeys.ts - - src/sdk/authentication.ts - - src/sdk/changes.ts - - src/sdk/credentials.ts - - src/sdk/environments.ts - - src/sdk/executiondetails.ts - - src/sdk/feeds.ts - - src/sdk/index.ts - - src/sdk/integrations.ts - - src/sdk/layouts.ts - - src/sdk/messages.ts - - src/sdk/notifications.ts - - src/sdk/novumessages.ts - - src/sdk/novunotifications.ts - - src/sdk/novusubscribers.ts - - src/sdk/organizations.ts -======= - - src/sdk/apikeys.ts - - src/sdk/authentication.ts - - src/sdk/credentials.ts - - src/sdk/environments.ts - - src/sdk/executiondetails.ts - - src/sdk/index.ts - - src/sdk/integrations.ts - - src/sdk/integrationswebhooks.ts - - src/sdk/messages.ts - - src/sdk/notifications.ts - - src/sdk/notificationsstats.ts - - src/sdk/novumessages.ts - - src/sdk/novusubscribersnotifications.ts - - src/sdk/novutopicssubscribers.ts ->>>>>>> Stashed changes - - src/sdk/preferences.ts - - src/sdk/properties.ts - - src/sdk/sdk.ts - - src/sdk/stats.ts -<<<<<<< Updated upstream - - src/sdk/status.ts - - src/sdk/subscribers.ts - - src/sdk/tenants.ts - - src/sdk/topics.ts - - src/sdk/variables.ts - - src/sdk/webhooks.ts - - src/sdk/workflowgroups.ts - - src/sdk/workflows.ts -======= - - src/sdk/subscribers.ts - - src/sdk/subscribersmessages.ts - - src/sdk/subscribersnotifications.ts - - src/sdk/subscriberspreferences.ts - - src/sdk/topics.ts - - src/sdk/workflowgroups.ts ->>>>>>> Stashed changes - - src/types/blobs.ts - - src/types/constdatetime.ts - - src/types/enums.ts - - src/types/fp.ts - - src/types/index.ts - - src/types/operations.ts - - src/types/rfcdate.ts - - src/types/streams.ts - - tsconfig.json -examples: - EventsController_cancel: - speakeasy-default-events-controller-cancel: - parameters: - path: -<<<<<<< Updated upstream - transactionId: "" - responses: - "200": - application/json: {"data": false} - EventsController_trigger: - speakeasy-default-events-controller-trigger: - requestBody: - application/json: {"name": "workflow_identifier", "to": []} - responses: - "201": - application/json: {"acknowledged": false, "status": "no_workflow_active_steps_defined"} -======= - transactionId: "" - responses: - "200": - application/json: {"data": true} - EventsController_trigger: - speakeasy-default-events-controller-trigger: - requestBody: - application/json: {"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"topicKey": "", "type": "Topic"}]} - responses: - "201": - application/json: {"acknowledged": true, "status": "processed"} ->>>>>>> Stashed changes - EventsController_broadcastEventToAll: - speakeasy-default-events-controller-broadcast-event-to-all: - requestBody: - application/json: {"name": ""} - responses: - "200": - application/json: {"acknowledged": true, "status": "trigger_not_active"} - EventsController_triggerBulk: - speakeasy-default-events-controller-trigger-bulk: - requestBody: -<<<<<<< Updated upstream - application/json: {"events": []} - responses: - "201": - application/json: [] - ChangesController_applyDiff: - speakeasy-default-changes-controller-apply-diff: - parameters: - path: - changeId: "" - responses: - "201": - application/json: [] - ChangesController_bulkApplyDiff: - speakeasy-default-changes-controller-bulk-apply-diff: - requestBody: - application/json: {"changeIds": []} - responses: - "201": - application/json: [] - ChangesController_getChangesCount: - speakeasy-default-changes-controller-get-changes-count: - responses: - "200": - application/json: {"data": "2641.66"} - ChangesController_getChanges: - speakeasy-default-changes-controller-get-changes: - parameters: - query: - promoted: "false" - responses: - "200": - application/json: {"data": [], "page": "3704.56", "pageSize": "9451.91", "totalCount": "9198.31"} - EnvironmentsController_listMyEnvironments: - speakeasy-default-environments-controller-list-my-environments: - responses: - "200": - application/json: [] - EnvironmentsController_getCurrentEnvironment: - speakeasy-default-environments-controller-get-current-environment: - responses: - "200": - application/json: {"_organizationId": "", "_parentId": "", "identifier": "", "name": ""} - EnvironmentsController_listOrganizationApiKeys: - speakeasy-default-environments-controller-list-organization-api-keys: - responses: - "200": - application/json: [] -======= - application/json: {"events": [{"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"subscriberId": ""}]}, {"name": "workflow_identifier", "to": []}, {"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"topicKey": "", "type": "Topic"}]}]} - responses: - "201": - application/json: [{"acknowledged": true, "status": "error"}, {"acknowledged": true, "status": "no_workflow_active_steps_defined"}, {"acknowledged": true, "status": "trigger_not_active"}] - EnvironmentsControllerV1_listMyEnvironments: - speakeasy-default-environments-controller-v1-list-my-environments: - responses: - "200": - application/json: [{"_organizationId": "", "_parentId": "", "identifier": "", "name": ""}, {"_organizationId": "", "_parentId": "", "identifier": "", "name": ""}, {"_organizationId": "", "_parentId": "", "identifier": "", "name": ""}] - EnvironmentsControllerV1_getCurrentEnvironment: - speakeasy-default-environments-controller-v1-get-current-environment: - responses: - "200": - application/json: {"_organizationId": "", "_parentId": "", "identifier": "", "name": ""} - EnvironmentsControllerV1_listOrganizationApiKeys: - speakeasy-default-environments-controller-v1-list-organization-api-keys: - responses: - "200": - application/json: [{"_userId": "", "key": ""}, {"_userId": "", "key": ""}, {"_userId": "", "key": ""}] ->>>>>>> Stashed changes - ExecutionDetailsController_getExecutionDetailsForNotification: - speakeasy-default-execution-details-controller-get-execution-details-for-notification: - parameters: - query: -<<<<<<< Updated upstream - notificationId: "" - subscriberId: "" - responses: - "200": - application/json: [] - FeedsController_createFeed: - speakeasy-default-feeds-controller-create-feed: - requestBody: - application/json: {"name": ""} - responses: - "201": - application/json: {"data": [], "hasMore": true, "page": "4893.82", "pageSize": "6384.24"} - FeedsController_deleteFeedById: - speakeasy-default-feeds-controller-delete-feed-by-id: - parameters: - path: - feedId: "" - responses: - "200": - application/json: [] - FeedsController_getFeeds: - speakeasy-default-feeds-controller-get-feeds: - responses: - "200": - application/json: [] - IntegrationsController_createIntegration: - speakeasy-default-integrations-controller-create-integration: - requestBody: - application/json: {"channel": "sms", "providerId": ""} - responses: - "201": - application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "chat", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""} -======= - notificationId: "" - subscriberId: "" - responses: - "200": - application/json: [{"_environmentId": "", "_jobId": "", "_notificationId": "", "_notificationTemplateId": "", "_organizationId": "", "_subscriberId": "", "channel": "custom", "detail": "", "isRetry": true, "isTest": true, "source": "Credentials", "status": "Pending", "transactionId": ""}] - IntegrationsController_createIntegration: - speakeasy-default-integrations-controller-create-integration: - requestBody: - application/json: {"channel": "sms", "providerId": ""} - responses: - "201": - application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "sms", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""} ->>>>>>> Stashed changes - IntegrationsController_removeIntegration: - speakeasy-default-integrations-controller-remove-integration: - parameters: - path: -<<<<<<< Updated upstream - integrationId: "" - responses: - "200": - application/json: [] -======= - integrationId: "" - responses: - "200": - application/json: [{"_environmentId": "", "_organizationId": "", "active": false, "channel": "email", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "in_app", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""}] ->>>>>>> Stashed changes - IntegrationsController_listIntegrations: - speakeasy-default-integrations-controller-list-integrations: - responses: - "200": -<<<<<<< Updated upstream - application/json: [] -======= - application/json: [{"_environmentId": "", "_organizationId": "", "active": false, "channel": "chat", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": true, "channel": "chat", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "in_app", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""}] ->>>>>>> Stashed changes - IntegrationsController_getActiveIntegrations: - speakeasy-default-integrations-controller-get-active-integrations: - responses: - "200": -<<<<<<< Updated upstream - application/json: [] -======= - application/json: [{"_environmentId": "", "_organizationId": "", "active": true, "channel": "in_app", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "push", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}, {"_environmentId": "", "_organizationId": "", "active": false, "channel": "chat", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""}] ->>>>>>> Stashed changes - IntegrationsController_setIntegrationAsPrimary: - speakeasy-default-integrations-controller-set-integration-as-primary: - parameters: - path: -<<<<<<< Updated upstream - integrationId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "push", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""} -======= - integrationId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "active": true, "channel": "sms", "deleted": false, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": true, "providerId": ""} ->>>>>>> Stashed changes - IntegrationsController_updateIntegrationById: - speakeasy-default-integrations-controller-update-integration-by-id: - parameters: - path: -<<<<<<< Updated upstream - integrationId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "in_app", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""} -======= - integrationId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "active": false, "channel": "sms", "deleted": true, "deletedAt": "", "deletedBy": "", "identifier": "", "name": "", "primary": false, "providerId": ""} ->>>>>>> Stashed changes - IntegrationsController_getWebhookSupportStatus: - speakeasy-default-integrations-controller-get-webhook-support-status: - parameters: - path: -<<<<<<< Updated upstream - providerOrIntegrationId: "" - responses: - "200": - application/json: false - LayoutsController_PropertyDescriptor: - speakeasy-default-layouts-controller-property-descriptor: - responses: - "201": - application/json: {"_id": ""} - LayoutsController_deleteLayout: - speakeasy-default-layouts-controller-delete-layout: - parameters: - path: - layoutId: "" - LayoutsController_listLayouts: - speakeasy-default-layouts-controller-list-layouts: {} - LayoutsController_getLayout: - speakeasy-default-layouts-controller-get-layout: - parameters: - path: - layoutId: "" - responses: - "200": - application/json: {"_creatorId": "", "_environmentId": "", "_organizationId": "", "channel": "email", "content": "", "contentType": "", "identifier": "", "isDefault": true, "isDeleted": true, "name": ""} - LayoutsController_setDefaultLayout: - speakeasy-default-layouts-controller-set-default-layout: - parameters: - path: - layoutId: "" - LayoutsController_updateLayout: - speakeasy-default-layouts-controller-update-layout: - parameters: - path: - layoutId: "" - requestBody: - application/json: {"identifier": ""} - responses: - "200": - application/json: {"_creatorId": "", "_environmentId": "", "_organizationId": "", "channel": "push", "content": "", "contentType": "", "identifier": "", "isDefault": true, "isDeleted": true, "name": ""} -======= - providerOrIntegrationId: "" - responses: - "200": - application/json: true ->>>>>>> Stashed changes - MessagesController_deleteMessage: - speakeasy-default-messages-controller-delete-message: - parameters: - path: -<<<<<<< Updated upstream - messageId: "" - responses: - "200": - application/json: {"acknowledged": true, "status": "deleted"} -======= - messageId: "" - responses: - "200": - application/json: {"acknowledged": false, "status": "deleted"} ->>>>>>> Stashed changes - MessagesController_deleteMessagesByTransactionId: - speakeasy-default-messages-controller-delete-messages-by-transaction-id: - parameters: - path: -<<<<<<< Updated upstream - transactionId: "" -======= - transactionId: "" ->>>>>>> Stashed changes - query: {} - MessagesController_getMessages: - speakeasy-default-messages-controller-get-messages: - responses: - "200": -<<<<<<< Updated upstream - application/json: {"data": [], "hasMore": false, "page": "9451.91", "pageSize": "9198.31"} -======= - application/json: {"data": [""], "hasMore": false, "page": "3129.93", "pageSize": "3234.02"} ->>>>>>> Stashed changes - NotificationGroupsController_createNotificationGroup: - speakeasy-default-notification-groups-controller-create-notification-group: - requestBody: - application/json: {"name": ""} - responses: - "201": -<<<<<<< Updated upstream - application/json: {"_environmentId": "", "_organizationId": "", "name": ""} -======= - application/json: {"_environmentId": "", "_organizationId": "", "name": ""} ->>>>>>> Stashed changes - NotificationGroupsController_deleteNotificationGroup: - speakeasy-default-notification-groups-controller-delete-notification-group: - parameters: - path: - id: "" - responses: - "200": -<<<<<<< Updated upstream - application/json: {"acknowledged": true, "status": "deleted"} -======= - application/json: {"acknowledged": false, "status": "deleted"} ->>>>>>> Stashed changes - NotificationGroupsController_listNotificationGroups: - speakeasy-default-notification-groups-controller-list-notification-groups: - responses: - "200": -<<<<<<< Updated upstream - application/json: [] -======= - application/json: [{"_environmentId": "", "_organizationId": "", "name": ""}, {"_environmentId": "", "_organizationId": "", "name": ""}, {"_environmentId": "", "_organizationId": "", "name": ""}] ->>>>>>> Stashed changes - NotificationGroupsController_getNotificationGroup: - speakeasy-default-notification-groups-controller-get-notification-group: - parameters: - path: - id: "" - responses: - "200": -<<<<<<< Updated upstream - application/json: {"_environmentId": "", "_organizationId": "", "name": ""} -======= - application/json: {"_environmentId": "", "_organizationId": "", "name": ""} ->>>>>>> Stashed changes - NotificationGroupsController_updateNotificationGroup: - speakeasy-default-notification-groups-controller-update-notification-group: - parameters: - path: - id: "" - requestBody: - application/json: {"name": ""} - responses: - "200": -<<<<<<< Updated upstream - application/json: {"_environmentId": "", "_organizationId": "", "name": ""} -======= - application/json: {"_environmentId": "", "_organizationId": "", "name": ""} ->>>>>>> Stashed changes - NotificationsController_listNotifications: - speakeasy-default-notifications-controller-list-notifications: - parameters: - query: -<<<<<<< Updated upstream - channels: [] - templates: [] - emails: [] - search: "" - subscriberIds: [] - responses: - "200": - application/json: {"data": [], "hasMore": false, "page": "998.95", "pageSize": "5472.72"} -======= - channels: ["sms", "chat", "in_app"] - templates: [] - emails: [] - search: "" - subscriberIds: ["", ""] - responses: - "200": - application/json: {"data": ["", ""], "hasMore": true, "page": "7183.03", "pageSize": "861.40"} ->>>>>>> Stashed changes - NotificationsController_getNotification: - speakeasy-default-notifications-controller-get-notification: - parameters: - path: -<<<<<<< Updated upstream - notificationId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "transactionId": ""} -======= - notificationId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "transactionId": ""} ->>>>>>> Stashed changes - NotificationsController_getActivityGraphStats: - speakeasy-default-notifications-controller-get-activity-graph-stats: - responses: - "200": -<<<<<<< Updated upstream - application/json: [] -======= - application/json: [{"_id": "", "channels": ["push"], "count": "401.93", "templates": [""]}] ->>>>>>> Stashed changes - NotificationsController_getActivityStats: - speakeasy-default-notifications-controller-get-activity-stats: - responses: - "200": -<<<<<<< Updated upstream - application/json: {"monthlySent": "3704.56", "weeklySent": "9451.91"} - EEOrganizationController_renameOrganization: - speakeasy-default-EE-organization-controller-rename-organization: - requestBody: - application/json: {"name": ""} - responses: - "200": - application/json: {"name": ""} - EEOrganizationController_getMyOrganization: - speakeasy-default-EE-organization-controller-get-my-organization: - responses: - "200": - application/json: {"branding": {"color": "grey", "contentBackground": "", "fontColor": "", "logo": ""}, "name": ""} - EEOrganizationController_updateBrandingDetails: - speakeasy-default-EE-organization-controller-update-branding-details: - requestBody: - application/json: {"color": "fuchsia", "contentBackground": "", "fontColor": "", "logo": ""} - responses: - "200": - application/json: {"color": "red", "contentBackground": "", "fontColor": "", "logo": ""} - SubscribersController_createSubscriber: - speakeasy-default-subscribers-controller-create-subscriber: - requestBody: - application/json: {"subscriberId": ""} - responses: - "201": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} - SubscribersController_bulkCreateSubscribers: - speakeasy-default-subscribers-controller-bulk-create-subscribers: - requestBody: - application/json: {"subscribers": []} -======= - application/json: {"monthlySent": "3704.57", "weeklySent": "9198.30"} - SubscribersController_createSubscriber: - speakeasy-default-subscribers-controller-create-subscriber: - requestBody: - application/json: {"subscriberId": ""} - responses: - "201": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} - SubscribersController_bulkCreateSubscribers: - speakeasy-default-subscribers-controller-bulk-create-subscribers: - requestBody: - application/json: {"subscribers": [""]} ->>>>>>> Stashed changes - SubscribersController_removeSubscriber: - speakeasy-default-subscribers-controller-remove-subscriber: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - responses: - "200": - application/json: {"acknowledged": true, "status": "deleted"} -======= - subscriberId: "" - responses: - "200": - application/json: {"acknowledged": false, "status": "deleted"} ->>>>>>> Stashed changes - SubscribersController_listSubscribers: - speakeasy-default-subscribers-controller-list-subscribers: - responses: - "200": -<<<<<<< Updated upstream - application/json: {"data": [], "hasMore": false, "page": "998.95", "pageSize": "5472.72"} -======= - application/json: {"data": [{"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""}, {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""}, {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""}], "hasMore": true, "page": "1528.38", "pageSize": "6355.32"} ->>>>>>> Stashed changes - SubscribersController_getSubscriber: - speakeasy-default-subscribers-controller-get-subscriber: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} -======= - subscriberId: "" - query: {} - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} ->>>>>>> Stashed changes - SubscribersController_updateSubscriber: - speakeasy-default-subscribers-controller-update-subscriber: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} -======= - subscriberId: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} ->>>>>>> Stashed changes - SubscribersController_modifySubscriberChannel: - speakeasy-default-subscribers-controller-modify-subscriber-channel: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - requestBody: - application/json: {"credentials": {"webhookUrl": ""}, "providerId": "3462.44"} - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} -======= - subscriberId: "" - requestBody: - application/json: {"credentials": {"webhookUrl": "https://our-sonnet.net/"}, "providerId": "zulip"} - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": false, "subscriberId": "", "updatedAt": ""} ->>>>>>> Stashed changes - SubscribersController_deleteSubscriberCredentials: - speakeasy-default-subscribers-controller-delete-subscriber-credentials: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - providerId: "" -======= - subscriberId: "" - providerId: "" ->>>>>>> Stashed changes - SubscribersController_updateSubscriberChannel: - speakeasy-default-subscribers-controller-update-subscriber-channel: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - requestBody: - application/json: {"credentials": {"webhookUrl": ""}, "providerId": "8574.78"} - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} -======= - subscriberId: "" - requestBody: - application/json: {"credentials": {"webhookUrl": "https://passionate-flu.org"}, "providerId": "pushpad"} - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} ->>>>>>> Stashed changes - SubscribersController_chatAccessOauth: - speakeasy-default-subscribers-controller-chat-access-oauth: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - providerId: "" - query: - hmacHash: "" - environmentId: "" -======= - subscriberId: "" - providerId: "" - query: - hmacHash: "" - environmentId: "" ->>>>>>> Stashed changes - SubscribersController_chatOauthCallback: - speakeasy-default-subscribers-controller-chat-oauth-callback: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - providerId: "" - query: - code: "" - hmacHash: "" - environmentId: "" -======= - subscriberId: "" - providerId: "" - query: - code: "" - hmacHash: "" - environmentId: "" ->>>>>>> Stashed changes - SubscribersController_markAllUnreadAsRead: - speakeasy-default-subscribers-controller-mark-all-unread-as-read: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" -======= - subscriberId: "" ->>>>>>> Stashed changes - requestBody: - application/json: {"markAs": "seen"} - responses: - "201": -<<<<<<< Updated upstream - application/json: "9412.34" -======= - application/json: "4603.37" ->>>>>>> Stashed changes - SubscribersController_markMessagesAs: - speakeasy-default-subscribers-controller-mark-messages-as: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - requestBody: - application/json: {"markAs": "seen", "messageId": ""} - responses: - "201": - application/json: [] -======= - subscriberId: "" - requestBody: - application/json: {"markAs": "seen", "messageId": []} ->>>>>>> Stashed changes - SubscribersController_markActionAsSeen: - speakeasy-default-subscribers-controller-mark-action-as-seen: - parameters: - path: -<<<<<<< Updated upstream - messageId: "" - type: "" - subscriberId: "" -======= - messageId: "" - type: "" - subscriberId: "" ->>>>>>> Stashed changes - requestBody: - application/json: {"status": "done"} - responses: - "201": -<<<<<<< Updated upstream - application/json: {"_environmentId": "", "_messageTemplateId": "", "_notificationId": "", "_organizationId": "", "_subscriberId": "", "_templateId": "", "channel": "email", "content": {"content": "", "type": "button"}, "createdAt": "", "cta": {}, "errorId": "", "errorText": "", "read": true, "seen": false, "status": "sent", "transactionId": ""} -======= - application/json: {"_environmentId": "", "_messageTemplateId": "", "_notificationId": "", "_organizationId": "", "_subscriberId": "", "_templateId": "", "channel": "sms", "content": "", "createdAt": "", "cta": {}, "errorId": "", "errorText": "", "read": true, "seen": true, "status": "warning", "transactionId": ""} ->>>>>>> Stashed changes - SubscribersController_getNotificationsFeed: - "": - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" -======= - subscriberId: "" ->>>>>>> Stashed changes - query: - payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=" - responses: - "200": -<<<<<<< Updated upstream - application/json: {"data": [], "hasMore": false, "page": "9451.91", "pageSize": "9198.31"} -======= - application/json: {"data": [{"data": ["", "", ""], "hasMore": true, "page": "3234.02", "pageSize": "909.16"}], "hasMore": false, "page": "6695.15", "pageSize": "1530.93"} ->>>>>>> Stashed changes - SubscribersController_getUnseenCount: - speakeasy-default-subscribers-controller-get-unseen-count: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - query: - seen: true - limit: "4322.81" - responses: - "200": - application/json: {"count": "4327.98"} -======= - subscriberId: "" - query: - seen: true - limit: "4327.98" - responses: - "200": - application/json: {"count": "8808.14"} ->>>>>>> Stashed changes - SubscribersController_updateSubscriberOnlineFlag: - speakeasy-default-subscribers-controller-update-subscriber-online-flag: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" -======= - subscriberId: "" ->>>>>>> Stashed changes - requestBody: - application/json: {"isOnline": false} - responses: - "200": -<<<<<<< Updated upstream - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} -======= - application/json: {"_environmentId": "", "_organizationId": "", "createdAt": "", "deleted": true, "subscriberId": "", "updatedAt": ""} ->>>>>>> Stashed changes - SubscribersController_listSubscriberPreferences: - speakeasy-default-subscribers-controller-list-subscriber-preferences: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - responses: - "200": - application/json: [] -======= - subscriberId: "" - query: {} - responses: - "200": - application/json: [{"preference": {"enabled": false}, "template": {"_id": "", "critical": false, "name": "", "triggers": []}}, {"preference": {"enabled": true}, "template": {"_id": "", "critical": true, "name": "", "triggers": ["", ""]}}, {"preference": {"enabled": false}, "template": {"_id": "", "critical": true, "name": "", "triggers": ["", ""]}}] ->>>>>>> Stashed changes - SubscribersController_getSubscriberPreferenceByLevel: - speakeasy-default-subscribers-controller-get-subscriber-preference-by-level: - parameters: - path: -<<<<<<< Updated upstream - parameter: "Topic" - subscriberId: "" - responses: - "200": - application/json: [] -======= - parameter: "template" - subscriberId: "" - query: {} - responses: - "200": - application/json: [{"preference": {"enabled": true}}] ->>>>>>> Stashed changes - SubscribersController_updateSubscriberPreference: - speakeasy-default-subscribers-controller-update-subscriber-preference: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - parameter: "" - responses: - "200": - application/json: {"preference": {"enabled": false}, "template": {"_id": "", "critical": true, "name": "", "triggers": []}} -======= - subscriberId: "" - parameter: "" - responses: - "200": - application/json: {"preference": {"enabled": false}, "template": {"_id": "", "critical": false, "name": "", "triggers": [""]}} ->>>>>>> Stashed changes - SubscribersController_updateSubscriberGlobalPreferences: - speakeasy-default-subscribers-controller-update-subscriber-global-preferences: - parameters: - path: -<<<<<<< Updated upstream - subscriberId: "" - responses: - "200": - application/json: {"preference": {"enabled": false}, "template": {"_id": "", "critical": false, "name": "", "triggers": []}} - TenantController_createTenant: - speakeasy-default-tenant-controller-create-tenant: - requestBody: - application/json: {"identifier": "", "name": ""} - responses: - "200": - application/json: {"_environmentId": "", "_id": "", "createdAt": "", "identifier": "", "updatedAt": ""} - TenantController_removeTenant: - speakeasy-default-tenant-controller-remove-tenant: - parameters: - path: - identifier: "" - TenantController_listTenants: - speakeasy-default-tenant-controller-list-tenants: - responses: - "200": - application/json: {"data": [], "hasMore": false, "page": "998.95", "pageSize": "5472.72"} - TenantController_getTenantById: - speakeasy-default-tenant-controller-get-tenant-by-id: - parameters: - path: - identifier: "" - responses: - "200": - application/json: {"_environmentId": "", "_id": "", "createdAt": "", "identifier": "", "updatedAt": ""} - TenantController_updateTenant: - speakeasy-default-tenant-controller-update-tenant: - parameters: - path: - identifier: "" - responses: - "200": - application/json: {"_environmentId": "", "_id": "", "createdAt": "", "identifier": "", "updatedAt": ""} -======= - subscriberId: "" - responses: - "200": - application/json: {"preference": {"enabled": true}, "template": {"_id": "", "critical": true, "name": "", "triggers": [""]}} ->>>>>>> Stashed changes - TopicsController_createTopic: - speakeasy-default-topics-controller-create-topic: - requestBody: - application/json: {"key": "", "name": ""} - responses: - "201": - application/json: {"key": ""} - TopicsController_deleteTopic: - speakeasy-default-topics-controller-delete-topic: - parameters: - path: - topicKey: "" - TopicsController_listTopics: - speakeasy-default-topics-controller-list-topics: - responses: - "200": -<<<<<<< Updated upstream - application/json: {"data": [], "page": "7685.78", "pageSize": "998.95", "totalCount": "5472.72"} -======= - application/json: {"data": [{"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": ["", ""]}, {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": ["", ""]}, {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": []}], "page": "2297.17", "pageSize": "1528.38", "totalCount": "6355.32"} ->>>>>>> Stashed changes - TopicsController_renameTopic: - speakeasy-default-topics-controller-rename-topic: - parameters: - path: - topicKey: "" - requestBody: - application/json: {"name": ""} - responses: - "200": -<<<<<<< Updated upstream - application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": []} -======= - application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": ["", "", ""]} ->>>>>>> Stashed changes - TopicsController_getTopic: - speakeasy-default-topics-controller-get-topic: - parameters: - path: - topicKey: "" - responses: - "200": -<<<<<<< Updated upstream - application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": []} -======= - application/json: {"_environmentId": "", "_organizationId": "", "key": "", "name": "", "subscribers": [""]} ->>>>>>> Stashed changes - TopicsController_addSubscribers: - speakeasy-default-topics-controller-add-subscribers: - parameters: - path: - topicKey: "" - requestBody: -<<<<<<< Updated upstream - application/json: {"subscribers": []} -======= - application/json: {"subscribers": ["", "", ""]} ->>>>>>> Stashed changes - TopicsController_removeSubscribers: - speakeasy-default-topics-controller-remove-subscribers: - parameters: - path: - topicKey: "" - requestBody: -<<<<<<< Updated upstream - application/json: {"subscribers": []} -======= - application/json: {"subscribers": ["", ""]} ->>>>>>> Stashed changes - TopicsController_getTopicSubscriber: - speakeasy-default-topics-controller-get-topic-subscriber: - parameters: - path: -<<<<<<< Updated upstream - externalSubscriberId: "" - topicKey: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "_subscriberId": "", "_topicId": "", "externalSubscriberId": "", "topicKey": ""} - WorkflowController_create: - speakeasy-default-workflow-controller-create: - requestBody: - application/json: {"name": "", "notificationGroupId": "", "steps": []} - responses: - "201": - application/json: {"_creatorId": "", "_environmentId": "", "_notificationGroupId": "", "_organizationId": "", "active": true, "critical": false, "deleted": false, "deletedAt": "", "deletedBy": "", "description": "Synchronised full-range emulation", "draft": true, "name": "", "steps": [], "tags": [], "triggers": []} - WorkflowController_deleteWorkflowById: - speakeasy-default-workflow-controller-delete-workflow-by-id: - parameters: - path: - workflowId: "" - responses: - "200": - application/json: {"data": true} - WorkflowController_listWorkflows: - speakeasy-default-workflow-controller-list-workflows: - responses: - "200": - application/json: {"data": [], "page": "7685.78", "pageSize": "998.95", "totalCount": "5472.72"} - WorkflowController_getWorkflowById: - speakeasy-default-workflow-controller-get-workflow-by-id: - parameters: - path: - workflowId: "" - responses: - "200": - application/json: {"_creatorId": "", "_environmentId": "", "_notificationGroupId": "", "_organizationId": "", "active": false, "critical": true, "deleted": true, "deletedAt": "", "deletedBy": "", "description": "Programmable dynamic Graphic Interface", "draft": false, "name": "", "steps": [], "tags": [], "triggers": []} - WorkflowController_updateWorkflowById: - speakeasy-default-workflow-controller-update-workflow-by-id: - parameters: - path: - workflowId: "" - requestBody: - application/json: {"name": "", "notificationGroupId": ""} - responses: - "200": - application/json: {"_creatorId": "", "_environmentId": "", "_notificationGroupId": "", "_organizationId": "", "active": false, "critical": true, "deleted": true, "deletedAt": "", "deletedBy": "", "description": "Advanced encompassing orchestration", "draft": false, "name": "", "steps": [], "tags": [], "triggers": []} - WorkflowController_getWorkflowVariables: - speakeasy-default-workflow-controller-get-workflow-variables: - responses: - "200": - application/json: {} - WorkflowController_updateActiveStatus: - speakeasy-default-workflow-controller-update-active-status: - parameters: - path: - workflowId: "" - requestBody: - application/json: {"active": false} - responses: - "200": - application/json: {"_creatorId": "", "_environmentId": "", "_notificationGroupId": "", "_organizationId": "", "active": true, "critical": true, "deleted": false, "deletedAt": "", "deletedBy": "", "description": "Future-proofed next generation workforce", "draft": false, "name": "", "steps": [], "tags": [], "triggers": []} -======= - externalSubscriberId: "" - topicKey: "" - responses: - "200": - application/json: {"_environmentId": "", "_organizationId": "", "_subscriberId": "", "_topicId": "", "externalSubscriberId": "", "topicKey": ""} ->>>>>>> Stashed changes diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 43312b36..c18e2389 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -1,6 +1,7 @@ configVersion: 2.0.0 generation: sdkClassName: Novu + maintainOpenAPIOrder: true usageSnippets: optionalPropertyRendering: withExample useClassNamesForArrayFields: true @@ -12,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false typescript: - version: 0.0.1-alpha.11 + version: 0.0.1-alpha.13 additionalDependencies: dependencies: {} devDependencies: {} From 18a8e91e1dd3321925bf96bcd149bd1d44fd4c88 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:37:28 +0100 Subject: [PATCH 03/12] relaunch --- .speakeasy/gen.lock | 1007 +++ .speakeasy/temp/applied_HkXoAbCOKh.yaml | 8848 +++++++++++++++++++ .speakeasy/temp/applied_MAxCyLGLwa.yaml | 8848 +++++++++++++++++++ .speakeasy/temp/applied_PRNWFJIfIy.yaml | 8848 +++++++++++++++++++ .speakeasy/temp/applied_oLKtLpgDDo.yaml | 8848 +++++++++++++++++++ .speakeasy/temp/downloaded_KiKCSXnkWs.yaml | 9166 ++++++++++++++++++++ .speakeasy/temp/downloaded_UTufwKwdmv.yaml | 9166 ++++++++++++++++++++ .speakeasy/temp/downloaded_cXfUyUrcKj.yaml | 9166 ++++++++++++++++++++ .speakeasy/temp/downloaded_dDzgnLtqbI.yaml | 9166 ++++++++++++++++++++ .speakeasy/temp/overlay_OzyUuenxwp.yaml | 8848 +++++++++++++++++++ .speakeasy/temp/overlay_ZRSXyvupfe.yaml | 8848 +++++++++++++++++++ .speakeasy/temp/overlay_fZoitFDeAQ.yaml | 8848 +++++++++++++++++++ .speakeasy/temp/overlay_hpRiUsGiJG.yaml | 8848 +++++++++++++++++++ 13 files changed, 108455 insertions(+) create mode 100644 .speakeasy/gen.lock create mode 100644 .speakeasy/temp/applied_HkXoAbCOKh.yaml create mode 100644 .speakeasy/temp/applied_MAxCyLGLwa.yaml create mode 100644 .speakeasy/temp/applied_PRNWFJIfIy.yaml create mode 100644 .speakeasy/temp/applied_oLKtLpgDDo.yaml create mode 100644 .speakeasy/temp/downloaded_KiKCSXnkWs.yaml create mode 100644 .speakeasy/temp/downloaded_UTufwKwdmv.yaml create mode 100644 .speakeasy/temp/downloaded_cXfUyUrcKj.yaml create mode 100644 .speakeasy/temp/downloaded_dDzgnLtqbI.yaml create mode 100644 .speakeasy/temp/overlay_OzyUuenxwp.yaml create mode 100644 .speakeasy/temp/overlay_ZRSXyvupfe.yaml create mode 100644 .speakeasy/temp/overlay_fZoitFDeAQ.yaml create mode 100644 .speakeasy/temp/overlay_hpRiUsGiJG.yaml diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock new file mode 100644 index 00000000..e1805c0c --- /dev/null +++ b/.speakeasy/gen.lock @@ -0,0 +1,1007 @@ +lockVersion: 2.0.0 +id: 6bff3a53-3f0b-40b4-942f-ff70dc583ae5 +management: + docChecksum: 23a1a47a0223e2cc7c8f22cbc9c329a8 + docVersion: "1.0" + speakeasyVersion: 1.445.2 + generationVersion: 2.461.4 + releaseVersion: 0.0.1-alpha.13 + configChecksum: e9a6d515e982f92b4c9784dd8e13c989 + published: true +features: + typescript: + additionalDependencies: 0.1.0 + constsAndDefaults: 0.1.11 + core: 3.18.6 + defaultEnabledRetries: 0.1.0 + deprecations: 2.81.1 + enumUnions: 0.1.0 + envVarSecurityUsage: 0.1.2 + examples: 2.81.4 + flattening: 2.82.0 + globalSecurity: 2.82.11 + globalSecurityCallbacks: 0.1.0 + globalSecurityFlattening: 0.1.0 + globalServerURLs: 2.82.4 + groups: 2.81.2 + nameOverrides: 2.81.2 + nullables: 0.1.0 + pagination: 2.82.7 + responseFormat: 0.2.3 + retries: 2.83.0 + sdkHooks: 0.2.0 + tests: 0.7.0 + unions: 2.85.8 +generatedFiles: + - .eslintrc.cjs + - .gitattributes + - .npmignore + - FUNCTIONS.md + - RUNTIMES.md + - USAGE.md + - docs/lib/utils/retryconfig.md + - docs/models/components/activitiesresponsedto.md + - docs/models/components/activitygraphstatesresponse.md + - docs/models/components/activitynotificationresponsedto.md + - docs/models/components/activitynotificationresponsedtochannels.md + - docs/models/components/activitynotificationsubscriberresponsedto.md + - docs/models/components/activitynotificationtemplateresponsedto.md + - docs/models/components/activitystatsresponsedto.md + - docs/models/components/actor.md + - docs/models/components/addsubscribersrequestdto.md + - docs/models/components/apikey.md + - docs/models/components/backoffunit.md + - docs/models/components/bulksubscribercreatedto.md + - docs/models/components/bulktriggereventdto.md + - docs/models/components/channel.md + - docs/models/components/channelcredentials.md + - docs/models/components/channelpreference.md + - docs/models/components/channelpreferencetype.md + - docs/models/components/channels.md + - docs/models/components/channelsettings.md + - docs/models/components/content.md + - docs/models/components/controls.md + - docs/models/components/createintegrationrequestdto.md + - docs/models/components/createintegrationrequestdtochannel.md + - docs/models/components/createnotificationgrouprequestdto.md + - docs/models/components/createsubscriberrequestdto.md + - docs/models/components/createsubscriberrequestdtodata.md + - docs/models/components/createtopicrequestdto.md + - docs/models/components/createtopicresponsedto.md + - docs/models/components/credentialsdto.md + - docs/models/components/data.md + - docs/models/components/databooleandto.md + - docs/models/components/delayregularmetadata.md + - docs/models/components/delayregularmetadatatype.md + - docs/models/components/delayregularmetadataunit.md + - docs/models/components/delayscheduledmetadata.md + - docs/models/components/delayscheduledmetadatatype.md + - docs/models/components/deletemessageresponsedto.md + - docs/models/components/deletemessageresponsedtostatus.md + - docs/models/components/deletenotificationgroupresponsedto.md + - docs/models/components/deletenotificationgroupresponsedtostatus.md + - docs/models/components/deletesubscriberresponsedto.md + - docs/models/components/deletesubscriberresponsedtostatus.md + - docs/models/components/digestregularmetadata.md + - docs/models/components/digestregularmetadatatype.md + - docs/models/components/digesttimedmetadata.md + - docs/models/components/digesttimedmetadatatype.md + - docs/models/components/digesttimedmetadataunit.md + - docs/models/components/emailblock.md + - docs/models/components/emailblockstyles.md + - docs/models/components/emailblocktype.md + - docs/models/components/environmentresponsedto.md + - docs/models/components/executiondetailsresponsedto.md + - docs/models/components/feedid.md + - docs/models/components/feedidentifier.md + - docs/models/components/feedresponsedto.md + - docs/models/components/fieldfilterpart.md + - docs/models/components/filtertopicsresponsedto.md + - docs/models/components/getsubscriberpreferencesresponsedto.md + - docs/models/components/gettopicresponsedto.md + - docs/models/components/integrationresponsedto.md + - docs/models/components/integrationresponsedtochannel.md + - docs/models/components/markallmessageasrequestdto.md + - docs/models/components/markallmessageasrequestdtomarkas.md + - docs/models/components/markas.md + - docs/models/components/markmessageactionasseendto.md + - docs/models/components/markmessageactionasseendtopayload.md + - docs/models/components/markmessageactionasseendtostatus.md + - docs/models/components/messageaction.md + - docs/models/components/messageactionresult.md + - docs/models/components/messageactionresultpayload.md + - docs/models/components/messageactionresulttype.md + - docs/models/components/messageactionstatus.md + - docs/models/components/messagebutton.md + - docs/models/components/messagebuttontype.md + - docs/models/components/messagecta.md + - docs/models/components/messagectadata.md + - docs/models/components/messagectatype.md + - docs/models/components/messageentity.md + - docs/models/components/messageid.md + - docs/models/components/messagemarkasrequestdto.md + - docs/models/components/messageresponsedto.md + - docs/models/components/messageresponsedtochannel.md + - docs/models/components/messageresponsedtooverrides.md + - docs/models/components/messageresponsedtopayload.md + - docs/models/components/messageresponsedtostatus.md + - docs/models/components/messagetemplate.md + - docs/models/components/metadata.md + - docs/models/components/monthlytype.md + - docs/models/components/notificationgroup.md + - docs/models/components/notificationgroupresponsedto.md + - docs/models/components/notificationstep.md + - docs/models/components/notificationstepvariant.md + - docs/models/components/notificationstepvariantmetadata.md + - docs/models/components/notificationstepvariantparentid.md + - docs/models/components/notificationstepvariantreplycallback.md + - docs/models/components/notificationtrigger.md + - docs/models/components/notificationtriggertype.md + - docs/models/components/notificationtriggervariable.md + - docs/models/components/on.md + - docs/models/components/operator.md + - docs/models/components/ordinal.md + - docs/models/components/ordinalvalue.md + - docs/models/components/overrides.md + - docs/models/components/parentid.md + - docs/models/components/payload.md + - docs/models/components/preference.md + - docs/models/components/preferencechannels.md + - docs/models/components/providerid.md + - docs/models/components/removesubscribersrequestdto.md + - docs/models/components/renametopicrequestdto.md + - docs/models/components/renametopicresponsedto.md + - docs/models/components/replycallback.md + - docs/models/components/security.md + - docs/models/components/source.md + - docs/models/components/status.md + - docs/models/components/stepfilter.md + - docs/models/components/stepfiltertype.md + - docs/models/components/subscriberpayloaddto.md + - docs/models/components/subscriberresponsedto.md + - docs/models/components/templateresponse.md + - docs/models/components/tenant.md + - docs/models/components/tenantpayloaddto.md + - docs/models/components/tenantpayloaddtodata.md + - docs/models/components/textalign.md + - docs/models/components/timedconfig.md + - docs/models/components/tlsoptions.md + - docs/models/components/to.md + - docs/models/components/topicdto.md + - docs/models/components/topicpayloaddto.md + - docs/models/components/topicsubscriberdto.md + - docs/models/components/triggereventrequestdto.md + - docs/models/components/triggereventresponsedto.md + - docs/models/components/triggereventresponsedtostatus.md + - docs/models/components/triggereventtoallrequestdto.md + - docs/models/components/triggereventtoallrequestdtoactor.md + - docs/models/components/triggereventtoallrequestdtooverrides.md + - docs/models/components/triggereventtoallrequestdtopayload.md + - docs/models/components/triggereventtoallrequestdtotenant.md + - docs/models/components/type.md + - docs/models/components/unit.md + - docs/models/components/unseencountresponse.md + - docs/models/components/updateintegrationrequestdto.md + - docs/models/components/updatesubscriberchannelrequestdto.md + - docs/models/components/updatesubscriberchannelrequestdtoproviderid.md + - docs/models/components/updatesubscriberglobalpreferencesrequestdto.md + - docs/models/components/updatesubscriberonlineflagrequestdto.md + - docs/models/components/updatesubscriberpreferencerequestdto.md + - docs/models/components/updatesubscriberpreferenceresponsedto.md + - docs/models/components/updatesubscriberrequestdto.md + - docs/models/components/updatesubscriberrequestdtodata.md + - docs/models/components/value.md + - docs/models/components/weekdays.md + - docs/models/components/workflowintegrationstatus.md + - docs/models/components/workflowresponse.md + - docs/models/components/workflowresponsedata.md + - docs/models/operations/channel.md + - docs/models/operations/channels.md + - docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md + - docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md + - docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md + - docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md + - docs/models/operations/eventscontrollercancelrequest.md + - docs/models/operations/eventscontrollercancelresponse.md + - docs/models/operations/eventscontrollertriggerbulkresponse.md + - docs/models/operations/eventscontrollertriggerresponse.md + - docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md + - docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md + - docs/models/operations/integrationscontrollercreateintegrationresponse.md + - docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md + - docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md + - docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md + - docs/models/operations/integrationscontrollerlistintegrationsresponse.md + - docs/models/operations/integrationscontrollerremoveintegrationrequest.md + - docs/models/operations/integrationscontrollerremoveintegrationresponse.md + - docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md + - docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md + - docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md + - docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md + - docs/models/operations/messagescontrollerdeletemessagerequest.md + - docs/models/operations/messagescontrollerdeletemessageresponse.md + - docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md + - docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md + - docs/models/operations/messagescontrollergetmessagesrequest.md + - docs/models/operations/messagescontrollergetmessagesresponse.md + - docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md + - docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md + - docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md + - docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md + - docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md + - docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md + - docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md + - docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md + - docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md + - docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md + - docs/models/operations/notificationscontrollergetactivitystatsresponse.md + - docs/models/operations/notificationscontrollergetnotificationrequest.md + - docs/models/operations/notificationscontrollergetnotificationresponse.md + - docs/models/operations/notificationscontrollerlistnotificationsrequest.md + - docs/models/operations/notificationscontrollerlistnotificationsresponse.md + - docs/models/operations/parameter.md + - docs/models/operations/queryparamchannel.md + - docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md + - docs/models/operations/subscriberscontrollerchataccessoauthrequest.md + - docs/models/operations/subscriberscontrollerchataccessoauthresponse.md + - docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md + - docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md + - docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md + - docs/models/operations/subscriberscontrollercreatesubscriberresponse.md + - docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md + - docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md + - docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md + - docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md + - docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md + - docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md + - docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md + - docs/models/operations/subscriberscontrollergetsubscriberrequest.md + - docs/models/operations/subscriberscontrollergetsubscriberresponse.md + - docs/models/operations/subscriberscontrollergetunseencountrequest.md + - docs/models/operations/subscriberscontrollergetunseencountresponse.md + - docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md + - docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md + - docs/models/operations/subscriberscontrollerlistsubscribersrequest.md + - docs/models/operations/subscriberscontrollerlistsubscribersresponse.md + - docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md + - docs/models/operations/subscriberscontrollermarkactionasseenrequest.md + - docs/models/operations/subscriberscontrollermarkactionasseenresponse.md + - docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md + - docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md + - docs/models/operations/subscriberscontrollermarkmessagesasrequest.md + - docs/models/operations/subscriberscontrollermarkmessagesasresponse.md + - docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md + - docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md + - docs/models/operations/subscriberscontrollerremovesubscriberrequest.md + - docs/models/operations/subscriberscontrollerremovesubscriberresponse.md + - docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md + - docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md + - docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md + - docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md + - docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md + - docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md + - docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md + - docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md + - docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md + - docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md + - docs/models/operations/topicscontrolleraddsubscribersrequest.md + - docs/models/operations/topicscontrolleraddsubscribersresponse.md + - docs/models/operations/topicscontrollercreatetopicresponse.md + - docs/models/operations/topicscontrollerdeletetopicrequest.md + - docs/models/operations/topicscontrollerdeletetopicresponse.md + - docs/models/operations/topicscontrollergettopicrequest.md + - docs/models/operations/topicscontrollergettopicresponse.md + - docs/models/operations/topicscontrollergettopicsubscriberrequest.md + - docs/models/operations/topicscontrollergettopicsubscriberresponse.md + - docs/models/operations/topicscontrollerlisttopicsrequest.md + - docs/models/operations/topicscontrollerlisttopicsresponse.md + - docs/models/operations/topicscontrollerremovesubscribersrequest.md + - docs/models/operations/topicscontrollerremovesubscribersresponse.md + - docs/models/operations/topicscontrollerrenametopicrequest.md + - docs/models/operations/topicscontrollerrenametopicresponse.md + - docs/sdks/apikeys/README.md + - docs/sdks/authentication/README.md + - docs/sdks/credentials/README.md + - docs/sdks/environments/README.md + - docs/sdks/executiondetails/README.md + - docs/sdks/integrations/README.md + - docs/sdks/integrationswebhooks/README.md + - docs/sdks/messages/README.md + - docs/sdks/notifications/README.md + - docs/sdks/notificationsstats/README.md + - docs/sdks/novu/README.md + - docs/sdks/novumessages/README.md + - docs/sdks/novusubscribersnotifications/README.md + - docs/sdks/novutopicssubscribers/README.md + - docs/sdks/preferences/README.md + - docs/sdks/properties/README.md + - docs/sdks/stats/README.md + - docs/sdks/subscribers/README.md + - docs/sdks/subscribersmessages/README.md + - docs/sdks/subscribersnotifications/README.md + - docs/sdks/subscriberspreferences/README.md + - docs/sdks/topics/README.md + - docs/sdks/workflowgroups/README.md + - jsr.json + - package.json + - src/core.ts + - src/funcs/cancel.ts + - src/funcs/environmentsApiKeysList.ts + - src/funcs/environmentsGetAll.ts + - src/funcs/environmentsGetCurrent.ts + - src/funcs/executionDetailsGet.ts + - src/funcs/integrationsCreate.ts + - src/funcs/integrationsDelete.ts + - src/funcs/integrationsList.ts + - src/funcs/integrationsListActive.ts + - src/funcs/integrationsSetPrimary.ts + - src/funcs/integrationsUpdate.ts + - src/funcs/integrationsWebhooksGetStatus.ts + - src/funcs/messagesDelete.ts + - src/funcs/messagesDeleteByTransactionId.ts + - src/funcs/messagesGet.ts + - src/funcs/notificationsGet.ts + - src/funcs/notificationsList.ts + - src/funcs/notificationsStatsGet.ts + - src/funcs/subscribersAuthenticationHandleOauth.ts + - src/funcs/subscribersAuthenticationHandleOauthCallback.ts + - src/funcs/subscribersCreate.ts + - src/funcs/subscribersCreateBulk.ts + - src/funcs/subscribersCredentialsAppend.ts + - src/funcs/subscribersCredentialsDelete.ts + - src/funcs/subscribersCredentialsUpdate.ts + - src/funcs/subscribersDelete.ts + - src/funcs/subscribersGet.ts + - src/funcs/subscribersGetAll.ts + - src/funcs/subscribersMessagesMark.ts + - src/funcs/subscribersMessagesMarkAll.ts + - src/funcs/subscribersMessagesUpdateAsSeen.ts + - src/funcs/subscribersNotificationsGetFeed.ts + - src/funcs/subscribersNotificationsGetUnseenCount.ts + - src/funcs/subscribersPreferencesGet.ts + - src/funcs/subscribersPreferencesGetByLevel.ts + - src/funcs/subscribersPreferencesUpdate.ts + - src/funcs/subscribersPreferencesUpdateGlobal.ts + - src/funcs/subscribersPropertiesUpdateOnlineStatus.ts + - src/funcs/subscribersUpdate.ts + - src/funcs/topicsCreate.ts + - src/funcs/topicsDelete.ts + - src/funcs/topicsGet.ts + - src/funcs/topicsGetAll.ts + - src/funcs/topicsRename.ts + - src/funcs/topicsSubscribersAdd.ts + - src/funcs/topicsSubscribersCheck.ts + - src/funcs/topicsSubscribersRemove.ts + - src/funcs/trigger.ts + - src/funcs/triggerBroadcast.ts + - src/funcs/triggerBulk.ts + - src/funcs/workflowGroupsCreate.ts + - src/funcs/workflowGroupsDelete.ts + - src/funcs/workflowGroupsGet.ts + - src/funcs/workflowGroupsList.ts + - src/funcs/workflowGroupsUpdate.ts + - src/hooks/hooks.ts + - src/hooks/index.ts + - src/hooks/types.ts + - src/index.ts + - src/lib/base64.ts + - src/lib/config.ts + - src/lib/dlv.ts + - src/lib/encodings.ts + - src/lib/files.ts + - src/lib/http.ts + - src/lib/is-plain-object.ts + - src/lib/logger.ts + - src/lib/matchers.ts + - src/lib/primitives.ts + - src/lib/retries.ts + - src/lib/schemas.ts + - src/lib/sdks.ts + - src/lib/security.ts + - src/lib/url.ts + - src/models/components/activitiesresponsedto.ts + - src/models/components/activitygraphstatesresponse.ts + - src/models/components/activitynotificationresponsedto.ts + - src/models/components/activitynotificationsubscriberresponsedto.ts + - src/models/components/activitynotificationtemplateresponsedto.ts + - src/models/components/activitystatsresponsedto.ts + - src/models/components/addsubscribersrequestdto.ts + - src/models/components/apikey.ts + - src/models/components/bulksubscribercreatedto.ts + - src/models/components/bulktriggereventdto.ts + - src/models/components/channelcredentials.ts + - src/models/components/channelpreference.ts + - src/models/components/channelsettings.ts + - src/models/components/createintegrationrequestdto.ts + - src/models/components/createnotificationgrouprequestdto.ts + - src/models/components/createsubscriberrequestdto.ts + - src/models/components/createtopicrequestdto.ts + - src/models/components/createtopicresponsedto.ts + - src/models/components/credentialsdto.ts + - src/models/components/databooleandto.ts + - src/models/components/delayregularmetadata.ts + - src/models/components/delayscheduledmetadata.ts + - src/models/components/deletemessageresponsedto.ts + - src/models/components/deletenotificationgroupresponsedto.ts + - src/models/components/deletesubscriberresponsedto.ts + - src/models/components/digestregularmetadata.ts + - src/models/components/digesttimedmetadata.ts + - src/models/components/emailblock.ts + - src/models/components/emailblockstyles.ts + - src/models/components/environmentresponsedto.ts + - src/models/components/executiondetailsresponsedto.ts + - src/models/components/feedresponsedto.ts + - src/models/components/fieldfilterpart.ts + - src/models/components/filtertopicsresponsedto.ts + - src/models/components/getsubscriberpreferencesresponsedto.ts + - src/models/components/gettopicresponsedto.ts + - src/models/components/index.ts + - src/models/components/integrationresponsedto.ts + - src/models/components/markallmessageasrequestdto.ts + - src/models/components/markmessageactionasseendto.ts + - src/models/components/messageaction.ts + - src/models/components/messageactionresult.ts + - src/models/components/messagebutton.ts + - src/models/components/messagecta.ts + - src/models/components/messagectadata.ts + - src/models/components/messageentity.ts + - src/models/components/messagemarkasrequestdto.ts + - src/models/components/messageresponsedto.ts + - src/models/components/messagetemplate.ts + - src/models/components/notificationgroup.ts + - src/models/components/notificationgroupresponsedto.ts + - src/models/components/notificationstep.ts + - src/models/components/notificationstepvariant.ts + - src/models/components/notificationtrigger.ts + - src/models/components/notificationtriggervariable.ts + - src/models/components/preference.ts + - src/models/components/preferencechannels.ts + - src/models/components/removesubscribersrequestdto.ts + - src/models/components/renametopicrequestdto.ts + - src/models/components/renametopicresponsedto.ts + - src/models/components/security.ts + - src/models/components/stepfilter.ts + - src/models/components/subscriberpayloaddto.ts + - src/models/components/subscriberresponsedto.ts + - src/models/components/templateresponse.ts + - src/models/components/tenantpayloaddto.ts + - src/models/components/timedconfig.ts + - src/models/components/topicdto.ts + - src/models/components/topicpayloaddto.ts + - src/models/components/topicsubscriberdto.ts + - src/models/components/triggereventrequestdto.ts + - src/models/components/triggereventresponsedto.ts + - src/models/components/triggereventtoallrequestdto.ts + - src/models/components/unseencountresponse.ts + - src/models/components/updateintegrationrequestdto.ts + - src/models/components/updatesubscriberchannelrequestdto.ts + - src/models/components/updatesubscriberglobalpreferencesrequestdto.ts + - src/models/components/updatesubscriberonlineflagrequestdto.ts + - src/models/components/updatesubscriberpreferencerequestdto.ts + - src/models/components/updatesubscriberpreferenceresponsedto.ts + - src/models/components/updatesubscriberrequestdto.ts + - src/models/components/workflowresponse.ts + - src/models/errors/httpclienterrors.ts + - src/models/errors/index.ts + - src/models/errors/sdkerror.ts + - src/models/errors/sdkvalidationerror.ts + - src/models/operations/environmentscontrollerv1getcurrentenvironment.ts + - src/models/operations/environmentscontrollerv1listmyenvironments.ts + - src/models/operations/environmentscontrollerv1listorganizationapikeys.ts + - src/models/operations/eventscontrollerbroadcasteventtoall.ts + - src/models/operations/eventscontrollercancel.ts + - src/models/operations/eventscontrollertrigger.ts + - src/models/operations/eventscontrollertriggerbulk.ts + - src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts + - src/models/operations/index.ts + - src/models/operations/integrationscontrollercreateintegration.ts + - src/models/operations/integrationscontrollergetactiveintegrations.ts + - src/models/operations/integrationscontrollergetwebhooksupportstatus.ts + - src/models/operations/integrationscontrollerlistintegrations.ts + - src/models/operations/integrationscontrollerremoveintegration.ts + - src/models/operations/integrationscontrollersetintegrationasprimary.ts + - src/models/operations/integrationscontrollerupdateintegrationbyid.ts + - src/models/operations/messagescontrollerdeletemessage.ts + - src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts + - src/models/operations/messagescontrollergetmessages.ts + - src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts + - src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts + - src/models/operations/notificationgroupscontrollergetnotificationgroup.ts + - src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts + - src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts + - src/models/operations/notificationscontrollergetactivitygraphstats.ts + - src/models/operations/notificationscontrollergetactivitystats.ts + - src/models/operations/notificationscontrollergetnotification.ts + - src/models/operations/notificationscontrollerlistnotifications.ts + - src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts + - src/models/operations/subscriberscontrollerchataccessoauth.ts + - src/models/operations/subscriberscontrollerchatoauthcallback.ts + - src/models/operations/subscriberscontrollercreatesubscriber.ts + - src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts + - src/models/operations/subscriberscontrollergetnotificationsfeed.ts + - src/models/operations/subscriberscontrollergetsubscriber.ts + - src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts + - src/models/operations/subscriberscontrollergetunseencount.ts + - src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts + - src/models/operations/subscriberscontrollerlistsubscribers.ts + - src/models/operations/subscriberscontrollermarkactionasseen.ts + - src/models/operations/subscriberscontrollermarkallunreadasread.ts + - src/models/operations/subscriberscontrollermarkmessagesas.ts + - src/models/operations/subscriberscontrollermodifysubscriberchannel.ts + - src/models/operations/subscriberscontrollerremovesubscriber.ts + - src/models/operations/subscriberscontrollerupdatesubscriber.ts + - src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts + - src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts + - src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts + - src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts + - src/models/operations/topicscontrolleraddsubscribers.ts + - src/models/operations/topicscontrollercreatetopic.ts + - src/models/operations/topicscontrollerdeletetopic.ts + - src/models/operations/topicscontrollergettopic.ts + - src/models/operations/topicscontrollergettopicsubscriber.ts + - src/models/operations/topicscontrollerlisttopics.ts + - src/models/operations/topicscontrollerremovesubscribers.ts + - src/models/operations/topicscontrollerrenametopic.ts + - src/sdk/apikeys.ts + - src/sdk/authentication.ts + - src/sdk/credentials.ts + - src/sdk/environments.ts + - src/sdk/executiondetails.ts + - src/sdk/index.ts + - src/sdk/integrations.ts + - src/sdk/integrationswebhooks.ts + - src/sdk/messages.ts + - src/sdk/notifications.ts + - src/sdk/notificationsstats.ts + - src/sdk/novumessages.ts + - src/sdk/novusubscribersnotifications.ts + - src/sdk/novutopicssubscribers.ts + - src/sdk/preferences.ts + - src/sdk/properties.ts + - src/sdk/sdk.ts + - src/sdk/stats.ts + - src/sdk/subscribers.ts + - src/sdk/subscribersmessages.ts + - src/sdk/subscribersnotifications.ts + - src/sdk/subscriberspreferences.ts + - src/sdk/topics.ts + - src/sdk/workflowgroups.ts + - src/types/blobs.ts + - src/types/constdatetime.ts + - src/types/enums.ts + - src/types/fp.ts + - src/types/index.ts + - src/types/operations.ts + - src/types/rfcdate.ts + - src/types/streams.ts + - tsconfig.json +examples: + EventsController_trigger: + speakeasy-default-events-controller-trigger: + requestBody: + application/json: {"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"topicKey": "", "type": "Topic"}]} + responses: + "201": + application/json: {"acknowledged": true, "status": "processed"} + EventsController_triggerBulk: + speakeasy-default-events-controller-trigger-bulk: + requestBody: + application/json: {"events": [{"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"subscriberId": ""}]}, {"name": "workflow_identifier", "to": []}, {"name": "workflow_identifier", "to": [{"topicKey": "", "type": "Topic"}, {"topicKey": "", "type": "Topic"}]}]} + responses: + "201": + application/json: [{"acknowledged": true, "status": "error"}, {"acknowledged": true, "status": "no_workflow_active_steps_defined"}, {"acknowledged": true, "status": "trigger_not_active"}] + EventsController_broadcastEventToAll: + speakeasy-default-events-controller-broadcast-event-to-all: + requestBody: + application/json: {"name": ""} + responses: + "200": + application/json: {"acknowledged": true, "status": "trigger_not_active"} + EventsController_cancel: + speakeasy-default-events-controller-cancel: + parameters: + path: + transactionId: "" + responses: + "200": + application/json: {"data": true} + EnvironmentsControllerV1_getCurrentEnvironment: + speakeasy-default-environments-controller-v1-get-current-environment: + responses: + "200": + application/json: {"name": "", "_organizationId": "", "identifier": "", "_parentId": ""} + EnvironmentsControllerV1_listMyEnvironments: + speakeasy-default-environments-controller-v1-list-my-environments: + responses: + "200": + application/json: [{"name": "", "_organizationId": "", "identifier": "", "_parentId": ""}] + EnvironmentsControllerV1_listOrganizationApiKeys: + speakeasy-default-environments-controller-v1-list-organization-api-keys: + responses: + "200": + application/json: [{"key": "", "_userId": ""}, {"key": "", "_userId": ""}, {"key": "", "_userId": ""}] + ExecutionDetailsController_getExecutionDetailsForNotification: + speakeasy-default-execution-details-controller-get-execution-details-for-notification: + parameters: + query: + notificationId: "" + subscriberId: "" + responses: + "200": + application/json: [{"_organizationId": "", "_jobId": "", "_environmentId": "", "_notificationId": "", "_notificationTemplateId": "", "_subscriberId": "", "transactionId": "", "channel": "digest", "detail": "", "source": "Payload", "status": "Pending", "isTest": false, "isRetry": true}, {"_organizationId": "", "_jobId": "", "_environmentId": "", "_notificationId": "", "_notificationTemplateId": "", "_subscriberId": "", "transactionId": "", "channel": "push", "detail": "", "source": "Internal", "status": "Warning", "isTest": false, "isRetry": true}] + NotificationsController_listNotifications: + speakeasy-default-notifications-controller-list-notifications: + parameters: + query: + channels: ["sms", "chat", "in_app"] + templates: [] + emails: [] + search: "" + subscriberIds: ["", ""] + responses: + "200": + application/json: {"hasMore": false, "data": [], "pageSize": "7183.03", "page": "861.40"} + NotificationsController_getNotification: + speakeasy-default-notifications-controller-get-notification: + parameters: + path: + notificationId: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "transactionId": ""} + NotificationsController_getActivityStats: + speakeasy-default-notifications-controller-get-activity-stats: + responses: + "200": + application/json: {"weeklySent": "7003.46", "monthlySent": "5588.34"} + NotificationsController_getActivityGraphStats: + speakeasy-default-notifications-controller-get-activity-graph-stats: + responses: + "200": + application/json: [{"_id": "", "count": "5588.34", "templates": ["", ""], "channels": ["push", "sms"]}, {"_id": "", "count": "4508.24", "templates": [""], "channels": []}] + NotificationGroupsController_createNotificationGroup: + speakeasy-default-notification-groups-controller-create-notification-group: + requestBody: + application/json: {"name": ""} + responses: + "201": + application/json: {"name": "", "_environmentId": "", "_organizationId": ""} + NotificationGroupsController_listNotificationGroups: + speakeasy-default-notification-groups-controller-list-notification-groups: + responses: + "200": + application/json: [{"name": "", "_environmentId": "", "_organizationId": ""}, {"name": "", "_environmentId": "", "_organizationId": ""}, {"name": "", "_environmentId": "", "_organizationId": ""}] + NotificationGroupsController_getNotificationGroup: + speakeasy-default-notification-groups-controller-get-notification-group: + parameters: + path: + id: "" + responses: + "200": + application/json: {"name": "", "_environmentId": "", "_organizationId": ""} + NotificationGroupsController_updateNotificationGroup: + speakeasy-default-notification-groups-controller-update-notification-group: + parameters: + path: + id: "" + requestBody: + application/json: {"name": ""} + responses: + "200": + application/json: {"name": "", "_environmentId": "", "_organizationId": ""} + NotificationGroupsController_deleteNotificationGroup: + speakeasy-default-notification-groups-controller-delete-notification-group: + parameters: + path: + id: "" + responses: + "200": + application/json: {"acknowledged": false, "status": "deleted"} + IntegrationsController_listIntegrations: + speakeasy-default-integrations-controller-list-integrations: + responses: + "200": + application/json: [{"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "sms", "active": false, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": true}, {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "in_app", "active": false, "deleted": false, "deletedAt": "", "deletedBy": "", "primary": true}, {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "chat", "active": true, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": false}] + IntegrationsController_createIntegration: + speakeasy-default-integrations-controller-create-integration: + requestBody: + application/json: {"providerId": "", "channel": "sms"} + responses: + "201": + application/json: {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "chat", "active": true, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": true} + IntegrationsController_getActiveIntegrations: + speakeasy-default-integrations-controller-get-active-integrations: + responses: + "200": + application/json: [{"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "email", "active": true, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": true}, {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "chat", "active": false, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": true}, {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "chat", "active": false, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": true}] + IntegrationsController_updateIntegrationById: + speakeasy-default-integrations-controller-update-integration-by-id: + parameters: + path: + integrationId: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "push", "active": false, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": false} + IntegrationsController_removeIntegration: + speakeasy-default-integrations-controller-remove-integration: + parameters: + path: + integrationId: "" + responses: + "200": + application/json: [{"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "chat", "active": true, "deleted": false, "deletedAt": "", "deletedBy": "", "primary": false}, {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "chat", "active": true, "deleted": false, "deletedAt": "", "deletedBy": "", "primary": false}] + IntegrationsController_setIntegrationAsPrimary: + speakeasy-default-integrations-controller-set-integration-as-primary: + parameters: + path: + integrationId: "" + responses: + "200": + application/json: {"_environmentId": "", "_organizationId": "", "name": "", "identifier": "", "providerId": "", "channel": "push", "active": true, "deleted": true, "deletedAt": "", "deletedBy": "", "primary": false} + IntegrationsController_getWebhookSupportStatus: + speakeasy-default-integrations-controller-get-webhook-support-status: + parameters: + path: + providerOrIntegrationId: "" + responses: + "200": + application/json: true + SubscribersController_listSubscribers: + speakeasy-default-subscribers-controller-list-subscribers: + responses: + "200": + application/json: {"page": "4610.08", "hasMore": true, "pageSize": "5984.80", "data": [{"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": true, "createdAt": "", "updatedAt": ""}, {"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": true, "createdAt": "", "updatedAt": ""}]} + SubscribersController_createSubscriber: + speakeasy-default-subscribers-controller-create-subscriber: + requestBody: + application/json: {"subscriberId": ""} + responses: + "201": + application/json: {"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": true, "createdAt": "", "updatedAt": ""} + SubscribersController_getSubscriber: + speakeasy-default-subscribers-controller-get-subscriber: + parameters: + path: + subscriberId: "" + query: {} + responses: + "200": + application/json: {"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": false, "createdAt": "", "updatedAt": ""} + SubscribersController_updateSubscriber: + speakeasy-default-subscribers-controller-update-subscriber: + parameters: + path: + subscriberId: "" + responses: + "200": + application/json: {"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": false, "createdAt": "", "updatedAt": ""} + SubscribersController_removeSubscriber: + speakeasy-default-subscribers-controller-remove-subscriber: + parameters: + path: + subscriberId: "" + responses: + "200": + application/json: {"acknowledged": false, "status": "deleted"} + SubscribersController_bulkCreateSubscribers: + speakeasy-default-subscribers-controller-bulk-create-subscribers: + requestBody: + application/json: {"subscribers": [""]} + SubscribersController_updateSubscriberChannel: + speakeasy-default-subscribers-controller-update-subscriber-channel: + parameters: + path: + subscriberId: "" + requestBody: + application/json: {"providerId": "pushpad", "credentials": {"webhookUrl": "https://grown-worth.name"}} + responses: + "200": + application/json: {"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": true, "createdAt": "", "updatedAt": ""} + SubscribersController_modifySubscriberChannel: + speakeasy-default-subscribers-controller-modify-subscriber-channel: + parameters: + path: + subscriberId: "" + requestBody: + application/json: {"providerId": "zulip", "credentials": {"webhookUrl": "https://talkative-pop.org"}} + responses: + "200": + application/json: {"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": false, "createdAt": "", "updatedAt": ""} + SubscribersController_deleteSubscriberCredentials: + speakeasy-default-subscribers-controller-delete-subscriber-credentials: + parameters: + path: + subscriberId: "" + providerId: "" + SubscribersController_updateSubscriberOnlineFlag: + speakeasy-default-subscribers-controller-update-subscriber-online-flag: + parameters: + path: + subscriberId: "" + requestBody: + application/json: {"isOnline": true} + responses: + "200": + application/json: {"subscriberId": "", "_organizationId": "", "_environmentId": "", "deleted": true, "createdAt": "", "updatedAt": ""} + SubscribersController_listSubscriberPreferences: + speakeasy-default-subscribers-controller-list-subscriber-preferences: + parameters: + path: + subscriberId: "" + query: {} + responses: + "200": + application/json: [{"template": {"_id": "", "name": "", "critical": false, "triggers": ["", ""]}, "preference": {"enabled": false}}, {"template": {"_id": "", "name": "", "critical": false, "triggers": [""]}, "preference": {"enabled": true}}] + SubscribersController_getSubscriberPreferenceByLevel: + speakeasy-default-subscribers-controller-get-subscriber-preference-by-level: + parameters: + path: + parameter: "global" + subscriberId: "" + query: {} + responses: + "200": + application/json: [{"preference": {"enabled": true}}, {"preference": {"enabled": true}}] + SubscribersController_updateSubscriberPreference: + speakeasy-default-subscribers-controller-update-subscriber-preference: + parameters: + path: + subscriberId: "" + parameter: "" + responses: + "200": + application/json: {"template": {"_id": "", "name": "", "critical": false, "triggers": ["", ""]}, "preference": {"enabled": true}} + SubscribersController_getNotificationsFeed: + "": + parameters: + path: + subscriberId: "" + query: + payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=" + responses: + "200": + application/json: {"page": "1526.70", "hasMore": true, "pageSize": "9643.05", "data": [{"hasMore": true, "data": ["", ""], "pageSize": "1031.10", "page": "1522.73"}, {"hasMore": false, "data": [], "pageSize": "5271.67", "page": "9499.10"}]} + SubscribersController_markMessagesAs: + speakeasy-default-subscribers-controller-mark-messages-as: + parameters: + path: + subscriberId: "" + requestBody: + application/json: {"messageId": "", "markAs": "read"} + SubscribersController_chatOauthCallback: + speakeasy-default-subscribers-controller-chat-oauth-callback: + parameters: + path: + subscriberId: "" + providerId: "" + query: + code: "" + hmacHash: "" + environmentId: "" + SubscribersController_chatAccessOauth: + speakeasy-default-subscribers-controller-chat-access-oauth: + parameters: + path: + subscriberId: "" + providerId: "" + query: + hmacHash: "" + environmentId: "" + SubscribersController_updateSubscriberGlobalPreferences: + speakeasy-default-subscribers-controller-update-subscriber-global-preferences: + parameters: + path: + subscriberId: "" + responses: + "200": + application/json: {"template": {"_id": "", "name": "", "critical": true, "triggers": [""]}, "preference": {"enabled": true}} + SubscribersController_getUnseenCount: + speakeasy-default-subscribers-controller-get-unseen-count: + parameters: + path: + subscriberId: "" + query: + seen: false + limit: "2979.49" + responses: + "200": + application/json: {"count": "5438.83"} + SubscribersController_markAllUnreadAsRead: + speakeasy-default-subscribers-controller-mark-all-unread-as-read: + parameters: + path: + subscriberId: "" + requestBody: + application/json: {"markAs": "seen"} + responses: + "201": + application/json: "4603.37" + SubscribersController_markActionAsSeen: + speakeasy-default-subscribers-controller-mark-action-as-seen: + parameters: + path: + messageId: "" + type: "" + subscriberId: "" + requestBody: + application/json: {"status": "done"} + responses: + "201": + application/json: {"_templateId": "", "_environmentId": "", "_messageTemplateId": "", "_organizationId": "", "_notificationId": "", "_subscriberId": "", "createdAt": "", "content": {"type": "text", "content": ""}, "transactionId": "", "channel": "email", "read": true, "seen": false, "cta": {}, "status": "sent", "errorId": "", "errorText": ""} + MessagesController_getMessages: + speakeasy-default-messages-controller-get-messages: + responses: + "200": + application/json: {"hasMore": false, "data": ["", ""], "pageSize": "5442.21", "page": "5212.35"} + MessagesController_deleteMessage: + speakeasy-default-messages-controller-delete-message: + parameters: + path: + messageId: "" + responses: + "200": + application/json: {"acknowledged": false, "status": "deleted"} + MessagesController_deleteMessagesByTransactionId: + speakeasy-default-messages-controller-delete-messages-by-transaction-id: + parameters: + path: + transactionId: "" + query: {} + TopicsController_createTopic: + speakeasy-default-topics-controller-create-topic: + requestBody: + application/json: {"key": "", "name": ""} + responses: + "201": + application/json: {"key": ""} + TopicsController_listTopics: + speakeasy-default-topics-controller-list-topics: + responses: + "200": + application/json: {"data": [{"_organizationId": "", "_environmentId": "", "key": "", "name": "", "subscribers": []}], "page": "5984.80", "pageSize": "6512.03", "totalCount": "163.09"} + TopicsController_deleteTopic: + speakeasy-default-topics-controller-delete-topic: + parameters: + path: + topicKey: "" + TopicsController_getTopic: + speakeasy-default-topics-controller-get-topic: + parameters: + path: + topicKey: "" + responses: + "200": + application/json: {"_organizationId": "", "_environmentId": "", "key": "", "name": "", "subscribers": ["", ""]} + TopicsController_renameTopic: + speakeasy-default-topics-controller-rename-topic: + parameters: + path: + topicKey: "" + requestBody: + application/json: {"name": ""} + responses: + "200": + application/json: {"_organizationId": "", "_environmentId": "", "key": "", "name": "", "subscribers": ["", "", ""]} + TopicsController_addSubscribers: + speakeasy-default-topics-controller-add-subscribers: + parameters: + path: + topicKey: "" + requestBody: + application/json: {"subscribers": ["", ""]} + TopicsController_getTopicSubscriber: + speakeasy-default-topics-controller-get-topic-subscriber: + parameters: + path: + externalSubscriberId: "" + topicKey: "" + responses: + "200": + application/json: {"_organizationId": "", "_environmentId": "", "_subscriberId": "", "_topicId": "", "topicKey": "", "externalSubscriberId": ""} + TopicsController_removeSubscribers: + speakeasy-default-topics-controller-remove-subscribers: + parameters: + path: + topicKey: "" + requestBody: + application/json: {"subscribers": ["", ""]} diff --git a/.speakeasy/temp/applied_HkXoAbCOKh.yaml b/.speakeasy/temp/applied_HkXoAbCOKh.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/applied_HkXoAbCOKh.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/applied_MAxCyLGLwa.yaml b/.speakeasy/temp/applied_MAxCyLGLwa.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/applied_MAxCyLGLwa.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/applied_PRNWFJIfIy.yaml b/.speakeasy/temp/applied_PRNWFJIfIy.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/applied_PRNWFJIfIy.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/applied_oLKtLpgDDo.yaml b/.speakeasy/temp/applied_oLKtLpgDDo.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/applied_oLKtLpgDDo.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_KiKCSXnkWs.yaml b/.speakeasy/temp/downloaded_KiKCSXnkWs.yaml new file mode 100644 index 00000000..8e0ac771 --- /dev/null +++ b/.speakeasy/temp/downloaded_KiKCSXnkWs.yaml @@ -0,0 +1,9166 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: |2- + + Trigger event is the main (and only) way to send notifications to subscribers. + The trigger identifier is used to match the particular workflow associated with it. + Additional information can be passed according the body interface below. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: |2- + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to + send announcements, etc. + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: |2- + + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. + Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are + successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on + the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that + organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that + are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported + or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and + `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will + be later used to receive notifications, and access notification feeds. + Communication credentials such as email, phone number, and 3 rd party + credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: |2- + + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string + like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. + Optionally you can pass feed id (or array) to mark messages of a + particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query + parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of + message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query + parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it + can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. + Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more + details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to + trigger workflows, and enable you to send notifications to subscribers + based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by + a workflow acting as a message blueprint. Notifications can be individual + or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your + favorite delivery provider. During the runtime of the API, the + Integrations Store is responsible for storing the configurations of all + the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure + to wrap content of email notifications. Layouts can be manipulated and + assigned to new or existing workflows within the Novu platform, allowing + users to create, manage, and assign these layouts to workflows, so they + can be reused to structure the appearance of notifications sent through + the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a + container for the logic and blueprint that are associated with a type of + notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same + functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous + to a pending pull request in git, enabling you to test changes before they + are applied to your environment and atomically apply them when you are + ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your + data and configuration. This means that subscribers, and preferences + created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for + a domain or subdomain. The feature parses the contents of the email and + POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing + message associated with its relevant metadata. This can be used to monitor + activity and discover potential issues with a specific provider or a + channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have + organizations, they are referred to as tenants. Tenants in Novu provides + the ability to tailor specific notification experiences to users of + different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a + particular channel. Messages contain information about the request that + triggered its delivery, a view of the data sent to the recipient, and a + timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each + organization you create has its own separate integration store, workflows, + subscribers, and API keys. This separation of resources allows you to + manage multi-tenant environments and separate domains within a single + account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They + provided detailed information on the execution of a workflow, including + the status of each step, the input and output of each step, and the + overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey + ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This + identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the workflow, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + Existing tenants will be updated with the provided details. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. + This identifier can be found on the template page. + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the template, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + If a new tenant object is provided, we will create a new tenant. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be + obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given + provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the + subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and + should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this + workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the + workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the + Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the + topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. + The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be + refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token + bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that + was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_UTufwKwdmv.yaml b/.speakeasy/temp/downloaded_UTufwKwdmv.yaml new file mode 100644 index 00000000..8e0ac771 --- /dev/null +++ b/.speakeasy/temp/downloaded_UTufwKwdmv.yaml @@ -0,0 +1,9166 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: |2- + + Trigger event is the main (and only) way to send notifications to subscribers. + The trigger identifier is used to match the particular workflow associated with it. + Additional information can be passed according the body interface below. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: |2- + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to + send announcements, etc. + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: |2- + + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. + Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are + successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on + the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that + organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that + are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported + or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and + `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will + be later used to receive notifications, and access notification feeds. + Communication credentials such as email, phone number, and 3 rd party + credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: |2- + + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string + like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. + Optionally you can pass feed id (or array) to mark messages of a + particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query + parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of + message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query + parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it + can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. + Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more + details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to + trigger workflows, and enable you to send notifications to subscribers + based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by + a workflow acting as a message blueprint. Notifications can be individual + or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your + favorite delivery provider. During the runtime of the API, the + Integrations Store is responsible for storing the configurations of all + the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure + to wrap content of email notifications. Layouts can be manipulated and + assigned to new or existing workflows within the Novu platform, allowing + users to create, manage, and assign these layouts to workflows, so they + can be reused to structure the appearance of notifications sent through + the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a + container for the logic and blueprint that are associated with a type of + notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same + functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous + to a pending pull request in git, enabling you to test changes before they + are applied to your environment and atomically apply them when you are + ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your + data and configuration. This means that subscribers, and preferences + created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for + a domain or subdomain. The feature parses the contents of the email and + POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing + message associated with its relevant metadata. This can be used to monitor + activity and discover potential issues with a specific provider or a + channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have + organizations, they are referred to as tenants. Tenants in Novu provides + the ability to tailor specific notification experiences to users of + different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a + particular channel. Messages contain information about the request that + triggered its delivery, a view of the data sent to the recipient, and a + timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each + organization you create has its own separate integration store, workflows, + subscribers, and API keys. This separation of resources allows you to + manage multi-tenant environments and separate domains within a single + account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They + provided detailed information on the execution of a workflow, including + the status of each step, the input and output of each step, and the + overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey + ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This + identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the workflow, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + Existing tenants will be updated with the provided details. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. + This identifier can be found on the template page. + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the template, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + If a new tenant object is provided, we will create a new tenant. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be + obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given + provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the + subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and + should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this + workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the + workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the + Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the + topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. + The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be + refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token + bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that + was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_cXfUyUrcKj.yaml b/.speakeasy/temp/downloaded_cXfUyUrcKj.yaml new file mode 100644 index 00000000..8e0ac771 --- /dev/null +++ b/.speakeasy/temp/downloaded_cXfUyUrcKj.yaml @@ -0,0 +1,9166 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: |2- + + Trigger event is the main (and only) way to send notifications to subscribers. + The trigger identifier is used to match the particular workflow associated with it. + Additional information can be passed according the body interface below. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: |2- + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to + send announcements, etc. + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: |2- + + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. + Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are + successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on + the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that + organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that + are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported + or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and + `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will + be later used to receive notifications, and access notification feeds. + Communication credentials such as email, phone number, and 3 rd party + credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: |2- + + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string + like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. + Optionally you can pass feed id (or array) to mark messages of a + particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query + parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of + message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query + parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it + can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. + Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more + details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to + trigger workflows, and enable you to send notifications to subscribers + based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by + a workflow acting as a message blueprint. Notifications can be individual + or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your + favorite delivery provider. During the runtime of the API, the + Integrations Store is responsible for storing the configurations of all + the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure + to wrap content of email notifications. Layouts can be manipulated and + assigned to new or existing workflows within the Novu platform, allowing + users to create, manage, and assign these layouts to workflows, so they + can be reused to structure the appearance of notifications sent through + the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a + container for the logic and blueprint that are associated with a type of + notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same + functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous + to a pending pull request in git, enabling you to test changes before they + are applied to your environment and atomically apply them when you are + ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your + data and configuration. This means that subscribers, and preferences + created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for + a domain or subdomain. The feature parses the contents of the email and + POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing + message associated with its relevant metadata. This can be used to monitor + activity and discover potential issues with a specific provider or a + channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have + organizations, they are referred to as tenants. Tenants in Novu provides + the ability to tailor specific notification experiences to users of + different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a + particular channel. Messages contain information about the request that + triggered its delivery, a view of the data sent to the recipient, and a + timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each + organization you create has its own separate integration store, workflows, + subscribers, and API keys. This separation of resources allows you to + manage multi-tenant environments and separate domains within a single + account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They + provided detailed information on the execution of a workflow, including + the status of each step, the input and output of each step, and the + overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey + ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This + identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the workflow, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + Existing tenants will be updated with the provided details. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. + This identifier can be found on the template page. + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the template, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + If a new tenant object is provided, we will create a new tenant. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be + obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given + provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the + subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and + should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this + workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the + workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the + Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the + topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. + The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be + refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token + bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that + was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_dDzgnLtqbI.yaml b/.speakeasy/temp/downloaded_dDzgnLtqbI.yaml new file mode 100644 index 00000000..8e0ac771 --- /dev/null +++ b/.speakeasy/temp/downloaded_dDzgnLtqbI.yaml @@ -0,0 +1,9166 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: |2- + + Trigger event is the main (and only) way to send notifications to subscribers. + The trigger identifier is used to match the particular workflow associated with it. + Additional information can be passed according the body interface below. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: |2- + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to + send announcements, etc. + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: |2- + + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. + Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are + successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on + the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that + organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that + are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported + or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and + `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will + be later used to receive notifications, and access notification feeds. + Communication credentials such as email, phone number, and 3 rd party + credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: |2- + + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string + like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. + Optionally you can pass feed id (or array) to mark messages of a + particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query + parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of + message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query + parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it + can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. + Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more + details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to + trigger workflows, and enable you to send notifications to subscribers + based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by + a workflow acting as a message blueprint. Notifications can be individual + or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your + favorite delivery provider. During the runtime of the API, the + Integrations Store is responsible for storing the configurations of all + the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure + to wrap content of email notifications. Layouts can be manipulated and + assigned to new or existing workflows within the Novu platform, allowing + users to create, manage, and assign these layouts to workflows, so they + can be reused to structure the appearance of notifications sent through + the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a + container for the logic and blueprint that are associated with a type of + notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same + functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous + to a pending pull request in git, enabling you to test changes before they + are applied to your environment and atomically apply them when you are + ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your + data and configuration. This means that subscribers, and preferences + created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for + a domain or subdomain. The feature parses the contents of the email and + POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing + message associated with its relevant metadata. This can be used to monitor + activity and discover potential issues with a specific provider or a + channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have + organizations, they are referred to as tenants. Tenants in Novu provides + the ability to tailor specific notification experiences to users of + different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a + particular channel. Messages contain information about the request that + triggered its delivery, a view of the data sent to the recipient, and a + timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each + organization you create has its own separate integration store, workflows, + subscribers, and API keys. This separation of resources allows you to + manage multi-tenant environments and separate domains within a single + account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They + provided detailed information on the execution of a workflow, including + the status of each step, the input and output of each step, and the + overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey + ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This + identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the workflow, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + Existing tenants will be updated with the provided details. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. + This identifier can be found on the template page. + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the template, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + If a new tenant object is provided, we will create a new tenant. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be + obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given + provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the + subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and + should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this + workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the + workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the + Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the + topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. + The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be + refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token + bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that + was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_OzyUuenxwp.yaml b/.speakeasy/temp/overlay_OzyUuenxwp.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/overlay_OzyUuenxwp.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_ZRSXyvupfe.yaml b/.speakeasy/temp/overlay_ZRSXyvupfe.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/overlay_ZRSXyvupfe.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_fZoitFDeAQ.yaml b/.speakeasy/temp/overlay_fZoitFDeAQ.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/overlay_fZoitFDeAQ.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_hpRiUsGiJG.yaml b/.speakeasy/temp/overlay_hpRiUsGiJG.yaml new file mode 100644 index 00000000..123fdd83 --- /dev/null +++ b/.speakeasy/temp/overlay_hpRiUsGiJG.yaml @@ -0,0 +1,8848 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getCurrent + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: environments.apiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + x-speakeasy-group: executionDetails + x-speakeasy-name-override: get + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: list + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: notifications.stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: get + x-speakeasy-group: notificationsStats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: create + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: list + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: get + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: update + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + x-speakeasy-group: workflowGroups + x-speakeasy-name-override: delete + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: list + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: integrationsWebhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: getStatus + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getAll + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: create + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: subscribers.credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: subscribers.credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: subscribers.credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineStatus + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: subscribersPreferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: getByLevel + x-speakeasy-group: subscribers.preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: subscribers.preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: update + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: subscribers.notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + x-speakeasy-name-override: getFeed + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: getUnseenCount + x-speakeasy-group: subscribersNotifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: mark + x-speakeasy-group: subscribers.messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: subscribersMessages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: subscribersMessages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: handleOauthCallback + x-speakeasy-group: subscribers.authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: handleOauth + x-speakeasy-group: subscribers.authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: get + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + x-speakeasy-name-override: delete + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: create + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: getAll + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: add + x-speakeasy-group: topics.subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: topics.subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: check + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: topics.subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: remove + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: delete + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + x-speakeasy-name-override: get + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true From 8090e00342214eb3e51b4fd523141235cdc8e65a Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:37:31 +0100 Subject: [PATCH 04/12] relaunch --- FUNCTIONS.md | 26 +- README.md | 400 +++++---------- USAGE.md | 70 +-- .../components/activitiesresponsedto.md | 17 +- .../components/activitygraphstatesresponse.md | 18 +- .../activitynotificationresponsedto.md | 14 +- ...activitynotificationresponsedtochannels.md | 6 +- ...tivitynotificationsubscriberresponsedto.md | 4 +- .../components/activitystatsresponsedto.md | 13 +- docs/models/components/actor.md | 20 - docs/models/components/apikey.md | 10 +- docs/models/components/backoffunit.md | 6 +- docs/models/components/bulktriggereventdto.md | 6 +- docs/models/components/channel.md | 8 +- docs/models/components/channelcredentials.md | 14 +- docs/models/components/channelpreference.md | 14 +- .../components/channelpreferencetype.md | 2 +- docs/models/components/channels.md | 6 +- docs/models/components/channelsettings.md | 22 +- docs/models/components/content.md | 20 +- .../components/createintegrationrequestdto.md | 29 +- .../components/createsubscriberrequestdto.md | 14 +- docs/models/components/credentialsdto.md | 68 +-- .../models/components/delayregularmetadata.md | 4 +- .../components/delayscheduledmetadata.md | 6 +- .../components/deletemessageresponsedto.md | 8 +- .../components/digestregularmetadata.md | 8 +- docs/models/components/digesttimedmetadata.md | 4 +- .../components/digesttimedmetadataunit.md | 4 - docs/models/components/emailblock.md | 12 +- docs/models/components/emailblockstyles.md | 4 - .../components/environmentresponsedto.md | 21 +- .../components/executiondetailsresponsedto.md | 66 +-- docs/models/components/feedidentifier.md | 20 - docs/models/components/feedresponsedto.md | 17 +- docs/models/components/fieldfilterpart.md | 13 +- .../components/filtertopicsresponsedto.md | 19 +- .../getsubscriberpreferencesresponsedto.md | 6 +- docs/models/components/gettopicresponsedto.md | 9 +- .../components/integrationresponsedto.md | 29 +- .../integrationresponsedtochannel.md | 6 +- .../components/markallmessageasrequestdto.md | 8 +- docs/models/components/markas.md | 6 - .../components/markmessageactionasseendto.md | 12 +- docs/models/components/messageaction.md | 4 +- .../components/messageactionresulttype.md | 4 - docs/models/components/messageactionstatus.md | 4 - docs/models/components/messagebutton.md | 10 +- docs/models/components/messagecta.md | 4 +- docs/models/components/messageid.md | 18 - .../components/messagemarkasrequestdto.md | 18 +- docs/models/components/messageresponsedto.md | 107 ++-- .../components/messageresponsedtochannel.md | 6 +- .../components/messageresponsedtostatus.md | 4 - docs/models/components/metadata.md | 30 +- docs/models/components/monthlytype.md | 4 - docs/models/components/notificationgroup.md | 13 +- .../notificationgroupresponsedto.md | 13 +- docs/models/components/notificationstep.md | 10 +- .../components/notificationstepvariant.md | 12 +- .../notificationstepvariantmetadata.md | 32 +- docs/models/components/notificationtrigger.md | 8 +- docs/models/components/on.md | 4 - docs/models/components/operator.md | 6 +- docs/models/components/ordinal.md | 4 - docs/models/components/ordinalvalue.md | 6 +- docs/models/components/overrides.md | 2 +- docs/models/components/payload.md | 3 +- docs/models/components/preference.md | 6 +- docs/models/components/preferencechannels.md | 6 +- docs/models/components/providerid.md | 2 +- .../components/renametopicresponsedto.md | 9 +- docs/models/components/source.md | 4 - docs/models/components/status.md | 6 +- docs/models/components/stepfilter.md | 23 +- docs/models/components/stepfiltertype.md | 2 +- .../models/components/subscriberpayloaddto.md | 14 +- .../components/subscriberresponsedto.md | 38 +- docs/models/components/templateresponse.md | 4 +- docs/models/components/tenant.md | 18 - docs/models/components/tenantpayloaddto.md | 4 +- docs/models/components/textalign.md | 4 - docs/models/components/timedconfig.md | 4 +- docs/models/components/to.md | 22 - docs/models/components/topicdto.md | 9 +- docs/models/components/topicpayloaddto.md | 8 +- docs/models/components/topicsubscriberdto.md | 18 +- .../components/triggereventrequestdto.md | 23 +- .../components/triggereventresponsedto.md | 8 +- .../triggereventresponsedtostatus.md | 2 +- .../components/triggereventtoallrequestdto.md | 10 +- .../triggereventtoallrequestdtoactor.md | 20 - .../triggereventtoallrequestdtotenant.md | 18 - docs/models/components/type.md | 17 +- docs/models/components/unit.md | 6 +- docs/models/components/unseencountresponse.md | 6 +- .../components/updateintegrationrequestdto.md | 10 +- .../updatesubscriberchannelrequestdto.md | 20 +- ...tesubscriberchannelrequestdtoproviderid.md | 2 +- .../updatesubscriberpreferenceresponsedto.md | 14 +- .../components/updatesubscriberrequestdto.md | 8 +- docs/models/components/value.md | 4 - docs/models/components/weekdays.md | 2 +- docs/models/components/workflowresponse.md | 65 +-- docs/models/operations/channel.md | 8 +- docs/models/operations/channels.md | 4 - .../eventscontrollercancelrequest.md | 4 - ...texecutiondetailsfornotificationrequest.md | 5 - ...ontrollergetwebhooksupportstatusrequest.md | 4 - ...tionscontrollerremoveintegrationrequest.md | 4 - ...ontrollersetintegrationasprimaryrequest.md | 4 - ...scontrollerupdateintegrationbyidrequest.md | 4 - .../messagescontrollerdeletemessagerequest.md | 4 - ...lerdeletemessagesbytransactionidrequest.md | 12 +- .../messagescontrollergetmessagesrequest.md | 14 +- ...cationscontrollergetnotificationrequest.md | 4 - ...tionscontrollerlistnotificationsrequest.md | 4 - docs/models/operations/parameter.md | 14 +- docs/models/operations/queryparamchannel.md | 8 +- ...criberscontrollerchataccessoauthrequest.md | 7 - ...iberscontrollerchatoauthcallbackrequest.md | 8 - ...ollerdeletesubscribercredentialsrequest.md | 5 - ...rscontrollergetnotificationsfeedrequest.md | 4 - ...trollergetnotificationsfeedresponsebody.md | 28 +- ...ergetsubscriberpreferencebylevelrequest.md | 14 +- ...bscriberscontrollergetsubscriberrequest.md | 4 - ...scriberscontrollergetunseencountrequest.md | 7 +- ...trollerlistsubscriberpreferencesrequest.md | 4 - ...riberscontrollerlistsubscribersresponse.md | 31 +- ...rscontrollerlistsubscribersresponsebody.md | 31 +- ...riberscontrollermarkactionasseenrequest.md | 8 +- ...erscontrollermarkallunreadasreadrequest.md | 8 +- ...scriberscontrollermarkmessagesasrequest.md | 9 +- ...ontrollermodifysubscriberchannelrequest.md | 13 +- ...riberscontrollerremovesubscriberrequest.md | 4 - ...ontrollerupdatesubscriberchannelrequest.md | 13 +- ...pdatesubscriberglobalpreferencesrequest.md | 4 - ...rollerupdatesubscriberonlineflagrequest.md | 4 - ...rollerupdatesubscriberpreferencerequest.md | 4 - ...riberscontrollerupdatesubscriberrequest.md | 4 - ...picscontrollergettopicsubscriberrequest.md | 4 - docs/sdks/apikeys/README.md | 12 +- docs/sdks/authentication/README.md | 113 +---- docs/sdks/credentials/README.md | 105 ++-- docs/sdks/environments/README.md | 99 +--- docs/sdks/executiondetails/README.md | 42 +- docs/sdks/integrations/README.md | 161 +++--- docs/sdks/integrationswebhooks/README.md | 38 +- docs/sdks/messages/README.md | 78 +-- docs/sdks/notifications/README.md | 167 +------ docs/sdks/notificationsstats/README.md | 2 +- docs/sdks/novu/README.md | 468 +++++------------- docs/sdks/novumessages/README.md | 229 +-------- .../novusubscribersnotifications/README.md | 2 +- docs/sdks/novutopicssubscribers/README.md | 157 +----- docs/sdks/preferences/README.md | 203 +------- docs/sdks/properties/README.md | 42 +- docs/sdks/stats/README.md | 113 +---- docs/sdks/subscribers/README.md | 198 ++++---- docs/sdks/subscribersmessages/README.md | 100 +--- docs/sdks/subscribersnotifications/README.md | 50 +- docs/sdks/subscriberspreferences/README.md | 46 +- docs/sdks/topics/README.md | 122 ++--- docs/sdks/workflowgroups/README.md | 114 ++--- jsr.json | 2 +- package-lock.json | 4 +- package.json | 6 +- src/funcs/cancel.ts | 106 +--- src/funcs/environmentsApiKeysList.ts | 86 +--- src/funcs/environmentsGetAll.ts | 23 +- src/funcs/environmentsGetCurrent.ts | 22 +- src/funcs/executionDetailsGet.ts | 22 +- src/funcs/integrationsCreate.ts | 100 +--- src/funcs/integrationsDelete.ts | 109 +--- src/funcs/integrationsList.ts | 85 +--- src/funcs/integrationsListActive.ts | 86 +--- src/funcs/integrationsSetPrimary.ts | 21 +- src/funcs/integrationsUpdate.ts | 118 +---- src/funcs/integrationsWebhooksGetStatus.ts | 21 +- src/funcs/messagesDelete.ts | 109 +--- src/funcs/messagesDeleteByTransactionId.ts | 127 +---- src/funcs/messagesGet.ts | 20 +- src/funcs/notificationsGet.ts | 20 +- src/funcs/notificationsList.ts | 112 +---- src/funcs/notificationsStatsGet.ts | 21 +- .../subscribersAuthenticationHandleOauth.ts | 20 +- ...ribersAuthenticationHandleOauthCallback.ts | 17 +- src/funcs/subscribersCreate.ts | 100 +--- src/funcs/subscribersCreateBulk.ts | 101 +--- src/funcs/subscribersCredentialsAppend.ts | 126 +---- src/funcs/subscribersCredentialsDelete.ts | 119 +---- src/funcs/subscribersCredentialsUpdate.ts | 123 +---- src/funcs/subscribersDelete.ts | 108 +--- src/funcs/subscribersGet.ts | 20 +- src/funcs/subscribersGetAll.ts | 5 +- src/funcs/subscribersMessagesMark.ts | 20 +- src/funcs/subscribersMessagesMarkAll.ts | 118 +---- src/funcs/subscribersMessagesUpdateAsSeen.ts | 121 +---- src/funcs/subscribersNotificationsGetFeed.ts | 16 +- .../subscribersNotificationsGetUnseenCount.ts | 20 +- src/funcs/subscribersPreferencesGet.ts | 19 +- src/funcs/subscribersPreferencesGetByLevel.ts | 19 +- src/funcs/subscribersPreferencesUpdate.ts | 120 +---- .../subscribersPreferencesUpdateGlobal.ts | 123 +---- ...subscribersPropertiesUpdateOnlineStatus.ts | 20 +- src/funcs/subscribersUpdate.ts | 115 +---- src/funcs/topicsCreate.ts | 98 +--- src/funcs/topicsDelete.ts | 109 +--- src/funcs/topicsGet.ts | 19 +- src/funcs/topicsGetAll.ts | 19 +- src/funcs/topicsRename.ts | 115 +---- src/funcs/topicsSubscribersAdd.ts | 21 +- src/funcs/topicsSubscribersCheck.ts | 20 +- src/funcs/topicsSubscribersRemove.ts | 21 +- src/funcs/trigger.ts | 98 +--- src/funcs/triggerBroadcast.ts | 103 +--- src/funcs/triggerBulk.ts | 99 +--- src/funcs/workflowGroupsCreate.ts | 101 +--- src/funcs/workflowGroupsDelete.ts | 110 +--- src/funcs/workflowGroupsGet.ts | 21 +- src/funcs/workflowGroupsList.ts | 85 +--- src/funcs/workflowGroupsUpdate.ts | 121 +---- src/hooks/types.ts | 6 - src/lib/config.ts | 9 +- src/lib/matchers.ts | 4 - src/lib/sdks.ts | 86 ---- src/lib/security.ts | 28 -- .../components/activitiesresponsedto.ts | 37 +- .../components/activitygraphstatesresponse.ts | 31 +- .../activitynotificationresponsedto.ts | 59 ++- ...tivitynotificationsubscriberresponsedto.ts | 46 +- ...activitynotificationtemplateresponsedto.ts | 30 ++ .../components/activitystatsresponsedto.ts | 29 +- .../components/addsubscribersrequestdto.ts | 21 + src/models/components/apikey.ts | 25 +- .../components/bulksubscribercreatedto.ts | 21 + src/models/components/bulktriggereventdto.ts | 21 + src/models/components/channelcredentials.ts | 65 ++- src/models/components/channelpreference.ts | 35 +- src/models/components/channelsettings.ts | 100 +++- .../components/createintegrationrequestdto.ts | 90 ++-- .../createnotificationgrouprequestdto.ts | 23 + .../components/createsubscriberrequestdto.ts | 117 +++-- .../components/createtopicrequestdto.ts | 21 + .../components/createtopicresponsedto.ts | 21 + src/models/components/credentialsdto.ts | 303 +++++++----- src/models/components/databooleandto.ts | 17 + src/models/components/delayregularmetadata.ts | 90 ++-- .../components/delayscheduledmetadata.ts | 29 +- .../components/deletemessageresponsedto.ts | 53 +- .../deletenotificationgroupresponsedto.ts | 24 + .../components/deletesubscriberresponsedto.ts | 23 + .../components/digestregularmetadata.ts | 94 ++-- src/models/components/digesttimedmetadata.ts | 93 ++-- src/models/components/emailblock.ts | 33 +- src/models/components/emailblockstyles.ts | 21 + .../components/environmentresponsedto.ts | 49 +- .../components/executiondetailsresponsedto.ts | 165 +++--- src/models/components/feedresponsedto.ts | 43 +- src/models/components/fieldfilterpart.ts | 79 +-- .../components/filtertopicsresponsedto.ts | 21 + .../getsubscriberpreferencesresponsedto.ts | 38 +- src/models/components/gettopicresponsedto.ts | 33 +- src/models/components/index.ts | 23 - .../components/integrationresponsedto.ts | 73 ++- .../components/markallmessageasrequestdto.ts | 67 ++- .../components/markmessageactionasseendto.ts | 125 +++-- src/models/components/messageaction.ts | 25 +- src/models/components/messageactionresult.ts | 39 ++ src/models/components/messagebutton.ts | 25 +- src/models/components/messagecta.ts | 33 +- src/models/components/messagectadata.ts | 17 + src/models/components/messageentity.ts | 17 + .../components/messagemarkasrequestdto.ts | 93 ++-- src/models/components/messageresponsedto.ts | 433 +++++++++------- src/models/components/messagetemplate.ts | 19 + src/models/components/notificationgroup.ts | 41 +- .../notificationgroupresponsedto.ts | 43 +- src/models/components/notificationstep.ts | 107 +++- .../components/notificationstepvariant.ts | 130 ++++- src/models/components/notificationtrigger.ts | 37 +- .../components/notificationtriggervariable.ts | 23 + src/models/components/preference.ts | 31 +- src/models/components/preferencechannels.ts | 37 +- .../components/removesubscribersrequestdto.ts | 23 + .../components/renametopicrequestdto.ts | 21 + .../components/renametopicresponsedto.ts | 33 +- src/models/components/security.ts | 17 + src/models/components/stepfilter.ts | 25 +- src/models/components/subscriberpayloaddto.ts | 111 +++-- .../components/subscriberresponsedto.ts | 130 +++-- src/models/components/templateresponse.ts | 35 +- src/models/components/tenantpayloaddto.ts | 47 +- src/models/components/timedconfig.ts | 95 ++-- src/models/components/topicdto.ts | 29 +- src/models/components/topicpayloaddto.ts | 50 +- src/models/components/topicsubscriberdto.ts | 41 +- .../components/triggereventrequestdto.ts | 367 +++++++++----- .../components/triggereventresponsedto.ts | 35 +- .../components/triggereventtoallrequestdto.ts | 229 ++++++--- src/models/components/unseencountresponse.ts | 21 + .../components/updateintegrationrequestdto.ts | 55 +- .../updatesubscriberchannelrequestdto.ts | 96 +++- ...tesubscriberglobalpreferencesrequestdto.ts | 30 ++ .../updatesubscriberonlineflagrequestdto.ts | 24 + .../updatesubscriberpreferencerequestdto.ts | 24 + .../updatesubscriberpreferenceresponsedto.ts | 38 +- .../components/updatesubscriberrequestdto.ts | 69 ++- src/models/components/workflowresponse.ts | 161 ++++-- .../operations/eventscontrollercancel.ts | 99 ++++ ...ollergetexecutiondetailsfornotification.ts | 120 +++++ src/models/operations/index.ts | 32 +- ...ationscontrollergetwebhooksupportstatus.ts | 117 +++++ ...integrationscontrollerremoveintegration.ts | 118 +++++ ...ationscontrollersetintegrationasprimary.ts | 118 +++++ ...grationscontrollerupdateintegrationbyid.ts | 116 +++++ .../messagescontrollerdeletemessage.ts | 110 ++++ ...controllerdeletemessagesbytransactionid.ts | 138 +++++- .../messagescontrollergetmessages.ts | 133 ++++- ...groupscontrollerdeletenotificationgroup.ts | 115 +++++ ...iongroupscontrollergetnotificationgroup.ts | 115 +++++ ...groupscontrollerupdatenotificationgroup.ts | 113 +++++ ...icationscontrollergetactivitygraphstats.ts | 118 +++++ .../notificationscontrollergetnotification.ts | 118 +++++ ...otificationscontrollerlistnotifications.ts | 118 +++++ .../subscriberscontrollerchataccessoauth.ts | 110 ++++ .../subscriberscontrollerchatoauthcallback.ts | 148 ++++++ ...rscontrollerdeletesubscribercredentials.ts | 108 ++++ ...bscriberscontrollergetnotificationsfeed.ts | 170 ++++++- .../subscriberscontrollergetsubscriber.ts | 121 +++++ ...ontrollergetsubscriberpreferencebylevel.ts | 136 ++++- .../subscriberscontrollergetunseencount.ts | 117 +++++ ...berscontrollerlistsubscriberpreferences.ts | 128 +++++ .../subscriberscontrollerlistsubscribers.ts | 112 ++++- .../subscriberscontrollermarkactionasseen.ts | 115 +++++ ...ubscriberscontrollermarkallunreadasread.ts | 116 +++++ .../subscriberscontrollermarkmessagesas.ts | 115 +++++ ...riberscontrollermodifysubscriberchannel.ts | 116 +++++ .../subscriberscontrollerremovesubscriber.ts | 117 +++++ .../subscriberscontrollerupdatesubscriber.ts | 115 +++++ ...riberscontrollerupdatesubscriberchannel.ts | 116 +++++ ...rollerupdatesubscriberglobalpreferences.ts | 113 +++++ ...erscontrollerupdatesubscriberonlineflag.ts | 113 +++++ ...erscontrollerupdatesubscriberpreference.ts | 113 +++++ .../topicscontrolleraddsubscribers.ts | 96 ++++ .../operations/topicscontrollerdeletetopic.ts | 96 ++++ .../operations/topicscontrollergettopic.ts | 99 ++++ .../topicscontrollergettopicsubscriber.ts | 114 +++++ .../operations/topicscontrollerlisttopics.ts | 101 ++++ .../topicscontrollerremovesubscribers.ts | 108 ++++ .../operations/topicscontrollerrenametopic.ts | 101 ++++ src/sdk/apikeys.ts | 6 +- src/sdk/authentication.ts | 43 +- src/sdk/credentials.ts | 69 +-- src/sdk/environments.ts | 41 +- src/sdk/executiondetails.ts | 18 +- src/sdk/integrations.ts | 141 +----- src/sdk/integrationswebhooks.ts | 3 +- src/sdk/messages.ts | 56 +-- src/sdk/notifications.ts | 44 +- src/sdk/notificationsstats.ts | 4 +- src/sdk/novumessages.ts | 56 +-- src/sdk/novusubscribersnotifications.ts | 2 +- src/sdk/novutopicssubscribers.ts | 7 +- src/sdk/preferences.ts | 62 +-- src/sdk/properties.ts | 22 +- src/sdk/sdk.ts | 227 ++------- src/sdk/stats.ts | 32 +- src/sdk/subscribers.ts | 183 ++----- src/sdk/subscribersmessages.ts | 4 +- src/sdk/subscribersnotifications.ts | 3 +- src/sdk/subscriberspreferences.ts | 5 +- src/sdk/topics.ts | 99 +--- src/sdk/workflowgroups.ts | 87 ++-- 374 files changed, 10776 insertions(+), 9284 deletions(-) diff --git a/FUNCTIONS.md b/FUNCTIONS.md index 134faa12..b68714cd 100644 --- a/FUNCTIONS.md +++ b/FUNCTIONS.md @@ -20,7 +20,7 @@ specific category of applications. ```typescript import { NovuCore } from "@novu/api/core.js"; -import { cancel } from "@novu/api/funcs/cancel.js"; +import { trigger } from "@novu/api/funcs/trigger.js"; import { SDKValidationError } from "@novu/api/models/errors/sdkvalidationerror.js"; // Use `NovuCore` for best tree-shaking performance. @@ -30,11 +30,21 @@ const novu = new NovuCore({ }); async function run() { -<<<<<<< Updated upstream - const res = await cancel(novu, ""); -======= - const res = await cancel(novu, ""); ->>>>>>> Stashed changes + const res = await trigger(novu, { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); switch (true) { case res.ok: @@ -56,11 +66,7 @@ async function run() { const { value: result } = res; // Handle the result -<<<<<<< Updated upstream - console.log(result) -======= console.log(result); ->>>>>>> Stashed changes } run(); diff --git a/README.md b/README.md index 61c51fed..6c0aa4d7 100644 --- a/README.md +++ b/README.md @@ -73,30 +73,6 @@ For supported JavaScript runtimes, please consult [RUNTIMES.md](RUNTIMES.md). ## SDK Example Usage -### Cancel Triggered Event - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel(""); -======= - const result = await novu.cancel(""); ->>>>>>> Stashed changes - - // Handle the result - console.log(result); -} - -run(); - -``` - ### Trigger Notification Event ```typescript @@ -109,15 +85,13 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", type: "Topic", }, -<<<<<<< Updated upstream -======= { topicKey: "", type: "Topic", @@ -133,30 +107,6 @@ run(); ``` -### Broadcast Event to All - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.triggerBroadcast({ - name: "", - overrides: {}, - payload: {}, - }); - - // Handle the result - console.log(result); -} - -run(); - -``` - ### Trigger Notification Events in Bulk ```typescript @@ -171,8 +121,8 @@ async function run() { events: [ { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", @@ -185,8 +135,8 @@ async function run() { }, { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", @@ -196,8 +146,8 @@ async function run() { }, { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", @@ -209,13 +159,11 @@ async function run() { }, ], }, ->>>>>>> Stashed changes ], }); // Handle the result console.log(result); -<<<<<<< Updated upstream } run(); @@ -234,8 +182,8 @@ const novu = new Novu({ async function run() { const result = await novu.triggerBroadcast({ name: "", - overrides: {}, payload: {}, + overrides: {}, }); // Handle the result @@ -246,7 +194,7 @@ run(); ``` -### Trigger Notification Events in Bulk +### Cancel Triggered Event ```typescript import { Novu } from "@novu/api"; @@ -256,14 +204,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.triggerBulk({ - events: [], - }); + const result = await novu.cancel(""); // Handle the result console.log(result); -======= ->>>>>>> Stashed changes } run(); @@ -276,21 +220,11 @@ run();
Available methods -<<<<<<< Updated upstream - -### [changes](docs/sdks/changes/README.md) - -* [apply](docs/sdks/changes/README.md#apply) - Apply change -* [applyBulk](docs/sdks/changes/README.md#applybulk) - Apply changes -* [count](docs/sdks/changes/README.md#count) - Get changes count -* [retrieve](docs/sdks/changes/README.md#retrieve) - Get changes -======= ->>>>>>> Stashed changes ### [environments](docs/sdks/environments/README.md) -* [getAll](docs/sdks/environments/README.md#getall) - Get environments * [getCurrent](docs/sdks/environments/README.md#getcurrent) - Get current environment +* [getAll](docs/sdks/environments/README.md#getall) - Get environments #### [environments.apiKeys](docs/sdks/apikeys/README.md) @@ -302,128 +236,78 @@ run(); ### [integrations](docs/sdks/integrations/README.md) -* [create](docs/sdks/integrations/README.md#create) - Create integration -* [delete](docs/sdks/integrations/README.md#delete) - Delete integration * [list](docs/sdks/integrations/README.md#list) - Get integrations +* [create](docs/sdks/integrations/README.md#create) - Create integration * [listActive](docs/sdks/integrations/README.md#listactive) - Get active integrations -* [setPrimary](docs/sdks/integrations/README.md#setprimary) - Set integration as primary * [update](docs/sdks/integrations/README.md#update) - Update integration +* [delete](docs/sdks/integrations/README.md#delete) - Delete integration +* [setPrimary](docs/sdks/integrations/README.md#setprimary) - Set integration as primary -<<<<<<< Updated upstream -#### [integrations.webhooks](docs/sdks/webhooks/README.md) -======= ### [integrationsWebhooks](docs/sdks/integrationswebhooks/README.md) ->>>>>>> Stashed changes * [getStatus](docs/sdks/integrationswebhooks/README.md#getstatus) - Get webhook support status for provider ### [messages](docs/sdks/messages/README.md) +* [get](docs/sdks/messages/README.md#get) - Get messages * [delete](docs/sdks/messages/README.md#delete) - Delete message * [deleteByTransactionId](docs/sdks/messages/README.md#deletebytransactionid) - Delete messages by transactionId -<<<<<<< Updated upstream -* [retrieve](docs/sdks/messages/README.md#retrieve) - Get messages -======= -* [get](docs/sdks/messages/README.md#get) - Get messages ->>>>>>> Stashed changes ### [notifications](docs/sdks/notifications/README.md) -* [get](docs/sdks/notifications/README.md#get) - Get notification * [list](docs/sdks/notifications/README.md#list) - Get notifications +* [get](docs/sdks/notifications/README.md#get) - Get notification #### [notifications.stats](docs/sdks/stats/README.md) * [get](docs/sdks/stats/README.md#get) - Get notification statistics -<<<<<<< Updated upstream -### [Novu SDK](docs/sdks/novu/README.md) - -* [cancel](docs/sdks/novu/README.md#cancel) - Cancel triggered event -* [trigger](docs/sdks/novu/README.md#trigger) - Trigger event -* [triggerBroadcast](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all -* [triggerBulk](docs/sdks/novu/README.md#triggerbulk) - Bulk trigger event - -### [organizations](docs/sdks/organizations/README.md) - -* [eeOrganizationControllerRenameOrganization](docs/sdks/organizations/README.md#eeorganizationcontrollerrenameorganization) - Rename organization name -* [retrieve](docs/sdks/organizations/README.md#retrieve) - Fetch current organization details -* [update](docs/sdks/organizations/README.md#update) - Update organization branding details -======= ### [notificationsStats](docs/sdks/notificationsstats/README.md) * [get](docs/sdks/notificationsstats/README.md#get) - Get notification graph statistics ### [Novu SDK](docs/sdks/novu/README.md) -* [cancel](docs/sdks/novu/README.md#cancel) - Cancel triggered event * [trigger](docs/sdks/novu/README.md#trigger) - Trigger event -* [triggerBroadcast](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all * [triggerBulk](docs/sdks/novu/README.md#triggerbulk) - Bulk trigger event ->>>>>>> Stashed changes +* [triggerBroadcast](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all +* [cancel](docs/sdks/novu/README.md#cancel) - Cancel triggered event ### [subscribers](docs/sdks/subscribers/README.md) +* [getAll](docs/sdks/subscribers/README.md#getall) - Get subscribers * [create](docs/sdks/subscribers/README.md#create) - Create subscriber -* [createBulk](docs/sdks/subscribers/README.md#createbulk) - Bulk create subscribers -* [delete](docs/sdks/subscribers/README.md#delete) - Delete subscriber * [get](docs/sdks/subscribers/README.md#get) - Get subscriber -* [getAll](docs/sdks/subscribers/README.md#getall) - Get subscribers * [update](docs/sdks/subscribers/README.md#update) - Update subscriber +* [delete](docs/sdks/subscribers/README.md#delete) - Delete subscriber +* [createBulk](docs/sdks/subscribers/README.md#createbulk) - Bulk create subscribers #### [subscribers.authentication](docs/sdks/authentication/README.md) -<<<<<<< Updated upstream -* [chatAccessOauth](docs/sdks/authentication/README.md#chataccessoauth) - Handle chat oauth -* [chatAccessOauthCallBack](docs/sdks/authentication/README.md#chataccessoauthcallback) - Handle providers oauth redirect -======= -* [handleOauth](docs/sdks/authentication/README.md#handleoauth) - Handle chat oauth * [handleOauthCallback](docs/sdks/authentication/README.md#handleoauthcallback) - Handle providers oauth redirect ->>>>>>> Stashed changes +* [handleOauth](docs/sdks/authentication/README.md#handleoauth) - Handle chat oauth #### [subscribers.credentials](docs/sdks/credentials/README.md) +* [update](docs/sdks/credentials/README.md#update) - Update subscriber credentials * [append](docs/sdks/credentials/README.md#append) - Modify subscriber credentials * [delete](docs/sdks/credentials/README.md#delete) - Delete subscriber credentials by providerId -* [update](docs/sdks/credentials/README.md#update) - Update subscriber credentials #### [subscribers.messages](docs/sdks/novumessages/README.md) -<<<<<<< Updated upstream -======= * [mark](docs/sdks/novumessages/README.md#mark) - Mark a subscriber messages as seen, read, unseen or unread #### [subscribers.notifications](docs/sdks/novusubscribersnotifications/README.md) ->>>>>>> Stashed changes * [getFeed](docs/sdks/novusubscribersnotifications/README.md#getfeed) - Get in-app notification feed for a particular subscriber -<<<<<<< Updated upstream -#### [subscribers.notifications](docs/sdks/novunotifications/README.md) - -* [retrieve](docs/sdks/novunotifications/README.md#retrieve) - Get in-app notification feed for a particular subscriber -* [unseenCount](docs/sdks/novunotifications/README.md#unseencount) - Get the unseen in-app notifications count for subscribers feed - -#### [subscribers.preferences](docs/sdks/preferences/README.md) - -* [list](docs/sdks/preferences/README.md#list) - Get subscriber preferences -* [retrieveByLevel](docs/sdks/preferences/README.md#retrievebylevel) - Get subscriber preferences by level -======= #### [subscribers.preferences](docs/sdks/preferences/README.md) * [get](docs/sdks/preferences/README.md#get) - Get subscriber preferences * [getByLevel](docs/sdks/preferences/README.md#getbylevel) - Get subscriber preferences by level ->>>>>>> Stashed changes * [update](docs/sdks/preferences/README.md#update) - Update subscriber preference #### [subscribers.properties](docs/sdks/properties/README.md) -<<<<<<< Updated upstream - -* [updateOnlineFlag](docs/sdks/properties/README.md#updateonlineflag) - Update subscriber online status - -### [tenants](docs/sdks/tenants/README.md) -======= ->>>>>>> Stashed changes * [updateOnlineStatus](docs/sdks/properties/README.md#updateonlinestatus) - Update subscriber online status @@ -443,51 +327,25 @@ run(); ### [topics](docs/sdks/topics/README.md) * [create](docs/sdks/topics/README.md#create) - Topic creation +* [getAll](docs/sdks/topics/README.md#getall) - Filter topics * [delete](docs/sdks/topics/README.md#delete) - Delete topic * [get](docs/sdks/topics/README.md#get) - Get topic -* [getAll](docs/sdks/topics/README.md#getall) - Filter topics * [rename](docs/sdks/topics/README.md#rename) - Rename a topic -<<<<<<< Updated upstream -#### [topics.subscribers](docs/sdks/novusubscribers/README.md) -======= #### [topics.subscribers](docs/sdks/novutopicssubscribers/README.md) ->>>>>>> Stashed changes * [add](docs/sdks/novutopicssubscribers/README.md#add) - Subscribers addition * [check](docs/sdks/novutopicssubscribers/README.md#check) - Check topic subscriber * [remove](docs/sdks/novutopicssubscribers/README.md#remove) - Subscribers removal ### [workflowGroups](docs/sdks/workflowgroups/README.md) -<<<<<<< Updated upstream * [create](docs/sdks/workflowgroups/README.md#create) - Create workflow group -* [delete](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group * [list](docs/sdks/workflowgroups/README.md#list) - Get workflow groups -* [retrieve](docs/sdks/workflowgroups/README.md#retrieve) - Get workflow group -* [update](docs/sdks/workflowgroups/README.md#update) - Update workflow group - -### [workflows](docs/sdks/workflows/README.md) -======= ->>>>>>> Stashed changes - -* [create](docs/sdks/workflowgroups/README.md#create) - Create workflow group -* [delete](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group * [get](docs/sdks/workflowgroups/README.md#get) - Get workflow group -* [list](docs/sdks/workflowgroups/README.md#list) - Get workflow groups * [update](docs/sdks/workflowgroups/README.md#update) - Update workflow group +* [delete](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group -<<<<<<< Updated upstream -#### [workflows.status](docs/sdks/status/README.md) - -* [update](docs/sdks/status/README.md#update) - Update workflow status - -#### [workflows.variables](docs/sdks/variables/README.md) - -* [retrieve](docs/sdks/variables/README.md#retrieve) - Get available variables - -======= ->>>>>>> Stashed changes
@@ -506,93 +364,6 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). Available standalone functions -<<<<<<< Updated upstream -- [cancel](docs/sdks/novu/README.md#cancel) -- [changesApplyBulk](docs/sdks/changes/README.md#applybulk) -- [changesApply](docs/sdks/changes/README.md#apply) -- [changesCount](docs/sdks/changes/README.md#count) -- [changesRetrieve](docs/sdks/changes/README.md#retrieve) -- [environmentsApiKeysList](docs/sdks/apikeys/README.md#list) -- [environmentsList](docs/sdks/environments/README.md#list) -- [environmentsRetrieve](docs/sdks/environments/README.md#retrieve) -- [executionDetailsRetrieve](docs/sdks/executiondetails/README.md#retrieve) -- [feedsCreate](docs/sdks/feeds/README.md#create) -- [feedsDelete](docs/sdks/feeds/README.md#delete) -- [feedsRetrieve](docs/sdks/feeds/README.md#retrieve) -- [integrationsCreate](docs/sdks/integrations/README.md#create) -- [integrationsDelete](docs/sdks/integrations/README.md#delete) -- [integrationsListActive](docs/sdks/integrations/README.md#listactive) -- [integrationsList](docs/sdks/integrations/README.md#list) -- [integrationsSetAsPrimary](docs/sdks/integrations/README.md#setasprimary) -- [integrationsUpdate](docs/sdks/integrations/README.md#update) -- [integrationsWebhooksRetrieve](docs/sdks/webhooks/README.md#retrieve) -- [layoutsCreate](docs/sdks/layouts/README.md#create) -- [layoutsDelete](docs/sdks/layouts/README.md#delete) -- [layoutsList](docs/sdks/layouts/README.md#list) -- [layoutsRetrieve](docs/sdks/layouts/README.md#retrieve) -- [layoutsSetAsDefault](docs/sdks/layouts/README.md#setasdefault) -- [layoutsUpdate](docs/sdks/layouts/README.md#update) -- [messagesDeleteByTransactionId](docs/sdks/messages/README.md#deletebytransactionid) -- [messagesDelete](docs/sdks/messages/README.md#delete) -- [messagesRetrieve](docs/sdks/messages/README.md#retrieve) -- [notificationsList](docs/sdks/notifications/README.md#list) -- [notificationsRetrieve](docs/sdks/notifications/README.md#retrieve) -- [notificationsStatsGraph](docs/sdks/stats/README.md#graph) -- [notificationsStatsRetrieve](docs/sdks/stats/README.md#retrieve) -- [organizationsEEOrganizationControllerRenameOrganization](docs/sdks/organizations/README.md#eeorganizationcontrollerrenameorganization) -- [organizationsRetrieve](docs/sdks/organizations/README.md#retrieve) -- [organizationsUpdate](docs/sdks/organizations/README.md#update) -- [subscribersAuthenticationChatAccessOauthCallBack](docs/sdks/authentication/README.md#chataccessoauthcallback) -- [subscribersAuthenticationChatAccessOauth](docs/sdks/authentication/README.md#chataccessoauth) -- [subscribersCreateBulk](docs/sdks/subscribers/README.md#createbulk) -- [subscribersCreate](docs/sdks/subscribers/README.md#create) -- [subscribersCredentialsAppend](docs/sdks/credentials/README.md#append) -- [subscribersCredentialsDelete](docs/sdks/credentials/README.md#delete) -- [subscribersCredentialsUpdate](docs/sdks/credentials/README.md#update) -- [subscribersDelete](docs/sdks/subscribers/README.md#delete) -- [subscribersList](docs/sdks/subscribers/README.md#list) -- [subscribersMessagesMarkAllAs](docs/sdks/novumessages/README.md#markallas) -- [subscribersMessagesMarkAll](docs/sdks/novumessages/README.md#markall) -- [subscribersMessagesUpdateAsSeen](docs/sdks/novumessages/README.md#updateasseen) -- [subscribersNotificationsRetrieve](docs/sdks/novunotifications/README.md#retrieve) -- [subscribersNotificationsUnseenCount](docs/sdks/novunotifications/README.md#unseencount) -- [subscribersPreferencesList](docs/sdks/preferences/README.md#list) -- [subscribersPreferencesRetrieveByLevel](docs/sdks/preferences/README.md#retrievebylevel) -- [subscribersPreferencesUpdateGlobal](docs/sdks/preferences/README.md#updateglobal) -- [subscribersPreferencesUpdate](docs/sdks/preferences/README.md#update) -- [subscribersPropertiesUpdateOnlineFlag](docs/sdks/properties/README.md#updateonlineflag) -- [subscribersRetrieve](docs/sdks/subscribers/README.md#retrieve) -- [subscribersUpdate](docs/sdks/subscribers/README.md#update) -- [tenantsCreate](docs/sdks/tenants/README.md#create) -- [tenantsDelete](docs/sdks/tenants/README.md#delete) -- [tenantsList](docs/sdks/tenants/README.md#list) -- [tenantsRetrieve](docs/sdks/tenants/README.md#retrieve) -- [tenantsUpdate](docs/sdks/tenants/README.md#update) -- [topicsCreate](docs/sdks/topics/README.md#create) -- [topicsDelete](docs/sdks/topics/README.md#delete) -- [topicsList](docs/sdks/topics/README.md#list) -- [topicsRename](docs/sdks/topics/README.md#rename) -- [topicsRetrieve](docs/sdks/topics/README.md#retrieve) -- [topicsSubscribersAssign](docs/sdks/novusubscribers/README.md#assign) -- [topicsSubscribersDelete](docs/sdks/novusubscribers/README.md#delete) -- [topicsSubscribersRetrieve](docs/sdks/novusubscribers/README.md#retrieve) -- [triggerBroadcast](docs/sdks/novu/README.md#triggerbroadcast) -- [triggerBulk](docs/sdks/novu/README.md#triggerbulk) -- [trigger](docs/sdks/novu/README.md#trigger) -- [workflowGroupsCreate](docs/sdks/workflowgroups/README.md#create) -- [workflowGroupsDelete](docs/sdks/workflowgroups/README.md#delete) -- [workflowGroupsList](docs/sdks/workflowgroups/README.md#list) -- [workflowGroupsRetrieve](docs/sdks/workflowgroups/README.md#retrieve) -- [workflowGroupsUpdate](docs/sdks/workflowgroups/README.md#update) -- [workflowsCreate](docs/sdks/workflows/README.md#create) -- [workflowsDelete](docs/sdks/workflows/README.md#delete) -- [workflowsList](docs/sdks/workflows/README.md#list) -- [workflowsRetrieve](docs/sdks/workflows/README.md#retrieve) -- [workflowsStatusUpdate](docs/sdks/status/README.md#update) -- [workflowsUpdate](docs/sdks/workflows/README.md#update) -- [workflowsVariablesRetrieve](docs/sdks/variables/README.md#retrieve) - -======= - [`cancel`](docs/sdks/novu/README.md#cancel) - Cancel triggered event - [`environmentsApiKeysList`](docs/sdks/apikeys/README.md#list) - Get api keys - [`environmentsGetAll`](docs/sdks/environments/README.md#getall) - Get environments @@ -649,7 +420,6 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`workflowGroupsGet`](docs/sdks/workflowgroups/README.md#get) - Get workflow group - [`workflowGroupsList`](docs/sdks/workflowgroups/README.md#list) - Get workflow groups - [`workflowGroupsUpdate`](docs/sdks/workflowgroups/README.md#update) - Update workflow group ->>>>>>> Stashed changes @@ -674,11 +444,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.subscribers.list(); -======= const result = await novu.subscribers.getAll(); ->>>>>>> Stashed changes for await (const page of result) { // Handle the page @@ -706,7 +472,7 @@ If a HTTP request fails, an operation my also throw an error from the `models/er | InvalidRequestError | Any input used to create a request is invalid | | UnexpectedClientError | Unrecognised or unexpected error | -In addition, when custom error responses are specified for an operation, the SDK may throw their associated Error type. You can refer to respective *Errors* tables in SDK docs for more details on possible error types for each operation. For example, the `cancel` method may throw the following errors: +In addition, when custom error responses are specified for an operation, the SDK may throw their associated Error type. You can refer to respective *Errors* tables in SDK docs for more details on possible error types for each operation. For example, the `trigger` method may throw the following errors: | Error Type | Status Code | Content Type | | --------------- | ----------- | ------------ | @@ -723,11 +489,21 @@ const novu = new Novu({ async function run() { let result; try { -<<<<<<< Updated upstream - result = await novu.cancel(""); -======= - result = await novu.cancel(""); ->>>>>>> Stashed changes + result = await novu.trigger({ + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); // Handle the result console.log(result); @@ -777,11 +553,21 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel(""); -======= - const result = await novu.cancel(""); ->>>>>>> Stashed changes + const result = await novu.trigger({ + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); // Handle the result console.log(result); @@ -803,11 +589,21 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel(""); -======= - const result = await novu.cancel(""); ->>>>>>> Stashed changes + const result = await novu.trigger({ + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); // Handle the result console.log(result); @@ -887,11 +683,21 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel(""); -======= - const result = await novu.cancel(""); ->>>>>>> Stashed changes + const result = await novu.trigger({ + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); // Handle the result console.log(result); @@ -916,11 +722,21 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel("", { -======= - const result = await novu.cancel("", { ->>>>>>> Stashed changes + const result = await novu.trigger({ + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, { retries: { strategy: "backoff", backoff: { @@ -960,11 +776,21 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel(""); -======= - const result = await novu.cancel(""); ->>>>>>> Stashed changes + const result = await novu.trigger({ + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); // Handle the result console.log(result); diff --git a/USAGE.md b/USAGE.md index 1c3bb460..10c561a3 100644 --- a/USAGE.md +++ b/USAGE.md @@ -1,28 +1,4 @@ -### Cancel Triggered Event - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel(""); -======= - const result = await novu.cancel(""); ->>>>>>> Stashed changes - - // Handle the result - console.log(result); -} - -run(); - -``` - ### Trigger Notification Event ```typescript @@ -35,15 +11,13 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", type: "Topic", }, -<<<<<<< Updated upstream -======= { topicKey: "", type: "Topic", @@ -59,30 +33,6 @@ run(); ``` -### Broadcast Event to All - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.triggerBroadcast({ - name: "", - overrides: {}, - payload: {}, - }); - - // Handle the result - console.log(result); -} - -run(); - -``` - ### Trigger Notification Events in Bulk ```typescript @@ -97,8 +47,8 @@ async function run() { events: [ { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", @@ -111,8 +61,8 @@ async function run() { }, { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", @@ -122,8 +72,8 @@ async function run() { }, { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", @@ -135,13 +85,11 @@ async function run() { }, ], }, ->>>>>>> Stashed changes ], }); // Handle the result console.log(result); -<<<<<<< Updated upstream } run(); @@ -160,8 +108,8 @@ const novu = new Novu({ async function run() { const result = await novu.triggerBroadcast({ name: "", - overrides: {}, payload: {}, + overrides: {}, }); // Handle the result @@ -172,7 +120,7 @@ run(); ``` -### Trigger Notification Events in Bulk +### Cancel Triggered Event ```typescript import { Novu } from "@novu/api"; @@ -182,14 +130,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.triggerBulk({ - events: [], - }); + const result = await novu.cancel(""); // Handle the result console.log(result); -======= ->>>>>>> Stashed changes } run(); diff --git a/docs/models/components/activitiesresponsedto.md b/docs/models/components/activitiesresponsedto.md index 7eaaf2d8..c4fa33ec 100644 --- a/docs/models/components/activitiesresponsedto.md +++ b/docs/models/components/activitiesresponsedto.md @@ -6,17 +6,12 @@ import { ActivitiesResponseDto } from "@novu/api/models/components"; let value: ActivitiesResponseDto = { + hasMore: false, data: [ "", ], - hasMore: false, -<<<<<<< Updated upstream - page: 9786.19, - pageSize: 4736.08, -======= - page: 1182.74, - pageSize: 6399.21, ->>>>>>> Stashed changes + pageSize: 9767.61, + page: 6048.46, }; ``` @@ -24,7 +19,7 @@ let value: ActivitiesResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `data` | *string*[] | :heavy_check_mark: | N/A | | `hasMore` | *boolean* | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_check_mark: | N/A | -| `pageSize` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file +| `data` | *string*[] | :heavy_check_mark: | N/A | +| `pageSize` | *number* | :heavy_check_mark: | N/A | +| `page` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitygraphstatesresponse.md b/docs/models/components/activitygraphstatesresponse.md index d499570a..2acbe744 100644 --- a/docs/models/components/activitygraphstatesresponse.md +++ b/docs/models/components/activitygraphstatesresponse.md @@ -7,19 +7,13 @@ import { ActivityGraphStatesResponse } from "@novu/api/models/components"; let value: ActivityGraphStatesResponse = { id: "", - channels: [ -<<<<<<< Updated upstream - "sms", - ], - count: 5204.78, -======= - "email", - ], - count: 7742.34, ->>>>>>> Stashed changes + count: 2961.40, templates: [ "", ], + channels: [ + "in_app", + ], }; ``` @@ -28,6 +22,6 @@ let value: ActivityGraphStatesResponse = { | Field | Type | Required | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | `id` | *string* | :heavy_check_mark: | N/A | -| `channels` | [components.Channels](../../models/components/channels.md)[] | :heavy_check_mark: | N/A | | `count` | *number* | :heavy_check_mark: | N/A | -| `templates` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file +| `templates` | *string*[] | :heavy_check_mark: | N/A | +| `channels` | [components.Channels](../../models/components/channels.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationresponsedto.md b/docs/models/components/activitynotificationresponsedto.md index c25e8c6d..65be8f43 100644 --- a/docs/models/components/activitynotificationresponsedto.md +++ b/docs/models/components/activitynotificationresponsedto.md @@ -6,15 +6,9 @@ import { ActivityNotificationResponseDto } from "@novu/api/models/components"; let value: ActivityNotificationResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", - transactionId: "", -======= environmentId: "", organizationId: "", transactionId: "", ->>>>>>> Stashed changes }; ``` @@ -22,12 +16,12 @@ let value: ActivityNotificationResponseDto = { | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | -| `channels` | [components.ActivityNotificationResponseDtoChannels](../../models/components/activitynotificationresponsedtochannels.md) | :heavy_minus_sign: | N/A | +| `transactionId` | *string* | :heavy_check_mark: | N/A | | `createdAt` | *string* | :heavy_minus_sign: | N/A | -| `jobs` | *string*[] | :heavy_minus_sign: | N/A | +| `channels` | [components.ActivityNotificationResponseDtoChannels](../../models/components/activitynotificationresponsedtochannels.md) | :heavy_minus_sign: | N/A | | `subscriber` | [components.ActivityNotificationSubscriberResponseDto](../../models/components/activitynotificationsubscriberresponsedto.md) | :heavy_minus_sign: | N/A | | `template` | [components.ActivityNotificationTemplateResponseDto](../../models/components/activitynotificationtemplateresponsedto.md) | :heavy_minus_sign: | N/A | -| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `jobs` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationresponsedtochannels.md b/docs/models/components/activitynotificationresponsedtochannels.md index 9e02adea..452b1139 100644 --- a/docs/models/components/activitynotificationresponsedtochannels.md +++ b/docs/models/components/activitynotificationresponsedtochannels.md @@ -5,11 +5,7 @@ ```typescript import { ActivityNotificationResponseDtoChannels } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: ActivityNotificationResponseDtoChannels = "delay"; -======= -let value: ActivityNotificationResponseDtoChannels = "email"; ->>>>>>> Stashed changes +let value: ActivityNotificationResponseDtoChannels = "trigger"; ``` ## Values diff --git a/docs/models/components/activitynotificationsubscriberresponsedto.md b/docs/models/components/activitynotificationsubscriberresponsedto.md index d842710e..f6fb409b 100644 --- a/docs/models/components/activitynotificationsubscriberresponsedto.md +++ b/docs/models/components/activitynotificationsubscriberresponsedto.md @@ -14,8 +14,8 @@ let value: ActivityNotificationSubscriberResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | -| `email` | *string* | :heavy_minus_sign: | N/A | | `firstName` | *string* | :heavy_minus_sign: | N/A | +| `id` | *string* | :heavy_check_mark: | N/A | | `lastName` | *string* | :heavy_minus_sign: | N/A | +| `email` | *string* | :heavy_minus_sign: | N/A | | `phone` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitystatsresponsedto.md b/docs/models/components/activitystatsresponsedto.md index f738c38b..46aee20a 100644 --- a/docs/models/components/activitystatsresponsedto.md +++ b/docs/models/components/activitystatsresponsedto.md @@ -6,13 +6,8 @@ import { ActivityStatsResponseDto } from "@novu/api/models/components"; let value: ActivityStatsResponseDto = { -<<<<<<< Updated upstream - monthlySent: 7805.29, - weeklySent: 6788.8, -======= - monthlySent: 9446.69, - weeklySent: 5218.48, ->>>>>>> Stashed changes + weeklySent: 391.88, + monthlySent: 2828.07, }; ``` @@ -20,5 +15,5 @@ let value: ActivityStatsResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `monthlySent` | *number* | :heavy_check_mark: | N/A | -| `weeklySent` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file +| `weeklySent` | *number* | :heavy_check_mark: | N/A | +| `monthlySent` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/actor.md b/docs/models/components/actor.md index 54d9f548..ea709b08 100644 --- a/docs/models/components/actor.md +++ b/docs/models/components/actor.md @@ -4,40 +4,20 @@ It is used to display the Avatar of the provided actor's subscriber id or actor If a new actor object is provided, we will create a new subscriber in our system -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { Actor } from "@novu/api/models/components"; - -let value: Actor = { - subscriberId: "", -}; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = ""; ->>>>>>> Stashed changes ``` ### `components.SubscriberPayloadDto` ```typescript -<<<<<<< Updated upstream -const value: components.SubscriberPayloadDto = /* values here */ -======= const value: components.SubscriberPayloadDto = { subscriberId: "", }; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/apikey.md b/docs/models/components/apikey.md index 3b17aac3..32d8641c 100644 --- a/docs/models/components/apikey.md +++ b/docs/models/components/apikey.md @@ -6,12 +6,8 @@ import { ApiKey } from "@novu/api/models/components"; let value: ApiKey = { -<<<<<<< Updated upstream - userId: "", -======= - userId: "", ->>>>>>> Stashed changes key: "", + userId: "", }; ``` @@ -19,5 +15,5 @@ let value: ApiKey = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `userId` | *string* | :heavy_check_mark: | N/A | -| `key` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `key` | *string* | :heavy_check_mark: | N/A | +| `userId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/backoffunit.md b/docs/models/components/backoffunit.md index 7d593052..a7ea32ff 100644 --- a/docs/models/components/backoffunit.md +++ b/docs/models/components/backoffunit.md @@ -5,11 +5,7 @@ ```typescript import { BackoffUnit } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: BackoffUnit = "hours"; -======= -let value: BackoffUnit = "minutes"; ->>>>>>> Stashed changes +let value: BackoffUnit = "weeks"; ``` ## Values diff --git a/docs/models/components/bulktriggereventdto.md b/docs/models/components/bulktriggereventdto.md index ec042f6c..a93c4ac6 100644 --- a/docs/models/components/bulktriggereventdto.md +++ b/docs/models/components/bulktriggereventdto.md @@ -6,20 +6,16 @@ import { BulkTriggerEventDto } from "@novu/api/models/components"; let value: BulkTriggerEventDto = { -<<<<<<< Updated upstream - events: [], -======= events: [ { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ "SUBSCRIBER_ID", ], }, ], ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/channel.md b/docs/models/components/channel.md index 4e4a253c..0f6af4c2 100644 --- a/docs/models/components/channel.md +++ b/docs/models/components/channel.md @@ -5,15 +5,11 @@ ```typescript import { Channel } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: Channel = "push"; -======= -let value: Channel = "sms"; ->>>>>>> Stashed changes +let value: Channel = "delay"; ``` ## Values ```typescript -"in_app" | "email" | "sms" | "chat" | "push" +"in_app" | "email" | "sms" | "chat" | "push" | "digest" | "trigger" | "delay" | "custom" ``` \ No newline at end of file diff --git a/docs/models/components/channelcredentials.md b/docs/models/components/channelcredentials.md index a8e2c131..a4462dc6 100644 --- a/docs/models/components/channelcredentials.md +++ b/docs/models/components/channelcredentials.md @@ -6,11 +6,7 @@ import { ChannelCredentials } from "@novu/api/models/components"; let value: ChannelCredentials = { -<<<<<<< Updated upstream - webhookUrl: "", -======= - webhookUrl: "https://responsible-fort.info", ->>>>>>> Stashed changes + webhookUrl: "https://finished-receptor.org", }; ``` @@ -18,11 +14,11 @@ let value: ChannelCredentials = { | Field | Type | Required | Description | | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `alertUid` | *string* | :heavy_minus_sign: | alert_uid for grafana on-call webhook payload | +| `webhookUrl` | *string* | :heavy_check_mark: | Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. | | `channel` | *string* | :heavy_minus_sign: | Channel specification for Mattermost chat notifications | | `deviceTokens` | *string*[] | :heavy_minus_sign: | Contains an array of the subscriber device tokens for a given provider. Used on Push integrations | -| `externalUrl` | *string* | :heavy_minus_sign: | link_to_upstream_details property fo grafana on call webhook | +| `alertUid` | *string* | :heavy_minus_sign: | alert_uid for grafana on-call webhook payload | +| `title` | *string* | :heavy_minus_sign: | title to be used with grafana on call webhook | | `imageUrl` | *string* | :heavy_minus_sign: | image_url property fo grafana on call webhook | | `state` | *string* | :heavy_minus_sign: | state property fo grafana on call webhook | -| `title` | *string* | :heavy_minus_sign: | title to be used with grafana on call webhook | -| `webhookUrl` | *string* | :heavy_check_mark: | Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. | \ No newline at end of file +| `externalUrl` | *string* | :heavy_minus_sign: | link_to_upstream_details property fo grafana on call webhook | \ No newline at end of file diff --git a/docs/models/components/channelpreference.md b/docs/models/components/channelpreference.md index 0ee7e93f..ddd3acb6 100644 --- a/docs/models/components/channelpreference.md +++ b/docs/models/components/channelpreference.md @@ -6,18 +6,14 @@ import { ChannelPreference } from "@novu/api/models/components"; let value: ChannelPreference = { + type: "push", enabled: false, -<<<<<<< Updated upstream - type: "chat", -======= - type: "email", ->>>>>>> Stashed changes }; ``` ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `enabled` | *boolean* | :heavy_check_mark: | If channel is enabled or not | -| `type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | The type of channel that is enabled or not | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `type` | [components.ChannelPreferenceType](../../models/components/channelpreferencetype.md) | :heavy_check_mark: | The type of channel that is enabled or not | +| `enabled` | *boolean* | :heavy_check_mark: | If channel is enabled or not | \ No newline at end of file diff --git a/docs/models/components/channelpreferencetype.md b/docs/models/components/channelpreferencetype.md index 47790754..3fe32c71 100644 --- a/docs/models/components/channelpreferencetype.md +++ b/docs/models/components/channelpreferencetype.md @@ -7,7 +7,7 @@ The type of channel that is enabled or not ```typescript import { ChannelPreferenceType } from "@novu/api/models/components"; -let value: ChannelPreferenceType = "email"; +let value: ChannelPreferenceType = "sms"; ``` ## Values diff --git a/docs/models/components/channels.md b/docs/models/components/channels.md index c9debcd4..921dc283 100644 --- a/docs/models/components/channels.md +++ b/docs/models/components/channels.md @@ -5,11 +5,7 @@ ```typescript import { Channels } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: Channels = "push"; -======= -let value: Channels = "sms"; ->>>>>>> Stashed changes +let value: Channels = "in_app"; ``` ## Values diff --git a/docs/models/components/channelsettings.md b/docs/models/components/channelsettings.md index 4f89655d..ec7684c0 100644 --- a/docs/models/components/channelsettings.md +++ b/docs/models/components/channelsettings.md @@ -6,19 +6,11 @@ import { ChannelSettings } from "@novu/api/models/components"; let value: ChannelSettings = { -<<<<<<< Updated upstream - integrationId: "", + providerId: "mattermost", credentials: { - webhookUrl: "", + webhookUrl: "https://ajar-solvency.com", }, - providerId: 1433.53, -======= integrationId: "", - credentials: { - webhookUrl: "https://agitated-ocelot.name", - }, - providerId: "fcm", ->>>>>>> Stashed changes }; ``` @@ -26,11 +18,7 @@ let value: ChannelSettings = { | Field | Type | Required | Description | | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `integrationId` | *string* | :heavy_check_mark: | Id of the integration that is used for this channel | -| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | -| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | -<<<<<<< Updated upstream -| `providerId` | *number* | :heavy_check_mark: | The provider identifier for the credentials | -======= | `providerId` | [components.ProviderId](../../models/components/providerid.md) | :heavy_check_mark: | The provider identifier for the credentials | ->>>>>>> Stashed changes +| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | +| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | +| `integrationId` | *string* | :heavy_check_mark: | Id of the integration that is used for this channel | \ No newline at end of file diff --git a/docs/models/components/content.md b/docs/models/components/content.md index 49169373..1f27e6d7 100644 --- a/docs/models/components/content.md +++ b/docs/models/components/content.md @@ -1,38 +1,20 @@ # Content -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { Content } from "@novu/api/models/components"; - -let value: Content = ""; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `components.EmailBlock` ```typescript -<<<<<<< Updated upstream -const value: components.EmailBlock = /* values here */ -======= const value: components.EmailBlock = { + type: "text", content: "", - type: "button", }; ->>>>>>> Stashed changes ``` ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = ""; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/createintegrationrequestdto.md b/docs/models/components/createintegrationrequestdto.md index 3463e929..65b94eb8 100644 --- a/docs/models/components/createintegrationrequestdto.md +++ b/docs/models/components/createintegrationrequestdto.md @@ -6,26 +6,21 @@ import { CreateIntegrationRequestDto } from "@novu/api/models/components"; let value: CreateIntegrationRequestDto = { -<<<<<<< Updated upstream - channel: "push", - providerId: "", -======= - channel: "chat", providerId: "", ->>>>>>> Stashed changes + channel: "chat", }; ``` ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `environmentId` | *string* | :heavy_minus_sign: | N/A | -| `active` | *boolean* | :heavy_minus_sign: | If the integration is active the validation on the credentials field will run | -| `channel` | [components.Channel](../../models/components/channel.md) | :heavy_check_mark: | N/A | -| `check` | *boolean* | :heavy_minus_sign: | N/A | -| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | -| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `providerId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `name` | *string* | :heavy_minus_sign: | N/A | +| `identifier` | *string* | :heavy_minus_sign: | N/A | +| `environmentId` | *string* | :heavy_minus_sign: | N/A | +| `providerId` | *string* | :heavy_check_mark: | N/A | +| `channel` | [components.CreateIntegrationRequestDtoChannel](../../models/components/createintegrationrequestdtochannel.md) | :heavy_check_mark: | N/A | +| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_minus_sign: | N/A | +| `active` | *boolean* | :heavy_minus_sign: | If the integration is active the validation on the credentials field will run | +| `check` | *boolean* | :heavy_minus_sign: | N/A | +| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/createsubscriberrequestdto.md b/docs/models/components/createsubscriberrequestdto.md index c64ba1ff..3af75e08 100644 --- a/docs/models/components/createsubscriberrequestdto.md +++ b/docs/models/components/createsubscriberrequestdto.md @@ -6,11 +6,7 @@ import { CreateSubscriberRequestDto } from "@novu/api/models/components"; let value: CreateSubscriberRequestDto = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes }; ``` @@ -18,12 +14,12 @@ let value: CreateSubscriberRequestDto = { | Field | Type | Required | Description | | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | -| `channels` | *string*[] | :heavy_minus_sign: | N/A | -| `data` | [components.Data](../../models/components/data.md) | :heavy_minus_sign: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | | `email` | *string* | :heavy_minus_sign: | N/A | | `firstName` | *string* | :heavy_minus_sign: | N/A | | `lastName` | *string* | :heavy_minus_sign: | N/A | -| `locale` | *string* | :heavy_minus_sign: | N/A | | `phone` | *string* | :heavy_minus_sign: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | \ No newline at end of file +| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | +| `locale` | *string* | :heavy_minus_sign: | N/A | +| `data` | [components.CreateSubscriberRequestDtoData](../../models/components/createsubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | +| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/credentialsdto.md b/docs/models/components/credentialsdto.md index 15d93e79..3a905cac 100644 --- a/docs/models/components/credentialsdto.md +++ b/docs/models/components/credentialsdto.md @@ -12,45 +12,45 @@ let value: CredentialsDto = {}; | Field | Type | Required | Description | | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `accessKey` | *string* | :heavy_minus_sign: | N/A | -| `accountSid` | *string* | :heavy_minus_sign: | N/A | -| `alertUid` | *string* | :heavy_minus_sign: | N/A | | `apiKey` | *string* | :heavy_minus_sign: | N/A | -| `apiKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | -| `apiToken` | *string* | :heavy_minus_sign: | N/A | -| `applicationId` | *string* | :heavy_minus_sign: | N/A | -| `authenticateByToken` | *boolean* | :heavy_minus_sign: | N/A | -| `authenticationTokenKey` | *string* | :heavy_minus_sign: | N/A | -| `baseUrl` | *string* | :heavy_minus_sign: | N/A | -| `channelId` | *string* | :heavy_minus_sign: | N/A | -| `clientId` | *string* | :heavy_minus_sign: | N/A | -| `datePath` | *string* | :heavy_minus_sign: | N/A | +| `user` | *string* | :heavy_minus_sign: | N/A | +| `secretKey` | *string* | :heavy_minus_sign: | N/A | | `domain` | *string* | :heavy_minus_sign: | N/A | -| `externalLink` | *string* | :heavy_minus_sign: | N/A | -| `from` | *string* | :heavy_minus_sign: | N/A | -| `hmac` | *boolean* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | -| `idPath` | *string* | :heavy_minus_sign: | N/A | -| `ignoreTls` | *boolean* | :heavy_minus_sign: | N/A | -| `imageUrl` | *string* | :heavy_minus_sign: | N/A | -| `instanceId` | *string* | :heavy_minus_sign: | N/A | -| `ipPoolName` | *string* | :heavy_minus_sign: | N/A | -| `messageProfileId` | *string* | :heavy_minus_sign: | N/A | | `password` | *string* | :heavy_minus_sign: | N/A | -| `phoneNumberIdentification` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | | `port` | *string* | :heavy_minus_sign: | N/A | -| `projectName` | *string* | :heavy_minus_sign: | N/A | -| `redirectUrl` | *string* | :heavy_minus_sign: | N/A | -| `region` | *string* | :heavy_minus_sign: | N/A | -| `requireTls` | *boolean* | :heavy_minus_sign: | N/A | -| `secretKey` | *string* | :heavy_minus_sign: | N/A | -| `secretKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | | `secure` | *boolean* | :heavy_minus_sign: | N/A | +| `region` | *string* | :heavy_minus_sign: | N/A | +| `accountSid` | *string* | :heavy_minus_sign: | N/A | +| `messageProfileId` | *string* | :heavy_minus_sign: | N/A | +| `token` | *string* | :heavy_minus_sign: | N/A | +| `from` | *string* | :heavy_minus_sign: | N/A | | `senderName` | *string* | :heavy_minus_sign: | N/A | +| `projectName` | *string* | :heavy_minus_sign: | N/A | +| `applicationId` | *string* | :heavy_minus_sign: | N/A | +| `clientId` | *string* | :heavy_minus_sign: | N/A | +| `requireTls` | *boolean* | :heavy_minus_sign: | N/A | +| `ignoreTls` | *boolean* | :heavy_minus_sign: | N/A | +| `tlsOptions` | [components.TlsOptions](../../models/components/tlsoptions.md) | :heavy_minus_sign: | N/A | +| `baseUrl` | *string* | :heavy_minus_sign: | N/A | +| `webhookUrl` | *string* | :heavy_minus_sign: | N/A | +| `redirectUrl` | *string* | :heavy_minus_sign: | N/A | +| `hmac` | *boolean* | :heavy_minus_sign: | N/A | | `serviceAccount` | *string* | :heavy_minus_sign: | N/A | -| `state` | *string* | :heavy_minus_sign: | N/A | +| `ipPoolName` | *string* | :heavy_minus_sign: | N/A | +| `apiKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | +| `secretKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | +| `idPath` | *string* | :heavy_minus_sign: | N/A | +| `datePath` | *string* | :heavy_minus_sign: | N/A | +| `apiToken` | *string* | :heavy_minus_sign: | N/A | +| `authenticateByToken` | *boolean* | :heavy_minus_sign: | N/A | +| `authenticationTokenKey` | *string* | :heavy_minus_sign: | N/A | +| `instanceId` | *string* | :heavy_minus_sign: | N/A | +| `alertUid` | *string* | :heavy_minus_sign: | N/A | | `title` | *string* | :heavy_minus_sign: | N/A | -| `tlsOptions` | [components.TlsOptions](../../models/components/tlsoptions.md) | :heavy_minus_sign: | N/A | -| `token` | *string* | :heavy_minus_sign: | N/A | -| `user` | *string* | :heavy_minus_sign: | N/A | -| `webhookUrl` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `imageUrl` | *string* | :heavy_minus_sign: | N/A | +| `state` | *string* | :heavy_minus_sign: | N/A | +| `externalLink` | *string* | :heavy_minus_sign: | N/A | +| `channelId` | *string* | :heavy_minus_sign: | N/A | +| `phoneNumberIdentification` | *string* | :heavy_minus_sign: | N/A | +| `accessKey` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayregularmetadata.md b/docs/models/components/delayregularmetadata.md index 6b465e75..152d6ccf 100644 --- a/docs/models/components/delayregularmetadata.md +++ b/docs/models/components/delayregularmetadata.md @@ -15,5 +15,5 @@ let value: DelayRegularMetadata = { | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | | `amount` | *number* | :heavy_minus_sign: | N/A | -| `type` | [components.DelayRegularMetadataType](../../models/components/delayregularmetadatatype.md) | :heavy_check_mark: | N/A | -| `unit` | [components.Unit](../../models/components/unit.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `unit` | [components.DelayRegularMetadataUnit](../../models/components/delayregularmetadataunit.md) | :heavy_minus_sign: | N/A | +| `type` | [components.DelayRegularMetadataType](../../models/components/delayregularmetadatatype.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayscheduledmetadata.md b/docs/models/components/delayscheduledmetadata.md index c66808b0..cc5d6fdf 100644 --- a/docs/models/components/delayscheduledmetadata.md +++ b/docs/models/components/delayscheduledmetadata.md @@ -6,8 +6,8 @@ import { DelayScheduledMetadata } from "@novu/api/models/components"; let value: DelayScheduledMetadata = { - delayPath: "", type: "scheduled", + delayPath: "", }; ``` @@ -15,5 +15,5 @@ let value: DelayScheduledMetadata = { | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `delayPath` | *string* | :heavy_check_mark: | N/A | -| `type` | [components.DelayScheduledMetadataType](../../models/components/delayscheduledmetadatatype.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| `type` | [components.DelayScheduledMetadataType](../../models/components/delayscheduledmetadatatype.md) | :heavy_check_mark: | N/A | +| `delayPath` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/deletemessageresponsedto.md b/docs/models/components/deletemessageresponsedto.md index be84162e..2942b551 100644 --- a/docs/models/components/deletemessageresponsedto.md +++ b/docs/models/components/deletemessageresponsedto.md @@ -13,7 +13,7 @@ let value: DeleteMessageResponseDto = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | -| `status` | [components.Status](../../models/components/status.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | +| `status` | [components.DeleteMessageResponseDtoStatus](../../models/components/deletemessageresponsedtostatus.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file diff --git a/docs/models/components/digestregularmetadata.md b/docs/models/components/digestregularmetadata.md index 33d02c99..b667be64 100644 --- a/docs/models/components/digestregularmetadata.md +++ b/docs/models/components/digestregularmetadata.md @@ -6,7 +6,7 @@ import { DigestRegularMetadata } from "@novu/api/models/components"; let value: DigestRegularMetadata = { - type: "backoff", + type: "regular", }; ``` @@ -15,10 +15,10 @@ let value: DigestRegularMetadata = { | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | | `amount` | *number* | :heavy_minus_sign: | N/A | +| `unit` | [components.Unit](../../models/components/unit.md) | :heavy_minus_sign: | N/A | +| `digestKey` | *string* | :heavy_minus_sign: | N/A | +| `type` | [components.DigestRegularMetadataType](../../models/components/digestregularmetadatatype.md) | :heavy_check_mark: | N/A | | `backoff` | *boolean* | :heavy_minus_sign: | N/A | | `backoffAmount` | *number* | :heavy_minus_sign: | N/A | | `backoffUnit` | [components.BackoffUnit](../../models/components/backoffunit.md) | :heavy_minus_sign: | N/A | -| `digestKey` | *string* | :heavy_minus_sign: | N/A | -| `type` | [components.DigestRegularMetadataType](../../models/components/digestregularmetadatatype.md) | :heavy_check_mark: | N/A | -| `unit` | [components.DigestRegularMetadataUnit](../../models/components/digestregularmetadataunit.md) | :heavy_minus_sign: | N/A | | `updateMode` | *boolean* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadata.md b/docs/models/components/digesttimedmetadata.md index 8de2266e..c45fc8d6 100644 --- a/docs/models/components/digesttimedmetadata.md +++ b/docs/models/components/digesttimedmetadata.md @@ -15,7 +15,7 @@ let value: DigestTimedMetadata = { | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | `amount` | *number* | :heavy_minus_sign: | N/A | +| `unit` | [components.DigestTimedMetadataUnit](../../models/components/digesttimedmetadataunit.md) | :heavy_minus_sign: | N/A | | `digestKey` | *string* | :heavy_minus_sign: | N/A | -| `timed` | [components.TimedConfig](../../models/components/timedconfig.md) | :heavy_minus_sign: | N/A | | `type` | [components.DigestTimedMetadataType](../../models/components/digesttimedmetadatatype.md) | :heavy_check_mark: | N/A | -| `unit` | [components.DigestTimedMetadataUnit](../../models/components/digesttimedmetadataunit.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `timed` | [components.TimedConfig](../../models/components/timedconfig.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadataunit.md b/docs/models/components/digesttimedmetadataunit.md index 5957fe40..6f392cc4 100644 --- a/docs/models/components/digesttimedmetadataunit.md +++ b/docs/models/components/digesttimedmetadataunit.md @@ -5,11 +5,7 @@ ```typescript import { DigestTimedMetadataUnit } from "@novu/api/models/components"; -<<<<<<< Updated upstream let value: DigestTimedMetadataUnit = "hours"; -======= -let value: DigestTimedMetadataUnit = "seconds"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/emailblock.md b/docs/models/components/emailblock.md index 25eeb812..885e482c 100644 --- a/docs/models/components/emailblock.md +++ b/docs/models/components/emailblock.md @@ -6,12 +6,8 @@ import { EmailBlock } from "@novu/api/models/components"; let value: EmailBlock = { - content: "", -<<<<<<< Updated upstream - type: "text", -======= type: "button", ->>>>>>> Stashed changes + content: "", }; ``` @@ -19,7 +15,7 @@ let value: EmailBlock = { | Field | Type | Required | Description | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `content` | *string* | :heavy_check_mark: | N/A | -| `styles` | [components.EmailBlockStyles](../../models/components/emailblockstyles.md) | :heavy_minus_sign: | N/A | | `type` | [components.EmailBlockType](../../models/components/emailblocktype.md) | :heavy_check_mark: | N/A | -| `url` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `content` | *string* | :heavy_check_mark: | N/A | +| `url` | *string* | :heavy_minus_sign: | N/A | +| `styles` | [components.EmailBlockStyles](../../models/components/emailblockstyles.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/emailblockstyles.md b/docs/models/components/emailblockstyles.md index e5a75b0d..8ddbd4e2 100644 --- a/docs/models/components/emailblockstyles.md +++ b/docs/models/components/emailblockstyles.md @@ -6,11 +6,7 @@ import { EmailBlockStyles } from "@novu/api/models/components"; let value: EmailBlockStyles = { -<<<<<<< Updated upstream textAlign: "center", -======= - textAlign: "right", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/components/environmentresponsedto.md b/docs/models/components/environmentresponsedto.md index 269c2f75..c9b4473d 100644 --- a/docs/models/components/environmentresponsedto.md +++ b/docs/models/components/environmentresponsedto.md @@ -6,15 +6,10 @@ import { EnvironmentResponseDto } from "@novu/api/models/components"; let value: EnvironmentResponseDto = { -<<<<<<< Updated upstream - organizationId: "", - parentId: "", -======= + name: "", organizationId: "", - parentId: "", ->>>>>>> Stashed changes identifier: "", - name: "", + parentId: "", }; ``` @@ -23,13 +18,9 @@ let value: EnvironmentResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | | `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_check_mark: | N/A | -| `apiKeys` | *string*[] | :heavy_minus_sign: | N/A | | `identifier` | *string* | :heavy_check_mark: | N/A | -<<<<<<< Updated upstream -| `name` | *string* | :heavy_check_mark: | N/A | -======= -| `name` | *string* | :heavy_check_mark: | N/A | -| `slug` | *string* | :heavy_minus_sign: | N/A | ->>>>>>> Stashed changes +| `apiKeys` | *string*[] | :heavy_minus_sign: | N/A | +| `parentId` | *string* | :heavy_check_mark: | N/A | +| `slug` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/executiondetailsresponsedto.md b/docs/models/components/executiondetailsresponsedto.md index e4457362..62471cb7 100644 --- a/docs/models/components/executiondetailsresponsedto.md +++ b/docs/models/components/executiondetailsresponsedto.md @@ -6,56 +6,40 @@ import { ExecutionDetailsResponseDto } from "@novu/api/models/components"; let value: ExecutionDetailsResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - jobId: "", - notificationId: "", - notificationTemplateId: "", - organizationId: "", - subscriberId: "", - channel: "sms", - detail: "", - isRetry: false, - isTest: false, - source: "Internal", - status: "Failed", - transactionId: "", -======= - environmentId: "", + organizationId: "", jobId: "", + environmentId: "", notificationId: "", notificationTemplateId: "", - organizationId: "", subscriberId: "", - channel: "custom", + transactionId: "", + channel: "in_app", detail: "", - isRetry: false, - isTest: false, source: "Webhook", status: "Failed", - transactionId: "", ->>>>>>> Stashed changes + isTest: false, + isRetry: false, }; ``` ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `jobId` | *string* | :heavy_check_mark: | N/A | -| `messageId` | *string* | :heavy_minus_sign: | N/A | -| `notificationId` | *string* | :heavy_check_mark: | N/A | -| `notificationTemplateId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `channel` | [components.ExecutionDetailsResponseDtoChannel](../../models/components/executiondetailsresponsedtochannel.md) | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_minus_sign: | N/A | -| `detail` | *string* | :heavy_check_mark: | N/A | -| `isRetry` | *boolean* | :heavy_check_mark: | N/A | -| `isTest` | *boolean* | :heavy_check_mark: | N/A | -| `providerId` | *string* | :heavy_minus_sign: | N/A | -| `source` | [components.Source](../../models/components/source.md) | :heavy_check_mark: | N/A | -| `status` | [components.ExecutionDetailsResponseDtoStatus](../../models/components/executiondetailsresponsedtostatus.md) | :heavy_check_mark: | N/A | -| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `jobId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `notificationId` | *string* | :heavy_check_mark: | N/A | +| `notificationTemplateId` | *string* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `messageId` | *string* | :heavy_minus_sign: | N/A | +| `providerId` | *string* | :heavy_minus_sign: | N/A | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `channel` | [components.Channel](../../models/components/channel.md) | :heavy_check_mark: | N/A | +| `detail` | *string* | :heavy_check_mark: | N/A | +| `source` | [components.Source](../../models/components/source.md) | :heavy_check_mark: | N/A | +| `status` | [components.Status](../../models/components/status.md) | :heavy_check_mark: | N/A | +| `isTest` | *boolean* | :heavy_check_mark: | N/A | +| `isRetry` | *boolean* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/feedidentifier.md b/docs/models/components/feedidentifier.md index 4f23b093..10cebf51 100644 --- a/docs/models/components/feedidentifier.md +++ b/docs/models/components/feedidentifier.md @@ -2,40 +2,20 @@ Optional feed identifier or array of feed identifiers -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { FeedIdentifier } from "@novu/api/models/components"; - -let value: FeedIdentifier = [ - "", -]; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = ""; ->>>>>>> Stashed changes ``` ### `string[]` ```typescript -<<<<<<< Updated upstream -const value: string[] = /* values here */ -======= const value: string[] = [ "", ]; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/feedresponsedto.md b/docs/models/components/feedresponsedto.md index 0ba4289e..c8a09ed7 100644 --- a/docs/models/components/feedresponsedto.md +++ b/docs/models/components/feedresponsedto.md @@ -6,17 +6,12 @@ import { FeedResponseDto } from "@novu/api/models/components"; let value: FeedResponseDto = { + hasMore: false, data: [ "", ], - hasMore: false, -<<<<<<< Updated upstream - page: 7917.25, - pageSize: 8121.69, -======= - page: 4386.02, - pageSize: 9883.74, ->>>>>>> Stashed changes + pageSize: 6994.79, + page: 2974.37, }; ``` @@ -24,8 +19,8 @@ let value: FeedResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `data` | *string*[] | :heavy_check_mark: | N/A | +| `totalCount` | *number* | :heavy_minus_sign: | N/A | | `hasMore` | *boolean* | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_check_mark: | N/A | +| `data` | *string*[] | :heavy_check_mark: | N/A | | `pageSize` | *number* | :heavy_check_mark: | N/A | -| `totalCount` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `page` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/fieldfilterpart.md b/docs/models/components/fieldfilterpart.md index 6fe68e9b..c8c2e97b 100644 --- a/docs/models/components/fieldfilterpart.md +++ b/docs/models/components/fieldfilterpart.md @@ -7,14 +7,9 @@ import { FieldFilterPart } from "@novu/api/models/components"; let value: FieldFilterPart = { field: "", -<<<<<<< Updated upstream - on: "subscriber", - operator: "NOT_EQUAL", -======= - on: "payload", - operator: "LIKE", ->>>>>>> Stashed changes value: "", + operator: "EQUAL", + on: "payload", }; ``` @@ -23,6 +18,6 @@ let value: FieldFilterPart = { | Field | Type | Required | Description | | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | | `field` | *string* | :heavy_check_mark: | N/A | -| `on` | [components.On](../../models/components/on.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | N/A | | `operator` | [components.Operator](../../models/components/operator.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `on` | [components.On](../../models/components/on.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/filtertopicsresponsedto.md b/docs/models/components/filtertopicsresponsedto.md index 8ac3b6d6..09083966 100644 --- a/docs/models/components/filtertopicsresponsedto.md +++ b/docs/models/components/filtertopicsresponsedto.md @@ -8,13 +8,8 @@ import { FilterTopicsResponseDto } from "@novu/api/models/components"; let value: FilterTopicsResponseDto = { data: [ { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", -======= - environmentId: "", organizationId: "", ->>>>>>> Stashed changes + environmentId: "", key: "", name: "", subscribers: [ @@ -22,15 +17,9 @@ let value: FilterTopicsResponseDto = { ], }, ], -<<<<<<< Updated upstream - page: 3637.11, - pageSize: 3250.47, - totalCount: 5701.97, -======= - page: 8811.03, - pageSize: 5812.73, - totalCount: 8817.35, ->>>>>>> Stashed changes + page: 580.29, + pageSize: 4344.17, + totalCount: 3117.96, }; ``` diff --git a/docs/models/components/getsubscriberpreferencesresponsedto.md b/docs/models/components/getsubscriberpreferencesresponsedto.md index 4d59dd04..a79fe0e5 100644 --- a/docs/models/components/getsubscriberpreferencesresponsedto.md +++ b/docs/models/components/getsubscriberpreferencesresponsedto.md @@ -7,8 +7,8 @@ import { GetSubscriberPreferencesResponseDto } from "@novu/api/models/components let value: GetSubscriberPreferencesResponseDto = { preference: { - channels: {}, enabled: false, + channels: {}, }, }; ``` @@ -17,5 +17,5 @@ let value: GetSubscriberPreferencesResponseDto = { | Field | Type | Required | Description | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | -| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_minus_sign: | The workflow information and if it is critical or not | \ No newline at end of file +| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_minus_sign: | The workflow information and if it is critical or not | +| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | \ No newline at end of file diff --git a/docs/models/components/gettopicresponsedto.md b/docs/models/components/gettopicresponsedto.md index cfd0df11..30950928 100644 --- a/docs/models/components/gettopicresponsedto.md +++ b/docs/models/components/gettopicresponsedto.md @@ -6,13 +6,8 @@ import { GetTopicResponseDto } from "@novu/api/models/components"; let value: GetTopicResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", -======= - environmentId: "", organizationId: "", ->>>>>>> Stashed changes + environmentId: "", key: "", name: "", subscribers: [ @@ -25,9 +20,9 @@ let value: GetTopicResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `key` | *string* | :heavy_check_mark: | N/A | | `name` | *string* | :heavy_check_mark: | N/A | | `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/integrationresponsedto.md b/docs/models/components/integrationresponsedto.md index 6237ffbc..6e1a89c8 100644 --- a/docs/models/components/integrationresponsedto.md +++ b/docs/models/components/integrationresponsedto.md @@ -6,27 +6,18 @@ import { IntegrationResponseDto } from "@novu/api/models/components"; let value: IntegrationResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", -======= environmentId: "", organizationId: "", ->>>>>>> Stashed changes - active: false, + name: "", + identifier: "", + providerId: "", channel: "sms", credentials: {}, + active: false, deleted: false, deletedAt: "", deletedBy: "", - identifier: "", - name: "", primary: false, -<<<<<<< Updated upstream - providerId: "", -======= - providerId: "", ->>>>>>> Stashed changes }; ``` @@ -34,17 +25,17 @@ let value: IntegrationResponseDto = { | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | -| `active` | *boolean* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `identifier` | *string* | :heavy_check_mark: | N/A | +| `providerId` | *string* | :heavy_check_mark: | N/A | | `channel` | [components.IntegrationResponseDtoChannel](../../models/components/integrationresponsedtochannel.md) | :heavy_check_mark: | N/A | -| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | | `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_check_mark: | N/A | +| `active` | *boolean* | :heavy_check_mark: | N/A | | `deleted` | *boolean* | :heavy_check_mark: | N/A | | `deletedAt` | *string* | :heavy_check_mark: | N/A | | `deletedBy` | *string* | :heavy_check_mark: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | | `primary` | *boolean* | :heavy_check_mark: | N/A | -| `providerId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/integrationresponsedtochannel.md b/docs/models/components/integrationresponsedtochannel.md index c7ce2156..57607f6e 100644 --- a/docs/models/components/integrationresponsedtochannel.md +++ b/docs/models/components/integrationresponsedtochannel.md @@ -5,11 +5,7 @@ ```typescript import { IntegrationResponseDtoChannel } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: IntegrationResponseDtoChannel = "sms"; -======= -let value: IntegrationResponseDtoChannel = "chat"; ->>>>>>> Stashed changes +let value: IntegrationResponseDtoChannel = "email"; ``` ## Values diff --git a/docs/models/components/markallmessageasrequestdto.md b/docs/models/components/markallmessageasrequestdto.md index 3af1c1ba..c4b5ef09 100644 --- a/docs/models/components/markallmessageasrequestdto.md +++ b/docs/models/components/markallmessageasrequestdto.md @@ -12,7 +12,7 @@ let value: MarkAllMessageAsRequestDto = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `feedIdentifier` | *components.FeedIdentifier* | :heavy_minus_sign: | Optional feed identifier or array of feed identifiers | -| `markAs` | [components.MarkAs](../../models/components/markas.md) | :heavy_check_mark: | Mark all subscriber messages as read, unread, seen or unseen | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `feedIdentifier` | *components.FeedIdentifier* | :heavy_minus_sign: | Optional feed identifier or array of feed identifiers | +| `markAs` | [components.MarkAllMessageAsRequestDtoMarkAs](../../models/components/markallmessageasrequestdtomarkas.md) | :heavy_check_mark: | Mark all subscriber messages as read, unread, seen or unseen | \ No newline at end of file diff --git a/docs/models/components/markas.md b/docs/models/components/markas.md index a2b04ec2..45c389ae 100644 --- a/docs/models/components/markas.md +++ b/docs/models/components/markas.md @@ -1,17 +1,11 @@ # MarkAs -Mark all subscriber messages as read, unread, seen or unseen - ## Example Usage ```typescript import { MarkAs } from "@novu/api/models/components"; -<<<<<<< Updated upstream let value: MarkAs = "unseen"; -======= -let value: MarkAs = "read"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/markmessageactionasseendto.md b/docs/models/components/markmessageactionasseendto.md index d99b6e72..862a243c 100644 --- a/docs/models/components/markmessageactionasseendto.md +++ b/docs/models/components/markmessageactionasseendto.md @@ -6,17 +6,13 @@ import { MarkMessageActionAsSeenDto } from "@novu/api/models/components"; let value: MarkMessageActionAsSeenDto = { -<<<<<<< Updated upstream status: "pending", -======= - status: "done", ->>>>>>> Stashed changes }; ``` ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `payload` | [components.Payload](../../models/components/payload.md) | :heavy_minus_sign: | Message action payload | -| `status` | [components.MarkMessageActionAsSeenDtoStatus](../../models/components/markmessageactionasseendtostatus.md) | :heavy_check_mark: | Message action status | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `status` | [components.MarkMessageActionAsSeenDtoStatus](../../models/components/markmessageactionasseendtostatus.md) | :heavy_check_mark: | Message action status | +| `payload` | [components.MarkMessageActionAsSeenDtoPayload](../../models/components/markmessageactionasseendtopayload.md) | :heavy_minus_sign: | Message action payload | \ No newline at end of file diff --git a/docs/models/components/messageaction.md b/docs/models/components/messageaction.md index 7c40fbe8..33317d1d 100644 --- a/docs/models/components/messageaction.md +++ b/docs/models/components/messageaction.md @@ -12,6 +12,6 @@ let value: MessageAction = {}; | Field | Type | Required | Description | | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `status` | [components.MessageActionStatus](../../models/components/messageactionstatus.md) | :heavy_minus_sign: | N/A | | `buttons` | [components.MessageButton](../../models/components/messagebutton.md)[] | :heavy_minus_sign: | N/A | -| `result` | [components.MessageActionResult](../../models/components/messageactionresult.md) | :heavy_minus_sign: | N/A | -| `status` | [components.MessageActionStatus](../../models/components/messageactionstatus.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `result` | [components.MessageActionResult](../../models/components/messageactionresult.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageactionresulttype.md b/docs/models/components/messageactionresulttype.md index be69819a..7b4520f3 100644 --- a/docs/models/components/messageactionresulttype.md +++ b/docs/models/components/messageactionresulttype.md @@ -5,11 +5,7 @@ ```typescript import { MessageActionResultType } from "@novu/api/models/components"; -<<<<<<< Updated upstream let value: MessageActionResultType = "primary"; -======= -let value: MessageActionResultType = "secondary"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/messageactionstatus.md b/docs/models/components/messageactionstatus.md index 50309180..c039a55b 100644 --- a/docs/models/components/messageactionstatus.md +++ b/docs/models/components/messageactionstatus.md @@ -5,11 +5,7 @@ ```typescript import { MessageActionStatus } from "@novu/api/models/components"; -<<<<<<< Updated upstream let value: MessageActionStatus = "pending"; -======= -let value: MessageActionStatus = "done"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/messagebutton.md b/docs/models/components/messagebutton.md index 8f11809e..f51b4781 100644 --- a/docs/models/components/messagebutton.md +++ b/docs/models/components/messagebutton.md @@ -6,12 +6,8 @@ import { MessageButton } from "@novu/api/models/components"; let value: MessageButton = { - content: "", -<<<<<<< Updated upstream - type: "secondary", -======= type: "primary", ->>>>>>> Stashed changes + content: "", }; ``` @@ -19,6 +15,6 @@ let value: MessageButton = { | Field | Type | Required | Description | | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `type` | [components.MessageButtonType](../../models/components/messagebuttontype.md) | :heavy_check_mark: | N/A | | `content` | *string* | :heavy_check_mark: | N/A | -| `resultContent` | *string* | :heavy_minus_sign: | N/A | -| `type` | [components.MessageButtonType](../../models/components/messagebuttontype.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| `resultContent` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagecta.md b/docs/models/components/messagecta.md index ee13a74d..3b30fef1 100644 --- a/docs/models/components/messagecta.md +++ b/docs/models/components/messagecta.md @@ -14,6 +14,6 @@ let value: MessageCTA = { | Field | Type | Required | Description | | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `action` | [components.MessageAction](../../models/components/messageaction.md) | :heavy_minus_sign: | N/A | +| `type` | [components.MessageCTAType](../../models/components/messagectatype.md) | :heavy_minus_sign: | N/A | | `data` | [components.MessageCTAData](../../models/components/messagectadata.md) | :heavy_check_mark: | N/A | -| `type` | [components.MessageCTAType](../../models/components/messagectatype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `action` | [components.MessageAction](../../models/components/messageaction.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageid.md b/docs/models/components/messageid.md index 78ab5a76..46eeb36d 100644 --- a/docs/models/components/messageid.md +++ b/docs/models/components/messageid.md @@ -1,37 +1,19 @@ # MessageId -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { MessageId } from "@novu/api/models/components"; - -let value: MessageId = ""; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = ""; ->>>>>>> Stashed changes ``` ### `string[]` ```typescript -<<<<<<< Updated upstream -const value: string[] = /* values here */ -======= const value: string[] = [ "", ]; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/messagemarkasrequestdto.md b/docs/models/components/messagemarkasrequestdto.md index de144356..33bcd0bd 100644 --- a/docs/models/components/messagemarkasrequestdto.md +++ b/docs/models/components/messagemarkasrequestdto.md @@ -6,20 +6,14 @@ import { MessageMarkAsRequestDto } from "@novu/api/models/components"; let value: MessageMarkAsRequestDto = { - markAs: "seen", -<<<<<<< Updated upstream - messageId: "", -======= - messageId: [ - "", - ], ->>>>>>> Stashed changes + messageId: "", + markAs: "unseen", }; ``` ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `markAs` | [components.MessageMarkAsRequestDtoMarkAs](../../models/components/messagemarkasrequestdtomarkas.md) | :heavy_check_mark: | N/A | -| `messageId` | *components.MessageId* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `messageId` | *components.MessageId* | :heavy_check_mark: | N/A | +| `markAs` | [components.MarkAs](../../models/components/markas.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageresponsedto.md b/docs/models/components/messageresponsedto.md index 0698b0e1..544b5ad3 100644 --- a/docs/models/components/messageresponsedto.md +++ b/docs/models/components/messageresponsedto.md @@ -6,83 +6,62 @@ import { MessageResponseDto } from "@novu/api/models/components"; let value: MessageResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - messageTemplateId: "", - notificationId: "", - organizationId: "", - subscriberId: "", - templateId: "", - channel: "sms", -======= + templateId: "", environmentId: "", messageTemplateId: "", - notificationId: "", organizationId: "", + notificationId: "", subscriberId: "", - templateId: "", - channel: "in_app", ->>>>>>> Stashed changes - content: { - content: "", - type: "text", - }, createdAt: "", + content: "", + transactionId: "", + channel: "sms", + read: false, + seen: false, cta: { data: {}, }, -<<<<<<< Updated upstream - errorId: "", -======= + status: "error", errorId: "", ->>>>>>> Stashed changes errorText: "", - overrides: {}, payload: {}, - read: false, - seen: false, - status: "sent", -<<<<<<< Updated upstream - transactionId: "", -======= - transactionId: "", ->>>>>>> Stashed changes + overrides: {}, }; ``` ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `feedId` | [components.FeedId](../../models/components/feedid.md) | :heavy_minus_sign: | N/A | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `messageTemplateId` | *string* | :heavy_check_mark: | N/A | -| `notificationId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `templateId` | *string* | :heavy_check_mark: | N/A | -| `channel` | [components.MessageResponseDtoChannel](../../models/components/messageresponsedtochannel.md) | :heavy_check_mark: | N/A | -| `content` | *components.Content* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `cta` | [components.MessageCTA](../../models/components/messagecta.md) | :heavy_check_mark: | N/A | -| `deviceTokens` | *string*[] | :heavy_minus_sign: | N/A | -| `directWebhookUrl` | *string* | :heavy_minus_sign: | N/A | -| `email` | *string* | :heavy_minus_sign: | N/A | -| `errorId` | *string* | :heavy_check_mark: | N/A | -| `errorText` | *string* | :heavy_check_mark: | N/A | -| `lastReadDate` | *string* | :heavy_minus_sign: | N/A | -| `lastSeenDate` | *string* | :heavy_minus_sign: | N/A | -| `overrides` | [components.Overrides](../../models/components/overrides.md) | :heavy_check_mark: | Provider specific overrides used when triggering the notification | -| `payload` | [components.MessageResponseDtoPayload](../../models/components/messageresponsedtopayload.md) | :heavy_check_mark: | The payload that was used to send the notification trigger | -| `phone` | *string* | :heavy_minus_sign: | N/A | -| `providerId` | *string* | :heavy_minus_sign: | N/A | -| `read` | *boolean* | :heavy_check_mark: | N/A | -| `seen` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [components.MessageResponseDtoStatus](../../models/components/messageresponsedtostatus.md) | :heavy_check_mark: | N/A | -| `subject` | *string* | :heavy_minus_sign: | N/A | -| `subscriber` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_minus_sign: | N/A | -| `template` | [components.WorkflowResponse](../../models/components/workflowresponse.md) | :heavy_minus_sign: | N/A | -| `templateIdentifier` | *string* | :heavy_minus_sign: | N/A | -| `title` | *string* | :heavy_minus_sign: | N/A | -| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `templateId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `messageTemplateId` | *string* | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `notificationId` | *string* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `subscriber` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_minus_sign: | N/A | +| `template` | [components.WorkflowResponse](../../models/components/workflowresponse.md) | :heavy_minus_sign: | N/A | +| `templateIdentifier` | *string* | :heavy_minus_sign: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `lastSeenDate` | *string* | :heavy_minus_sign: | N/A | +| `lastReadDate` | *string* | :heavy_minus_sign: | N/A | +| `content` | *components.Content* | :heavy_check_mark: | N/A | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `subject` | *string* | :heavy_minus_sign: | N/A | +| `channel` | [components.MessageResponseDtoChannel](../../models/components/messageresponsedtochannel.md) | :heavy_check_mark: | N/A | +| `read` | *boolean* | :heavy_check_mark: | N/A | +| `seen` | *boolean* | :heavy_check_mark: | N/A | +| `email` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | +| `directWebhookUrl` | *string* | :heavy_minus_sign: | N/A | +| `providerId` | *string* | :heavy_minus_sign: | N/A | +| `deviceTokens` | *string*[] | :heavy_minus_sign: | N/A | +| `title` | *string* | :heavy_minus_sign: | N/A | +| `cta` | [components.MessageCTA](../../models/components/messagecta.md) | :heavy_check_mark: | N/A | +| `feedId` | [components.FeedId](../../models/components/feedid.md) | :heavy_minus_sign: | N/A | +| `status` | [components.MessageResponseDtoStatus](../../models/components/messageresponsedtostatus.md) | :heavy_check_mark: | N/A | +| `errorId` | *string* | :heavy_check_mark: | N/A | +| `errorText` | *string* | :heavy_check_mark: | N/A | +| `payload` | [components.MessageResponseDtoPayload](../../models/components/messageresponsedtopayload.md) | :heavy_check_mark: | The payload that was used to send the notification trigger | +| `overrides` | [components.MessageResponseDtoOverrides](../../models/components/messageresponsedtooverrides.md) | :heavy_check_mark: | Provider specific overrides used when triggering the notification | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtochannel.md b/docs/models/components/messageresponsedtochannel.md index 693d1490..1e367bec 100644 --- a/docs/models/components/messageresponsedtochannel.md +++ b/docs/models/components/messageresponsedtochannel.md @@ -5,11 +5,7 @@ ```typescript import { MessageResponseDtoChannel } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: MessageResponseDtoChannel = "in_app"; -======= -let value: MessageResponseDtoChannel = "email"; ->>>>>>> Stashed changes +let value: MessageResponseDtoChannel = "sms"; ``` ## Values diff --git a/docs/models/components/messageresponsedtostatus.md b/docs/models/components/messageresponsedtostatus.md index f3fa452f..d2a8d2eb 100644 --- a/docs/models/components/messageresponsedtostatus.md +++ b/docs/models/components/messageresponsedtostatus.md @@ -5,11 +5,7 @@ ```typescript import { MessageResponseDtoStatus } from "@novu/api/models/components"; -<<<<<<< Updated upstream let value: MessageResponseDtoStatus = "warning"; -======= -let value: MessageResponseDtoStatus = "sent"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/metadata.md b/docs/models/components/metadata.md index 097a034e..d4991d52 100644 --- a/docs/models/components/metadata.md +++ b/docs/models/components/metadata.md @@ -1,66 +1,38 @@ # Metadata -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { Metadata } from "@novu/api/models/components"; - -let value: Metadata = { - type: "backoff", -}; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `components.DigestRegularMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DigestRegularMetadata = /* values here */ -======= const value: components.DigestRegularMetadata = { type: "backoff", }; ->>>>>>> Stashed changes ``` ### `components.DigestTimedMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DigestTimedMetadata = /* values here */ -======= const value: components.DigestTimedMetadata = { type: "timed", }; ->>>>>>> Stashed changes ``` ### `components.DelayRegularMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DelayRegularMetadata = /* values here */ -======= const value: components.DelayRegularMetadata = { type: "regular", }; ->>>>>>> Stashed changes ``` ### `components.DelayScheduledMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DelayScheduledMetadata = /* values here */ -======= const value: components.DelayScheduledMetadata = { - delayPath: "", type: "scheduled", + delayPath: "", }; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/monthlytype.md b/docs/models/components/monthlytype.md index 91f60daf..8b6ac551 100644 --- a/docs/models/components/monthlytype.md +++ b/docs/models/components/monthlytype.md @@ -5,11 +5,7 @@ ```typescript import { MonthlyType } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: MonthlyType = "each"; -======= let value: MonthlyType = "on"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/notificationgroup.md b/docs/models/components/notificationgroup.md index 28c17585..da0294bb 100644 --- a/docs/models/components/notificationgroup.md +++ b/docs/models/components/notificationgroup.md @@ -6,14 +6,9 @@ import { NotificationGroup } from "@novu/api/models/components"; let value: NotificationGroup = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", -======= + name: "", environmentId: "", organizationId: "", ->>>>>>> Stashed changes - name: "", }; ``` @@ -21,8 +16,8 @@ let value: NotificationGroup = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `parentId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationgroupresponsedto.md b/docs/models/components/notificationgroupresponsedto.md index 06390bf4..55741489 100644 --- a/docs/models/components/notificationgroupresponsedto.md +++ b/docs/models/components/notificationgroupresponsedto.md @@ -6,14 +6,9 @@ import { NotificationGroupResponseDto } from "@novu/api/models/components"; let value: NotificationGroupResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", -======= + name: "", environmentId: "", organizationId: "", ->>>>>>> Stashed changes - name: "", }; ``` @@ -21,8 +16,8 @@ let value: NotificationGroupResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `parentId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstep.md b/docs/models/components/notificationstep.md index a176ef65..5cab470b 100644 --- a/docs/models/components/notificationstep.md +++ b/docs/models/components/notificationstep.md @@ -13,14 +13,14 @@ let value: NotificationStep = {}; | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | `id` | *string* | :heavy_minus_sign: | N/A | -| `parentId` | [components.ParentId](../../models/components/parentid.md) | :heavy_minus_sign: | N/A | +| `uuid` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_minus_sign: | N/A | | `templateId` | *string* | :heavy_minus_sign: | N/A | | `active` | *boolean* | :heavy_minus_sign: | N/A | +| `shouldStopOnFail` | *boolean* | :heavy_minus_sign: | N/A | +| `template` | [components.MessageTemplate](../../models/components/messagetemplate.md) | :heavy_minus_sign: | N/A | | `filters` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | +| `parentId` | [components.ParentId](../../models/components/parentid.md) | :heavy_minus_sign: | N/A | | `metadata` | *components.Metadata* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | | `replyCallback` | [components.ReplyCallback](../../models/components/replycallback.md) | :heavy_minus_sign: | N/A | -| `shouldStopOnFail` | *boolean* | :heavy_minus_sign: | N/A | -| `template` | [components.MessageTemplate](../../models/components/messagetemplate.md) | :heavy_minus_sign: | N/A | -| `uuid` | *string* | :heavy_minus_sign: | N/A | | `variants` | [components.NotificationStepVariant](../../models/components/notificationstepvariant.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariant.md b/docs/models/components/notificationstepvariant.md index dac12272..cfb4d749 100644 --- a/docs/models/components/notificationstepvariant.md +++ b/docs/models/components/notificationstepvariant.md @@ -13,13 +13,13 @@ let value: NotificationStepVariant = {}; | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | | `id` | *string* | :heavy_minus_sign: | N/A | -| `parentId` | [components.NotificationStepVariantParentId](../../models/components/notificationstepvariantparentid.md) | :heavy_minus_sign: | N/A | +| `uuid` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_minus_sign: | N/A | | `templateId` | *string* | :heavy_minus_sign: | N/A | | `active` | *boolean* | :heavy_minus_sign: | N/A | -| `filters` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | -| `metadata` | *components.NotificationStepVariantMetadata* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `replyCallback` | [components.NotificationStepVariantReplyCallback](../../models/components/notificationstepvariantreplycallback.md) | :heavy_minus_sign: | N/A | | `shouldStopOnFail` | *boolean* | :heavy_minus_sign: | N/A | | `template` | [components.MessageTemplate](../../models/components/messagetemplate.md) | :heavy_minus_sign: | N/A | -| `uuid` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `filters` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | +| `parentId` | [components.NotificationStepVariantParentId](../../models/components/notificationstepvariantparentid.md) | :heavy_minus_sign: | N/A | +| `metadata` | *components.NotificationStepVariantMetadata* | :heavy_minus_sign: | N/A | +| `replyCallback` | [components.NotificationStepVariantReplyCallback](../../models/components/notificationstepvariantreplycallback.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariantmetadata.md b/docs/models/components/notificationstepvariantmetadata.md index 11b0444d..bcea460c 100644 --- a/docs/models/components/notificationstepvariantmetadata.md +++ b/docs/models/components/notificationstepvariantmetadata.md @@ -1,66 +1,38 @@ # NotificationStepVariantMetadata -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { NotificationStepVariantMetadata } from "@novu/api/models/components"; - -let value: NotificationStepVariantMetadata = { - type: "backoff", -}; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `components.DigestRegularMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DigestRegularMetadata = /* values here */ -======= const value: components.DigestRegularMetadata = { - type: "regular", + type: "backoff", }; ->>>>>>> Stashed changes ``` ### `components.DigestTimedMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DigestTimedMetadata = /* values here */ -======= const value: components.DigestTimedMetadata = { type: "timed", }; ->>>>>>> Stashed changes ``` ### `components.DelayRegularMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DelayRegularMetadata = /* values here */ -======= const value: components.DelayRegularMetadata = { type: "regular", }; ->>>>>>> Stashed changes ``` ### `components.DelayScheduledMetadata` ```typescript -<<<<<<< Updated upstream -const value: components.DelayScheduledMetadata = /* values here */ -======= const value: components.DelayScheduledMetadata = { - delayPath: "", type: "scheduled", + delayPath: "", }; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/notificationtrigger.md b/docs/models/components/notificationtrigger.md index 259a8d41..d15253f7 100644 --- a/docs/models/components/notificationtrigger.md +++ b/docs/models/components/notificationtrigger.md @@ -6,8 +6,8 @@ import { NotificationTrigger } from "@novu/api/models/components"; let value: NotificationTrigger = { - identifier: "", type: "event", + identifier: "", variables: [ { name: "", @@ -20,7 +20,7 @@ let value: NotificationTrigger = { | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `subscriberVariables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_minus_sign: | N/A | | `type` | [components.NotificationTriggerType](../../models/components/notificationtriggertype.md) | :heavy_check_mark: | N/A | -| `variables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file +| `identifier` | *string* | :heavy_check_mark: | N/A | +| `variables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_check_mark: | N/A | +| `subscriberVariables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/on.md b/docs/models/components/on.md index 7380661b..3f67d3c1 100644 --- a/docs/models/components/on.md +++ b/docs/models/components/on.md @@ -5,11 +5,7 @@ ```typescript import { On } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: On = "subscriber"; -======= let value: On = "payload"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/operator.md b/docs/models/components/operator.md index 4997ba21..4d9a5b40 100644 --- a/docs/models/components/operator.md +++ b/docs/models/components/operator.md @@ -5,11 +5,7 @@ ```typescript import { Operator } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: Operator = "BETWEEN"; -======= -let value: Operator = "NOT_LIKE"; ->>>>>>> Stashed changes +let value: Operator = "NOT_IN"; ``` ## Values diff --git a/docs/models/components/ordinal.md b/docs/models/components/ordinal.md index 52b43ba4..d30ab30d 100644 --- a/docs/models/components/ordinal.md +++ b/docs/models/components/ordinal.md @@ -5,11 +5,7 @@ ```typescript import { Ordinal } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: Ordinal = "4"; -======= let value: Ordinal = "2"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/ordinalvalue.md b/docs/models/components/ordinalvalue.md index 843f0826..31c73e0b 100644 --- a/docs/models/components/ordinalvalue.md +++ b/docs/models/components/ordinalvalue.md @@ -5,11 +5,7 @@ ```typescript import { OrdinalValue } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: OrdinalValue = "monday"; -======= -let value: OrdinalValue = "thursday"; ->>>>>>> Stashed changes +let value: OrdinalValue = "saturday"; ``` ## Values diff --git a/docs/models/components/overrides.md b/docs/models/components/overrides.md index cafd1649..99d8c8be 100644 --- a/docs/models/components/overrides.md +++ b/docs/models/components/overrides.md @@ -1,6 +1,6 @@ # Overrides -Provider specific overrides used when triggering the notification +This could be used to override provider specific configurations ## Example Usage diff --git a/docs/models/components/payload.md b/docs/models/components/payload.md index 02241ce7..0d201d57 100644 --- a/docs/models/components/payload.md +++ b/docs/models/components/payload.md @@ -1,6 +1,7 @@ # Payload -Message action payload +The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. ## Example Usage diff --git a/docs/models/components/preference.md b/docs/models/components/preference.md index c2da69be..3d3470b3 100644 --- a/docs/models/components/preference.md +++ b/docs/models/components/preference.md @@ -6,8 +6,8 @@ import { Preference } from "@novu/api/models/components"; let value: Preference = { - channels: {}, enabled: false, + channels: {}, }; ``` @@ -15,5 +15,5 @@ let value: Preference = { | Field | Type | Required | Description | | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `channels` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | Subscriber preferences for the different channels regarding this workflow | -| `enabled` | *boolean* | :heavy_check_mark: | Sets if the workflow is fully enabled for all channels or not for the subscriber. | \ No newline at end of file +| `enabled` | *boolean* | :heavy_check_mark: | Sets if the workflow is fully enabled for all channels or not for the subscriber. | +| `channels` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | Subscriber preferences for the different channels regarding this workflow | \ No newline at end of file diff --git a/docs/models/components/preferencechannels.md b/docs/models/components/preferencechannels.md index 17ab2010..f6df176a 100644 --- a/docs/models/components/preferencechannels.md +++ b/docs/models/components/preferencechannels.md @@ -12,8 +12,8 @@ let value: PreferenceChannels = {}; | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `chat` | *boolean* | :heavy_minus_sign: | N/A | | `email` | *boolean* | :heavy_minus_sign: | N/A | +| `sms` | *boolean* | :heavy_minus_sign: | N/A | | `inApp` | *boolean* | :heavy_minus_sign: | N/A | -| `push` | *boolean* | :heavy_minus_sign: | N/A | -| `sms` | *boolean* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `chat` | *boolean* | :heavy_minus_sign: | N/A | +| `push` | *boolean* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/providerid.md b/docs/models/components/providerid.md index 1c44735f..d9bbdbd0 100644 --- a/docs/models/components/providerid.md +++ b/docs/models/components/providerid.md @@ -7,7 +7,7 @@ The provider identifier for the credentials ```typescript import { ProviderId } from "@novu/api/models/components"; -let value: ProviderId = "getstream"; +let value: ProviderId = "ryver"; ``` ## Values diff --git a/docs/models/components/renametopicresponsedto.md b/docs/models/components/renametopicresponsedto.md index 0dea307c..2e200baf 100644 --- a/docs/models/components/renametopicresponsedto.md +++ b/docs/models/components/renametopicresponsedto.md @@ -6,13 +6,8 @@ import { RenameTopicResponseDto } from "@novu/api/models/components"; let value: RenameTopicResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", -======= - environmentId: "", organizationId: "", ->>>>>>> Stashed changes + environmentId: "", key: "", name: "", subscribers: [ @@ -25,9 +20,9 @@ let value: RenameTopicResponseDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `key` | *string* | :heavy_check_mark: | N/A | | `name` | *string* | :heavy_check_mark: | N/A | | `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/source.md b/docs/models/components/source.md index dbe34de0..cc43d1f7 100644 --- a/docs/models/components/source.md +++ b/docs/models/components/source.md @@ -5,11 +5,7 @@ ```typescript import { Source } from "@novu/api/models/components"; -<<<<<<< Updated upstream let value: Source = "Credentials"; -======= -let value: Source = "Payload"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/status.md b/docs/models/components/status.md index 09ea6e27..37cc848a 100644 --- a/docs/models/components/status.md +++ b/docs/models/components/status.md @@ -1,17 +1,15 @@ # Status -The status enum for the performed action - ## Example Usage ```typescript import { Status } from "@novu/api/models/components"; -let value: Status = "deleted"; +let value: Status = "ReadConfirmation"; ``` ## Values ```typescript -"deleted" +"Success" | "Warning" | "Failed" | "Pending" | "Queued" | "ReadConfirmation" ``` \ No newline at end of file diff --git a/docs/models/components/stepfilter.md b/docs/models/components/stepfilter.md index c2e4f77a..92ed9d29 100644 --- a/docs/models/components/stepfilter.md +++ b/docs/models/components/stepfilter.md @@ -6,26 +6,17 @@ import { StepFilter } from "@novu/api/models/components"; let value: StepFilter = { + isNegated: false, + type: "STATEMENT", + value: "AND", children: [ { field: "", -<<<<<<< Updated upstream - on: "payload", - operator: "LIKE", -======= - on: "subscriber", - operator: "SMALLER", ->>>>>>> Stashed changes value: "", + operator: "ANY_IN", + on: "subscriber", }, ], - isNegated: false, - type: "BOOLEAN", -<<<<<<< Updated upstream - value: "AND", -======= - value: "OR", ->>>>>>> Stashed changes }; ``` @@ -33,7 +24,7 @@ let value: StepFilter = { | Field | Type | Required | Description | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `children` | [components.FieldFilterPart](../../models/components/fieldfilterpart.md)[] | :heavy_check_mark: | N/A | | `isNegated` | *boolean* | :heavy_check_mark: | N/A | | `type` | [components.StepFilterType](../../models/components/stepfiltertype.md) | :heavy_check_mark: | N/A | -| `value` | [components.Value](../../models/components/value.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| `value` | [components.Value](../../models/components/value.md) | :heavy_check_mark: | N/A | +| `children` | [components.FieldFilterPart](../../models/components/fieldfilterpart.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/stepfiltertype.md b/docs/models/components/stepfiltertype.md index f8bc6288..ace94e10 100644 --- a/docs/models/components/stepfiltertype.md +++ b/docs/models/components/stepfiltertype.md @@ -5,7 +5,7 @@ ```typescript import { StepFilterType } from "@novu/api/models/components"; -let value: StepFilterType = "STATEMENT"; +let value: StepFilterType = "BOOLEAN"; ``` ## Values diff --git a/docs/models/components/subscriberpayloaddto.md b/docs/models/components/subscriberpayloaddto.md index 2017dd76..d8af3779 100644 --- a/docs/models/components/subscriberpayloaddto.md +++ b/docs/models/components/subscriberpayloaddto.md @@ -6,11 +6,7 @@ import { SubscriberPayloadDto } from "@novu/api/models/components"; let value: SubscriberPayloadDto = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes }; ``` @@ -18,12 +14,12 @@ let value: SubscriberPayloadDto = { | Field | Type | Required | Description | | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | -| `channels` | *string*[] | :heavy_minus_sign: | N/A | -| `data` | [components.SubscriberPayloadDtoData](../../models/components/subscriberpayloaddtodata.md) | :heavy_minus_sign: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | | `email` | *string* | :heavy_minus_sign: | N/A | | `firstName` | *string* | :heavy_minus_sign: | N/A | | `lastName` | *string* | :heavy_minus_sign: | N/A | -| `locale` | *string* | :heavy_minus_sign: | N/A | | `phone` | *string* | :heavy_minus_sign: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | \ No newline at end of file +| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | +| `locale` | *string* | :heavy_minus_sign: | N/A | +| `data` | [components.Data](../../models/components/data.md) | :heavy_minus_sign: | N/A | +| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/subscriberresponsedto.md b/docs/models/components/subscriberresponsedto.md index f1fff5ad..c42f918e 100644 --- a/docs/models/components/subscriberresponsedto.md +++ b/docs/models/components/subscriberresponsedto.md @@ -6,19 +6,11 @@ import { SubscriberResponseDto } from "@novu/api/models/components"; let value: SubscriberResponseDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", - createdAt: "", - deleted: false, - subscriberId: "", -======= - environmentId: "", + subscriberId: "", organizationId: "", - createdAt: "", + environmentId: "", deleted: false, - subscriberId: "", ->>>>>>> Stashed changes + createdAt: "", updatedAt: "", }; ``` @@ -27,21 +19,21 @@ let value: SubscriberResponseDto = { | Field | Type | Required | Description | | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `v` | *number* | :heavy_minus_sign: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `avatar` | *string* | :heavy_minus_sign: | N/A | -| `channels` | [components.ChannelSettings](../../models/components/channelsettings.md)[] | :heavy_minus_sign: | Channels settings for subscriber | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `deleted` | *boolean* | :heavy_check_mark: | N/A | -| `email` | *string* | :heavy_minus_sign: | N/A | | `firstName` | *string* | :heavy_minus_sign: | N/A | -| `isOnline` | *boolean* | :heavy_minus_sign: | N/A | | `lastName` | *string* | :heavy_minus_sign: | N/A | -| `lastOnlineAt` | *string* | :heavy_minus_sign: | N/A | -| `locale` | *string* | :heavy_minus_sign: | N/A | +| `email` | *string* | :heavy_minus_sign: | N/A | | `phone` | *string* | :heavy_minus_sign: | N/A | +| `avatar` | *string* | :heavy_minus_sign: | N/A | +| `locale` | *string* | :heavy_minus_sign: | N/A | | `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | +| `channels` | [components.ChannelSettings](../../models/components/channelsettings.md)[] | :heavy_minus_sign: | Channels settings for subscriber | | `topics` | *string*[] | :heavy_minus_sign: | Topics that subscriber belongs to | -| `updatedAt` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `isOnline` | *boolean* | :heavy_minus_sign: | N/A | +| `lastOnlineAt` | *string* | :heavy_minus_sign: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `deleted` | *boolean* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `updatedAt` | *string* | :heavy_check_mark: | N/A | +| `v` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/templateresponse.md b/docs/models/components/templateresponse.md index 47ba212f..b7db0638 100644 --- a/docs/models/components/templateresponse.md +++ b/docs/models/components/templateresponse.md @@ -7,8 +7,8 @@ import { TemplateResponse } from "@novu/api/models/components"; let value: TemplateResponse = { id: "", - critical: false, name: "", + critical: false, triggers: [ "", ], @@ -20,6 +20,6 @@ let value: TemplateResponse = { | Field | Type | Required | Description | | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | | `id` | *string* | :heavy_check_mark: | Unique identifier of the workflow | -| `critical` | *boolean* | :heavy_check_mark: | Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen | | `name` | *string* | :heavy_check_mark: | Name of the workflow | +| `critical` | *boolean* | :heavy_check_mark: | Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen | | `triggers` | *string*[] | :heavy_check_mark: | Triggers are the events that will trigger the workflow. | \ No newline at end of file diff --git a/docs/models/components/tenant.md b/docs/models/components/tenant.md index e4e716b4..41d67814 100644 --- a/docs/models/components/tenant.md +++ b/docs/models/components/tenant.md @@ -4,36 +4,18 @@ It is used to specify a tenant context during trigger event. Existing tenants will be updated with the provided details. -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { Tenant } from "@novu/api/models/components"; - -let value: Tenant = {}; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = ""; ->>>>>>> Stashed changes ``` ### `components.TenantPayloadDto` ```typescript -<<<<<<< Updated upstream -const value: components.TenantPayloadDto = /* values here */ -======= const value: components.TenantPayloadDto = {}; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/tenantpayloaddto.md b/docs/models/components/tenantpayloaddto.md index 41a3fbb3..661d9a83 100644 --- a/docs/models/components/tenantpayloaddto.md +++ b/docs/models/components/tenantpayloaddto.md @@ -12,6 +12,6 @@ let value: TenantPayloadDto = {}; | Field | Type | Required | Description | | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `data` | [components.TenantPayloadDtoData](../../models/components/tenantpayloaddtodata.md) | :heavy_minus_sign: | N/A | | `identifier` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `name` | *string* | :heavy_minus_sign: | N/A | +| `data` | [components.TenantPayloadDtoData](../../models/components/tenantpayloaddtodata.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/textalign.md b/docs/models/components/textalign.md index 7f394420..aa50769d 100644 --- a/docs/models/components/textalign.md +++ b/docs/models/components/textalign.md @@ -5,11 +5,7 @@ ```typescript import { TextAlign } from "@novu/api/models/components"; -<<<<<<< Updated upstream let value: TextAlign = "center"; -======= -let value: TextAlign = "right"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/timedconfig.md b/docs/models/components/timedconfig.md index c2882edb..201d9d7e 100644 --- a/docs/models/components/timedconfig.md +++ b/docs/models/components/timedconfig.md @@ -13,8 +13,8 @@ let value: TimedConfig = {}; | Field | Type | Required | Description | | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | | `atTime` | *string* | :heavy_minus_sign: | N/A | +| `weekDays` | [components.WeekDays](../../models/components/weekdays.md)[] | :heavy_minus_sign: | N/A | | `monthDays` | *string*[] | :heavy_minus_sign: | N/A | -| `monthlyType` | [components.MonthlyType](../../models/components/monthlytype.md) | :heavy_minus_sign: | N/A | | `ordinal` | [components.Ordinal](../../models/components/ordinal.md) | :heavy_minus_sign: | N/A | | `ordinalValue` | [components.OrdinalValue](../../models/components/ordinalvalue.md) | :heavy_minus_sign: | N/A | -| `weekDays` | [components.WeekDays](../../models/components/weekdays.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file +| `monthlyType` | [components.MonthlyType](../../models/components/monthlytype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/to.md b/docs/models/components/to.md index 4d3065a9..6a16d8b4 100644 --- a/docs/models/components/to.md +++ b/docs/models/components/to.md @@ -1,50 +1,28 @@ # To -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { To } from "@novu/api/models/components"; - -let value: To = "SUBSCRIBER_ID"; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `components.SubscriberPayloadDto` ```typescript -<<<<<<< Updated upstream -const value: components.SubscriberPayloadDto = /* values here */ -======= const value: components.SubscriberPayloadDto = { subscriberId: "", }; ->>>>>>> Stashed changes ``` ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = "SUBSCRIBER_ID"; ->>>>>>> Stashed changes ``` ### `components.TopicPayloadDto` ```typescript -<<<<<<< Updated upstream -const value: components.TopicPayloadDto = /* values here */ -======= const value: components.TopicPayloadDto = { topicKey: "", type: "Topic", }; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/topicdto.md b/docs/models/components/topicdto.md index 1b37538b..5bfda316 100644 --- a/docs/models/components/topicdto.md +++ b/docs/models/components/topicdto.md @@ -6,13 +6,8 @@ import { TopicDto } from "@novu/api/models/components"; let value: TopicDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", -======= - environmentId: "", organizationId: "", ->>>>>>> Stashed changes + environmentId: "", key: "", name: "", subscribers: [ @@ -25,9 +20,9 @@ let value: TopicDto = { | Field | Type | Required | Description | | ------------------ | ------------------ | ------------------ | ------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `id` | *string* | :heavy_minus_sign: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `key` | *string* | :heavy_check_mark: | N/A | | `name` | *string* | :heavy_check_mark: | N/A | | `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/topicpayloaddto.md b/docs/models/components/topicpayloaddto.md index 28bc3522..030a93e5 100644 --- a/docs/models/components/topicpayloaddto.md +++ b/docs/models/components/topicpayloaddto.md @@ -13,7 +13,7 @@ let value: TopicPayloadDto = { ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `topicKey` | *string* | :heavy_check_mark: | N/A | | -| `type` | [components.TopicPayloadDtoType](../../models/components/topicpayloaddtotype.md) | :heavy_check_mark: | N/A | Topic | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `topicKey` | *string* | :heavy_check_mark: | N/A | | +| `type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | N/A | Topic | \ No newline at end of file diff --git a/docs/models/components/topicsubscriberdto.md b/docs/models/components/topicsubscriberdto.md index e9942824..99c8f9b0 100644 --- a/docs/models/components/topicsubscriberdto.md +++ b/docs/models/components/topicsubscriberdto.md @@ -6,20 +6,12 @@ import { TopicSubscriberDto } from "@novu/api/models/components"; let value: TopicSubscriberDto = { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", - subscriberId: "", - topicId: "", - externalSubscriberId: "", -======= - environmentId: "", organizationId: "", + environmentId: "", subscriberId: "", topicId: "", - externalSubscriberId: "", ->>>>>>> Stashed changes topicKey: "", + externalSubscriberId: "", }; ``` @@ -27,9 +19,9 @@ let value: TopicSubscriberDto = { | Field | Type | Required | Description | | ---------------------- | ---------------------- | ---------------------- | ---------------------- | -| `environmentId` | *string* | :heavy_check_mark: | N/A | | `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | | `subscriberId` | *string* | :heavy_check_mark: | N/A | | `topicId` | *string* | :heavy_check_mark: | N/A | -| `externalSubscriberId` | *string* | :heavy_check_mark: | N/A | -| `topicKey` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| `topicKey` | *string* | :heavy_check_mark: | N/A | +| `externalSubscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/triggereventrequestdto.md b/docs/models/components/triggereventrequestdto.md index beec50b6..f852e4c2 100644 --- a/docs/models/components/triggereventrequestdto.md +++ b/docs/models/components/triggereventrequestdto.md @@ -7,17 +7,12 @@ import { TriggerEventRequestDto } from "@novu/api/models/components"; let value: TriggerEventRequestDto = { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ -<<<<<<< Updated upstream { - topicKey: "", - type: "Topic", + subscriberId: "", }, -======= - "SUBSCRIBER_ID", ->>>>>>> Stashed changes ], }; ``` @@ -26,12 +21,12 @@ let value: TriggerEventRequestDto = { | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `actor` | *components.Actor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | -| `bridgeUrl` | *string* | :heavy_minus_sign: | N/A | | -| `controls` | [components.Controls](../../models/components/controls.md) | :heavy_minus_sign: | N/A | | | `name` | *string* | :heavy_check_mark: | The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. | workflow_identifier | -| `overrides` | [components.TriggerEventRequestDtoOverrides](../../models/components/triggereventrequestdtooverrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | -| `payload` | [components.TriggerEventRequestDtoPayload](../../models/components/triggereventrequestdtopayload.md) | :heavy_minus_sign: | The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it.
This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. | {
"comment_id": "string",
"post": {
"text": "string"
}
} | -| `tenant` | *components.Tenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
Existing tenants will be updated with the provided details.
| | +| `payload` | [components.Payload](../../models/components/payload.md) | :heavy_minus_sign: | The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it.
This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. | {
"comment_id": "string",
"post": {
"text": "string"
}
} | +| `overrides` | [components.Overrides](../../models/components/overrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | | `to` | *components.To*[] | :heavy_check_mark: | The recipients list of people who will receive the notification. | | -| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | \ No newline at end of file +| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | +| `actor` | *components.Actor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | +| `tenant` | *components.Tenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
Existing tenants will be updated with the provided details.
| | +| `bridgeUrl` | *string* | :heavy_minus_sign: | N/A | | +| `controls` | [components.Controls](../../models/components/controls.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/components/triggereventresponsedto.md b/docs/models/components/triggereventresponsedto.md index 840aa514..89c9af1b 100644 --- a/docs/models/components/triggereventresponsedto.md +++ b/docs/models/components/triggereventresponsedto.md @@ -7,11 +7,7 @@ import { TriggerEventResponseDto } from "@novu/api/models/components"; let value: TriggerEventResponseDto = { acknowledged: false, -<<<<<<< Updated upstream - status: "processed", -======= - status: "subscriber_id_missing", ->>>>>>> Stashed changes + status: "error", }; ``` @@ -20,6 +16,6 @@ let value: TriggerEventResponseDto = { | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `acknowledged` | *boolean* | :heavy_check_mark: | If trigger was acknowledged or not | -| `error` | *string*[] | :heavy_minus_sign: | In case of an error, this field will contain the error message | | `status` | [components.TriggerEventResponseDtoStatus](../../models/components/triggereventresponsedtostatus.md) | :heavy_check_mark: | Status for trigger | +| `error` | *string*[] | :heavy_minus_sign: | In case of an error, this field will contain the error message | | `transactionId` | *string* | :heavy_minus_sign: | Transaction id for trigger | \ No newline at end of file diff --git a/docs/models/components/triggereventresponsedtostatus.md b/docs/models/components/triggereventresponsedtostatus.md index 77d749b0..548b3edd 100644 --- a/docs/models/components/triggereventresponsedtostatus.md +++ b/docs/models/components/triggereventresponsedtostatus.md @@ -7,7 +7,7 @@ Status for trigger ```typescript import { TriggerEventResponseDtoStatus } from "@novu/api/models/components"; -let value: TriggerEventResponseDtoStatus = "no_workflow_steps_defined"; +let value: TriggerEventResponseDtoStatus = "processed"; ``` ## Values diff --git a/docs/models/components/triggereventtoallrequestdto.md b/docs/models/components/triggereventtoallrequestdto.md index fec71ca3..393033e9 100644 --- a/docs/models/components/triggereventtoallrequestdto.md +++ b/docs/models/components/triggereventtoallrequestdto.md @@ -7,8 +7,8 @@ import { TriggerEventToAllRequestDto } from "@novu/api/models/components"; let value: TriggerEventToAllRequestDto = { name: "", - overrides: {}, payload: {}, + overrides: {}, }; ``` @@ -16,9 +16,9 @@ let value: TriggerEventToAllRequestDto = { | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `actor` | *components.TriggerEventToAllRequestDtoActor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | | `name` | *string* | :heavy_check_mark: | The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. | | -| `overrides` | [components.TriggerEventToAllRequestDtoOverrides](../../models/components/triggereventtoallrequestdtooverrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | | `payload` | [components.TriggerEventToAllRequestDtoPayload](../../models/components/triggereventtoallrequestdtopayload.md) | :heavy_check_mark: | The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it.
This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. | {
"comment_id": "string",
"post": {
"text": "string"
}
} | -| `tenant` | *components.TriggerEventToAllRequestDtoTenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
If a new tenant object is provided, we will create a new tenant.
| | -| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | \ No newline at end of file +| `overrides` | [components.TriggerEventToAllRequestDtoOverrides](../../models/components/triggereventtoallrequestdtooverrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | +| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | +| `actor` | *components.TriggerEventToAllRequestDtoActor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | +| `tenant` | *components.TriggerEventToAllRequestDtoTenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
If a new tenant object is provided, we will create a new tenant.
| | \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdtoactor.md b/docs/models/components/triggereventtoallrequestdtoactor.md index 3141e645..8eb237df 100644 --- a/docs/models/components/triggereventtoallrequestdtoactor.md +++ b/docs/models/components/triggereventtoallrequestdtoactor.md @@ -4,40 +4,20 @@ It is used to display the Avatar of the provided actor's subscriber id or actor If a new actor object is provided, we will create a new subscriber in our system -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { TriggerEventToAllRequestDtoActor } from "@novu/api/models/components"; - -let value: TriggerEventToAllRequestDtoActor = { - subscriberId: "", -}; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = ""; ->>>>>>> Stashed changes ``` ### `components.SubscriberPayloadDto` ```typescript -<<<<<<< Updated upstream -const value: components.SubscriberPayloadDto = /* values here */ -======= const value: components.SubscriberPayloadDto = { subscriberId: "", }; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/triggereventtoallrequestdtotenant.md b/docs/models/components/triggereventtoallrequestdtotenant.md index 4d4dd1dd..c7d3d28b 100644 --- a/docs/models/components/triggereventtoallrequestdtotenant.md +++ b/docs/models/components/triggereventtoallrequestdtotenant.md @@ -4,36 +4,18 @@ It is used to specify a tenant context during trigger event. If a new tenant object is provided, we will create a new tenant. -<<<<<<< Updated upstream -## Example Usage - -```typescript -import { TriggerEventToAllRequestDtoTenant } from "@novu/api/models/components"; - -let value: TriggerEventToAllRequestDtoTenant = {}; -``` -======= ->>>>>>> Stashed changes ## Supported Types ### `string` ```typescript -<<<<<<< Updated upstream -const value: string = /* values here */ -======= const value: string = ""; ->>>>>>> Stashed changes ``` ### `components.TenantPayloadDto` ```typescript -<<<<<<< Updated upstream -const value: components.TenantPayloadDto = /* values here */ -======= const value: components.TenantPayloadDto = {}; ->>>>>>> Stashed changes ``` diff --git a/docs/models/components/type.md b/docs/models/components/type.md index 79ad3a6c..ffc431f7 100644 --- a/docs/models/components/type.md +++ b/docs/models/components/type.md @@ -1,28 +1,15 @@ # Type -<<<<<<< Updated upstream -======= -The type of channel that is enabled or not - ->>>>>>> Stashed changes ## Example Usage ```typescript import { Type } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: Type = "DefaultLayout"; -======= -let value: Type = "in_app"; ->>>>>>> Stashed changes +let value: Type = "Topic"; ``` ## Values ```typescript -<<<<<<< Updated upstream -"Feed" | "MessageTemplate" | "Layout" | "DefaultLayout" | "NotificationTemplate" | "NotificationGroup" | "TranslationGroup" | "Translation" -======= -"in_app" | "email" | "sms" | "chat" | "push" ->>>>>>> Stashed changes +"Subscriber" | "Topic" ``` \ No newline at end of file diff --git a/docs/models/components/unit.md b/docs/models/components/unit.md index 6eba3a2d..2d1fae4a 100644 --- a/docs/models/components/unit.md +++ b/docs/models/components/unit.md @@ -5,11 +5,7 @@ ```typescript import { Unit } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: Unit = "weeks"; -======= -let value: Unit = "minutes"; ->>>>>>> Stashed changes +let value: Unit = "days"; ``` ## Values diff --git a/docs/models/components/unseencountresponse.md b/docs/models/components/unseencountresponse.md index bd0f5d88..ba086ed8 100644 --- a/docs/models/components/unseencountresponse.md +++ b/docs/models/components/unseencountresponse.md @@ -6,11 +6,7 @@ import { UnseenCountResponse } from "@novu/api/models/components"; let value: UnseenCountResponse = { -<<<<<<< Updated upstream - count: 7506.86, -======= - count: 3965.06, ->>>>>>> Stashed changes + count: 5812.73, }; ``` diff --git a/docs/models/components/updateintegrationrequestdto.md b/docs/models/components/updateintegrationrequestdto.md index 87df9622..a5db2b51 100644 --- a/docs/models/components/updateintegrationrequestdto.md +++ b/docs/models/components/updateintegrationrequestdto.md @@ -12,11 +12,11 @@ let value: UpdateIntegrationRequestDto = {}; | Field | Type | Required | Description | | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `name` | *string* | :heavy_minus_sign: | N/A | +| `identifier` | *string* | :heavy_minus_sign: | N/A | | `environmentId` | *string* | :heavy_minus_sign: | N/A | | `active` | *boolean* | :heavy_minus_sign: | If the integration is active the validation on the credentials field will run | -| `check` | *boolean* | :heavy_minus_sign: | N/A | -| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | | `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `removeNovuBranding` | *boolean* | :heavy_minus_sign: | If true, the Novu branding will be removed from the Inbox component | \ No newline at end of file +| `removeNovuBranding` | *boolean* | :heavy_minus_sign: | If true, the Novu branding will be removed from the Inbox component | +| `check` | *boolean* | :heavy_minus_sign: | N/A | +| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberchannelrequestdto.md b/docs/models/components/updatesubscriberchannelrequestdto.md index f8ffad48..45d6f666 100644 --- a/docs/models/components/updatesubscriberchannelrequestdto.md +++ b/docs/models/components/updatesubscriberchannelrequestdto.md @@ -6,23 +6,17 @@ import { UpdateSubscriberChannelRequestDto } from "@novu/api/models/components"; let value: UpdateSubscriberChannelRequestDto = { + providerId: "whatsapp-business", credentials: { -<<<<<<< Updated upstream - webhookUrl: "", + webhookUrl: "https://old-fashioned-deck.org", }, - providerId: 5373.73, -======= - webhookUrl: "https://rare-pillbox.biz/", - }, - providerId: "msteams", ->>>>>>> Stashed changes }; ``` ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | -| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | -| `providerId` | *number* | :heavy_check_mark: | The provider identifier for the credentials | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `providerId` | [components.UpdateSubscriberChannelRequestDtoProviderId](../../models/components/updatesubscriberchannelrequestdtoproviderid.md) | :heavy_check_mark: | The provider identifier for the credentials | +| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | +| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md b/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md index e13a6693..78e8a2e8 100644 --- a/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md +++ b/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md @@ -7,7 +7,7 @@ The provider identifier for the credentials ```typescript import { UpdateSubscriberChannelRequestDtoProviderId } from "@novu/api/models/components"; -let value: UpdateSubscriberChannelRequestDtoProviderId = "apns"; +let value: UpdateSubscriberChannelRequestDtoProviderId = "ryver"; ``` ## Values diff --git a/docs/models/components/updatesubscriberpreferenceresponsedto.md b/docs/models/components/updatesubscriberpreferenceresponsedto.md index 5f0733f0..1d52bc61 100644 --- a/docs/models/components/updatesubscriberpreferenceresponsedto.md +++ b/docs/models/components/updatesubscriberpreferenceresponsedto.md @@ -6,18 +6,18 @@ import { UpdateSubscriberPreferenceResponseDto } from "@novu/api/models/components"; let value: UpdateSubscriberPreferenceResponseDto = { - preference: { - channels: {}, - enabled: false, - }, template: { id: "", - critical: false, name: "", + critical: false, triggers: [ "", ], }, + preference: { + enabled: false, + channels: {}, + }, }; ``` @@ -25,5 +25,5 @@ let value: UpdateSubscriberPreferenceResponseDto = { | Field | Type | Required | Description | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | -| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_check_mark: | The workflow information and if it is critical or not | \ No newline at end of file +| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_check_mark: | The workflow information and if it is critical or not | +| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberrequestdto.md b/docs/models/components/updatesubscriberrequestdto.md index a8b64390..abfd3ec6 100644 --- a/docs/models/components/updatesubscriberrequestdto.md +++ b/docs/models/components/updatesubscriberrequestdto.md @@ -12,11 +12,11 @@ let value: UpdateSubscriberRequestDto = {}; | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `avatar` | *string* | :heavy_minus_sign: | N/A | -| `channels` | *string*[] | :heavy_minus_sign: | N/A | -| `data` | [components.UpdateSubscriberRequestDtoData](../../models/components/updatesubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | | `email` | *string* | :heavy_minus_sign: | N/A | | `firstName` | *string* | :heavy_minus_sign: | N/A | | `lastName` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | +| `avatar` | *string* | :heavy_minus_sign: | N/A | | `locale` | *string* | :heavy_minus_sign: | N/A | -| `phone` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `data` | [components.UpdateSubscriberRequestDtoData](../../models/components/updatesubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | +| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/value.md b/docs/models/components/value.md index 6e87b8d1..b9f79c7e 100644 --- a/docs/models/components/value.md +++ b/docs/models/components/value.md @@ -5,11 +5,7 @@ ```typescript import { Value } from "@novu/api/models/components"; -<<<<<<< Updated upstream -let value: Value = "AND"; -======= let value: Value = "OR"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/components/weekdays.md b/docs/models/components/weekdays.md index 91b6e4d9..4a73d079 100644 --- a/docs/models/components/weekdays.md +++ b/docs/models/components/weekdays.md @@ -5,7 +5,7 @@ ```typescript import { WeekDays } from "@novu/api/models/components"; -let value: WeekDays = "sunday"; +let value: WeekDays = "tuesday"; ``` ## Values diff --git a/docs/models/components/workflowresponse.md b/docs/models/components/workflowresponse.md index f1d46e89..a0bbc1bd 100644 --- a/docs/models/components/workflowresponse.md +++ b/docs/models/components/workflowresponse.md @@ -6,47 +6,25 @@ import { WorkflowResponse } from "@novu/api/models/components"; let value: WorkflowResponse = { -<<<<<<< Updated upstream - creatorId: "", - environmentId: "", - notificationGroupId: "", - organizationId: "", -======= - creatorId: "", - environmentId: "", - notificationGroupId: "", - organizationId: "", ->>>>>>> Stashed changes + name: "", + description: "hidden remand whether seriously huzzah immediately geez", active: false, - critical: false, - deleted: false, - deletedAt: "", - deletedBy: "", -<<<<<<< Updated upstream - description: "Advanced eco-centric middleware", draft: false, - name: "", preferenceSettings: {}, - steps: [], + critical: false, tags: [ "", ], - triggers: [], -======= - description: "know gleefully ew ceramic", - draft: false, - name: "", - preferenceSettings: {}, steps: [ {}, ], - tags: [ - "", - ], + organizationId: "", + creatorId: "", + environmentId: "", triggers: [ { - identifier: "", type: "event", + identifier: "", variables: [ { name: "", @@ -54,7 +32,10 @@ let value: WorkflowResponse = { ], }, ], ->>>>>>> Stashed changes + notificationGroupId: "", + deleted: false, + deletedAt: "", + deletedBy: "", }; ``` @@ -62,24 +43,24 @@ let value: WorkflowResponse = { | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `description` | *string* | :heavy_check_mark: | N/A | +| `active` | *boolean* | :heavy_check_mark: | N/A | +| `draft` | *boolean* | :heavy_check_mark: | N/A | +| `preferenceSettings` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | N/A | +| `critical` | *boolean* | :heavy_check_mark: | N/A | +| `tags` | *string*[] | :heavy_check_mark: | N/A | +| `steps` | [components.NotificationStep](../../models/components/notificationstep.md)[] | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | | `creatorId` | *string* | :heavy_check_mark: | N/A | | `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_minus_sign: | N/A | +| `triggers` | [components.NotificationTrigger](../../models/components/notificationtrigger.md)[] | :heavy_check_mark: | N/A | | `notificationGroupId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | | `parentId` | *string* | :heavy_minus_sign: | N/A | -| `active` | *boolean* | :heavy_check_mark: | N/A | -| `critical` | *boolean* | :heavy_check_mark: | N/A | -| `data` | [components.WorkflowResponseData](../../models/components/workflowresponsedata.md) | :heavy_minus_sign: | N/A | | `deleted` | *boolean* | :heavy_check_mark: | N/A | | `deletedAt` | *string* | :heavy_check_mark: | N/A | | `deletedBy` | *string* | :heavy_check_mark: | N/A | -| `description` | *string* | :heavy_check_mark: | N/A | -| `draft` | *boolean* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | | `notificationGroup` | [components.NotificationGroup](../../models/components/notificationgroup.md) | :heavy_minus_sign: | N/A | -| `preferenceSettings` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | N/A | -| `steps` | [components.NotificationStep](../../models/components/notificationstep.md)[] | :heavy_check_mark: | N/A | -| `tags` | *string*[] | :heavy_check_mark: | N/A | -| `triggers` | [components.NotificationTrigger](../../models/components/notificationtrigger.md)[] | :heavy_check_mark: | N/A | +| `data` | [components.WorkflowResponseData](../../models/components/workflowresponsedata.md) | :heavy_minus_sign: | N/A | | `workflowIntegrationStatus` | [components.WorkflowIntegrationStatus](../../models/components/workflowintegrationstatus.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/channel.md b/docs/models/operations/channel.md index 528dd915..e7ab724b 100644 --- a/docs/models/operations/channel.md +++ b/docs/models/operations/channel.md @@ -1,17 +1,11 @@ # Channel -The channel of the message to be deleted - ## Example Usage ```typescript import { Channel } from "@novu/api/models/operations"; -<<<<<<< Updated upstream -let value: Channel = "push"; -======= -let value: Channel = "chat"; ->>>>>>> Stashed changes +let value: Channel = "in_app"; ``` ## Values diff --git a/docs/models/operations/channels.md b/docs/models/operations/channels.md index 03061abc..a38b610c 100644 --- a/docs/models/operations/channels.md +++ b/docs/models/operations/channels.md @@ -5,11 +5,7 @@ ```typescript import { Channels } from "@novu/api/models/operations"; -<<<<<<< Updated upstream -let value: Channels = "chat"; -======= let value: Channels = "sms"; ->>>>>>> Stashed changes ``` ## Values diff --git a/docs/models/operations/eventscontrollercancelrequest.md b/docs/models/operations/eventscontrollercancelrequest.md index 337d4a9b..72bf067b 100644 --- a/docs/models/operations/eventscontrollercancelrequest.md +++ b/docs/models/operations/eventscontrollercancelrequest.md @@ -6,11 +6,7 @@ import { EventsControllerCancelRequest } from "@novu/api/models/operations"; let value: EventsControllerCancelRequest = { -<<<<<<< Updated upstream - transactionId: "", -======= transactionId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md index 6cf15c2a..edd1a2ca 100644 --- a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md +++ b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md @@ -7,13 +7,8 @@ import { ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest } f let value: ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = { -<<<<<<< Updated upstream - notificationId: "", - subscriberId: "", -======= notificationId: "", subscriberId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md b/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md index 8578c8cb..a3439ab3 100644 --- a/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md +++ b/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md @@ -6,11 +6,7 @@ import { IntegrationsControllerGetWebhookSupportStatusRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerGetWebhookSupportStatusRequest = { -<<<<<<< Updated upstream - providerOrIntegrationId: "", -======= providerOrIntegrationId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollerremoveintegrationrequest.md b/docs/models/operations/integrationscontrollerremoveintegrationrequest.md index acc95143..0c1c7606 100644 --- a/docs/models/operations/integrationscontrollerremoveintegrationrequest.md +++ b/docs/models/operations/integrationscontrollerremoveintegrationrequest.md @@ -6,11 +6,7 @@ import { IntegrationsControllerRemoveIntegrationRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerRemoveIntegrationRequest = { -<<<<<<< Updated upstream - integrationId: "", -======= integrationId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md b/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md index fe3d34ea..facc8217 100644 --- a/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md +++ b/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md @@ -6,11 +6,7 @@ import { IntegrationsControllerSetIntegrationAsPrimaryRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerSetIntegrationAsPrimaryRequest = { -<<<<<<< Updated upstream - integrationId: "", -======= integrationId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md b/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md index fa9bbb79..cb43386a 100644 --- a/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md +++ b/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md @@ -6,11 +6,7 @@ import { IntegrationsControllerUpdateIntegrationByIdRequest } from "@novu/api/models/operations"; let value: IntegrationsControllerUpdateIntegrationByIdRequest = { -<<<<<<< Updated upstream - integrationId: "", -======= integrationId: "", ->>>>>>> Stashed changes updateIntegrationRequestDto: {}, }; ``` diff --git a/docs/models/operations/messagescontrollerdeletemessagerequest.md b/docs/models/operations/messagescontrollerdeletemessagerequest.md index 47427703..bd9b94de 100644 --- a/docs/models/operations/messagescontrollerdeletemessagerequest.md +++ b/docs/models/operations/messagescontrollerdeletemessagerequest.md @@ -6,11 +6,7 @@ import { MessagesControllerDeleteMessageRequest } from "@novu/api/models/operations"; let value: MessagesControllerDeleteMessageRequest = { -<<<<<<< Updated upstream - messageId: "", -======= messageId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md index ff36751e..5bea039e 100644 --- a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md +++ b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md @@ -6,17 +6,13 @@ import { MessagesControllerDeleteMessagesByTransactionIdRequest } from "@novu/api/models/operations"; let value: MessagesControllerDeleteMessagesByTransactionIdRequest = { -<<<<<<< Updated upstream - transactionId: "", -======= transactionId: "", ->>>>>>> Stashed changes }; ``` ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `channel` | [operations.Channel](../../models/operations/channel.md) | :heavy_minus_sign: | The channel of the message to be deleted | -| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `channel` | [operations.QueryParamChannel](../../models/operations/queryparamchannel.md) | :heavy_minus_sign: | The channel of the message to be deleted | +| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollergetmessagesrequest.md b/docs/models/operations/messagescontrollergetmessagesrequest.md index c8242345..1a23c80a 100644 --- a/docs/models/operations/messagescontrollergetmessagesrequest.md +++ b/docs/models/operations/messagescontrollergetmessagesrequest.md @@ -10,10 +10,10 @@ let value: MessagesControllerGetMessagesRequest = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `channel` | [operations.QueryParamChannel](../../models/operations/queryparamchannel.md) | :heavy_minus_sign: | N/A | -| `subscriberId` | *string* | :heavy_minus_sign: | N/A | -| `transactionId` | *string*[] | :heavy_minus_sign: | N/A | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `channel` | [operations.Channel](../../models/operations/channel.md) | :heavy_minus_sign: | N/A | +| `subscriberId` | *string* | :heavy_minus_sign: | N/A | +| `transactionId` | *string*[] | :heavy_minus_sign: | N/A | +| `page` | *number* | :heavy_minus_sign: | N/A | +| `limit` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetnotificationrequest.md b/docs/models/operations/notificationscontrollergetnotificationrequest.md index 9c029587..41341f5c 100644 --- a/docs/models/operations/notificationscontrollergetnotificationrequest.md +++ b/docs/models/operations/notificationscontrollergetnotificationrequest.md @@ -6,11 +6,7 @@ import { NotificationsControllerGetNotificationRequest } from "@novu/api/models/operations"; let value: NotificationsControllerGetNotificationRequest = { -<<<<<<< Updated upstream - notificationId: "", -======= notificationId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/notificationscontrollerlistnotificationsrequest.md b/docs/models/operations/notificationscontrollerlistnotificationsrequest.md index a7198639..052e45b8 100644 --- a/docs/models/operations/notificationscontrollerlistnotificationsrequest.md +++ b/docs/models/operations/notificationscontrollerlistnotificationsrequest.md @@ -7,11 +7,7 @@ import { NotificationsControllerListNotificationsRequest } from "@novu/api/model let value: NotificationsControllerListNotificationsRequest = { channels: [ -<<<<<<< Updated upstream - "email", -======= "push", ->>>>>>> Stashed changes ], templates: [ "", diff --git a/docs/models/operations/parameter.md b/docs/models/operations/parameter.md index 5f0ec7ab..db1b216b 100644 --- a/docs/models/operations/parameter.md +++ b/docs/models/operations/parameter.md @@ -1,29 +1,17 @@ # Parameter -<<<<<<< Updated upstream -the preferences level to be retrieved( Subscriber / Topic) -======= the preferences level to be retrieved (template / global) ->>>>>>> Stashed changes ## Example Usage ```typescript import { Parameter } from "@novu/api/models/operations"; -<<<<<<< Updated upstream -let value: Parameter = "Topic"; -======= -let value: Parameter = "template"; ->>>>>>> Stashed changes +let value: Parameter = "global"; ``` ## Values ```typescript -<<<<<<< Updated upstream -"Subscriber" | "Topic" -======= "global" | "template" ->>>>>>> Stashed changes ``` \ No newline at end of file diff --git a/docs/models/operations/queryparamchannel.md b/docs/models/operations/queryparamchannel.md index 9a834704..a9acdf68 100644 --- a/docs/models/operations/queryparamchannel.md +++ b/docs/models/operations/queryparamchannel.md @@ -1,15 +1,13 @@ # QueryParamChannel +The channel of the message to be deleted + ## Example Usage ```typescript import { QueryParamChannel } from "@novu/api/models/operations"; -<<<<<<< Updated upstream -let value: QueryParamChannel = "in_app"; -======= -let value: QueryParamChannel = "chat"; ->>>>>>> Stashed changes +let value: QueryParamChannel = "sms"; ``` ## Values diff --git a/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md b/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md index 86e76ffa..e1a3c7a7 100644 --- a/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md +++ b/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md @@ -6,17 +6,10 @@ import { SubscribersControllerChatAccessOauthRequest } from "@novu/api/models/operations"; let value: SubscribersControllerChatAccessOauthRequest = { -<<<<<<< Updated upstream - subscriberId: "", - providerId: "", - hmacHash: "", - environmentId: "", -======= subscriberId: "", providerId: "", hmacHash: "", environmentId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md index bed1a60d..115eb8c6 100644 --- a/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md +++ b/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md @@ -6,19 +6,11 @@ import { SubscribersControllerChatOauthCallbackRequest } from "@novu/api/models/operations"; let value: SubscribersControllerChatOauthCallbackRequest = { -<<<<<<< Updated upstream - subscriberId: "", - providerId: "", - code: "", - hmacHash: "", - environmentId: "", -======= subscriberId: "", providerId: "", code: "", hmacHash: "", environmentId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md index 08e4053f..6f2cf92f 100644 --- a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md +++ b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md @@ -6,13 +6,8 @@ import { SubscribersControllerDeleteSubscriberCredentialsRequest } from "@novu/api/models/operations"; let value: SubscribersControllerDeleteSubscriberCredentialsRequest = { -<<<<<<< Updated upstream - subscriberId: "", - providerId: "", -======= subscriberId: "", providerId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md index cf790a49..59ad8e16 100644 --- a/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerGetNotificationsFeedRequest } from "@novu/api/models/operations"; let value: SubscribersControllerGetNotificationsFeedRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", }; diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md index d7882920..a612bdac 100644 --- a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md @@ -6,29 +6,19 @@ import { SubscribersControllerGetNotificationsFeedResponseBody } from "@novu/api/models/operations"; let value: SubscribersControllerGetNotificationsFeedResponseBody = { + page: 6120.96, + hasMore: false, + pageSize: 6169.34, data: [ { + hasMore: false, data: [ "", ], - hasMore: false, -<<<<<<< Updated upstream - page: 6235.1, - pageSize: 1589.69, + pageSize: 9437.48, + page: 6818.20, }, ], - hasMore: false, - page: 3380.07, - pageSize: 1103.75, -======= - page: 4314.18, - pageSize: 8965.47, - }, - ], - hasMore: false, - page: 3675.62, - pageSize: 4358.65, ->>>>>>> Stashed changes }; ``` @@ -36,7 +26,7 @@ let value: SubscribersControllerGetNotificationsFeedResponseBody = { | Field | Type | Required | Description | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `data` | [components.FeedResponseDto](../../models/components/feedresponsedto.md)[] | :heavy_check_mark: | N/A | -| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | | `page` | *number* | :heavy_check_mark: | The current page of the paginated response | -| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | \ No newline at end of file +| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | +| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | +| `data` | [components.FeedResponseDto](../../models/components/feedresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md index 5e26b236..e8279689 100644 --- a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md +++ b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md @@ -6,27 +6,15 @@ import { SubscribersControllerGetSubscriberPreferenceByLevelRequest } from "@novu/api/models/operations"; let value: SubscribersControllerGetSubscriberPreferenceByLevelRequest = { -<<<<<<< Updated upstream - parameter: "Subscriber", - subscriberId: "", -======= parameter: "template", subscriberId: "", ->>>>>>> Stashed changes }; ``` ## Fields -<<<<<<< Updated upstream -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved( Subscriber / Topic) | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -======= | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | | `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved (template / global) | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | ->>>>>>> Stashed changes +| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberrequest.md index 8a3168aa..e7ad3e9f 100644 --- a/docs/models/operations/subscriberscontrollergetsubscriberrequest.md +++ b/docs/models/operations/subscriberscontrollergetsubscriberrequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerGetSubscriberRequest } from "@novu/api/models/operations"; let value: SubscribersControllerGetSubscriberRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollergetunseencountrequest.md b/docs/models/operations/subscriberscontrollergetunseencountrequest.md index 200c0f32..e2635938 100644 --- a/docs/models/operations/subscriberscontrollergetunseencountrequest.md +++ b/docs/models/operations/subscriberscontrollergetunseencountrequest.md @@ -7,13 +7,8 @@ import { SubscribersControllerGetUnseenCountRequest } from "@novu/api/models/ope let value: SubscribersControllerGetUnseenCountRequest = { seen: false, -<<<<<<< Updated upstream - subscriberId: "", - limit: 6747.52, -======= subscriberId: "", - limit: 9194.83, ->>>>>>> Stashed changes + limit: 2103.83, }; ``` diff --git a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md index 660278cb..fdc52a3e 100644 --- a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md +++ b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerListSubscriberPreferencesRequest } from "@novu/api/models/operations"; let value: SubscribersControllerListSubscriberPreferencesRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md index d827c6c7..0e8e1a77 100644 --- a/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md +++ b/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md @@ -6,33 +6,25 @@ import { SubscribersControllerListSubscribersResponse } from "@novu/api/models/operations"; let value: SubscribersControllerListSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, result: { + page: 4614.79, + hasMore: false, + pageSize: 7805.29, data: [ { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", - createdAt: "", - deleted: false, - subscriberId: "", -======= - environmentId: "", + subscriberId: "", organizationId: "", - createdAt: "", + environmentId: "", deleted: false, - subscriberId: "", ->>>>>>> Stashed changes + createdAt: "", updatedAt: "", }, ], - hasMore: false, -<<<<<<< Updated upstream - page: 9953, - pageSize: 6531.08, -======= - page: 6063.93, - pageSize: 191.93, ->>>>>>> Stashed changes }, }; ``` @@ -41,4 +33,5 @@ let value: SubscribersControllerListSubscribersResponse = { | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | | `result` | [operations.SubscribersControllerListSubscribersResponseBody](../../models/operations/subscriberscontrollerlistsubscribersresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md index adee7948..d52b116f 100644 --- a/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md +++ b/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md @@ -6,32 +6,19 @@ import { SubscribersControllerListSubscribersResponseBody } from "@novu/api/models/operations"; let value: SubscribersControllerListSubscribersResponseBody = { + page: 9786.18, + hasMore: false, + pageSize: 7991.59, data: [ { -<<<<<<< Updated upstream - environmentId: "", - organizationId: "", - createdAt: "", - deleted: false, - subscriberId: "", -======= - environmentId: "", + subscriberId: "", organizationId: "", - createdAt: "", + environmentId: "", deleted: false, - subscriberId: "", ->>>>>>> Stashed changes + createdAt: "", updatedAt: "", }, ], - hasMore: false, -<<<<<<< Updated upstream - page: 6350.59, - pageSize: 1613.09, -======= - page: 6439.90, - pageSize: 4238.55, ->>>>>>> Stashed changes }; ``` @@ -39,7 +26,7 @@ let value: SubscribersControllerListSubscribersResponseBody = { | Field | Type | Required | Description | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `data` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)[] | :heavy_check_mark: | N/A | -| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | | `page` | *number* | :heavy_check_mark: | The current page of the paginated response | -| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | \ No newline at end of file +| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | +| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | +| `data` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md b/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md index 59a7c1b4..9437042b 100644 --- a/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md +++ b/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md @@ -6,17 +6,11 @@ import { SubscribersControllerMarkActionAsSeenRequest } from "@novu/api/models/operations"; let value: SubscribersControllerMarkActionAsSeenRequest = { -<<<<<<< Updated upstream - messageId: "", - type: "", - subscriberId: "", -======= messageId: "", type: "", subscriberId: "", ->>>>>>> Stashed changes markMessageActionAsSeenDto: { - status: "pending", + status: "done", }, }; ``` diff --git a/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md b/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md index 4c024a03..201ffad6 100644 --- a/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md +++ b/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md @@ -6,15 +6,9 @@ import { SubscribersControllerMarkAllUnreadAsReadRequest } from "@novu/api/models/operations"; let value: SubscribersControllerMarkAllUnreadAsReadRequest = { -<<<<<<< Updated upstream - subscriberId: "", - markAllMessageAsRequestDto: { - markAs: "seen", -======= subscriberId: "", markAllMessageAsRequestDto: { - markAs: "unread", ->>>>>>> Stashed changes + markAs: "seen", }, }; ``` diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md index 9c30e46f..3fe0fd9a 100644 --- a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md +++ b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md @@ -6,19 +6,12 @@ import { SubscribersControllerMarkMessagesAsRequest } from "@novu/api/models/operations"; let value: SubscribersControllerMarkMessagesAsRequest = { -<<<<<<< Updated upstream - subscriberId: "", - messageMarkAsRequestDto: { - markAs: "seen", - messageId: "", -======= subscriberId: "", messageMarkAsRequestDto: { - markAs: "unread", messageId: [ "", ], ->>>>>>> Stashed changes + markAs: "unread", }, }; ``` diff --git a/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md index c94f5ba7..9d4fa810 100644 --- a/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md +++ b/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md @@ -6,21 +6,12 @@ import { SubscribersControllerModifySubscriberChannelRequest } from "@novu/api/models/operations"; let value: SubscribersControllerModifySubscriberChannelRequest = { -<<<<<<< Updated upstream - subscriberId: "", - updateSubscriberChannelRequestDto: { - credentials: { - webhookUrl: "", - }, - providerId: 5818.5, -======= subscriberId: "", updateSubscriberChannelRequestDto: { + providerId: "getstream", credentials: { - webhookUrl: "https://quiet-elevator.name/", + webhookUrl: "https://sorrowful-import.name/", }, - providerId: "getstream", ->>>>>>> Stashed changes }, }; ``` diff --git a/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md b/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md index ea9b1653..3f3a9ccb 100644 --- a/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md +++ b/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerRemoveSubscriberRequest } from "@novu/api/models/operations"; let value: SubscribersControllerRemoveSubscriberRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes }; ``` diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md index c0052c68..dd51367f 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md @@ -6,21 +6,12 @@ import { SubscribersControllerUpdateSubscriberChannelRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberChannelRequest = { -<<<<<<< Updated upstream - subscriberId: "", - updateSubscriberChannelRequestDto: { - credentials: { - webhookUrl: "", - }, - providerId: 2532.91, -======= subscriberId: "", updateSubscriberChannelRequestDto: { + providerId: "msteams", credentials: { - webhookUrl: "https://frightened-metal.name/", + webhookUrl: "https://corrupt-unblinking.name", }, - providerId: "whatsapp-business", ->>>>>>> Stashed changes }, }; ``` diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md index 54f2c223..ddcd4cda 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerUpdateSubscriberGlobalPreferencesRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes updateSubscriberGlobalPreferencesRequestDto: {}, }; ``` diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md index 45bb2e41..44b31f42 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerUpdateSubscriberOnlineFlagRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberOnlineFlagRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes updateSubscriberOnlineFlagRequestDto: { isOnline: false, }, diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md index b73414ba..52454602 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerUpdateSubscriberPreferenceRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberPreferenceRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes parameter: "", updateSubscriberPreferenceRequestDto: {}, }; diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md index 2275bdd6..6e11a5eb 100644 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md @@ -6,11 +6,7 @@ import { SubscribersControllerUpdateSubscriberRequest } from "@novu/api/models/operations"; let value: SubscribersControllerUpdateSubscriberRequest = { -<<<<<<< Updated upstream - subscriberId: "", -======= subscriberId: "", ->>>>>>> Stashed changes updateSubscriberRequestDto: {}, }; ``` diff --git a/docs/models/operations/topicscontrollergettopicsubscriberrequest.md b/docs/models/operations/topicscontrollergettopicsubscriberrequest.md index 1b641edf..5037dd89 100644 --- a/docs/models/operations/topicscontrollergettopicsubscriberrequest.md +++ b/docs/models/operations/topicscontrollergettopicsubscriberrequest.md @@ -6,11 +6,7 @@ import { TopicsControllerGetTopicSubscriberRequest } from "@novu/api/models/operations"; let value: TopicsControllerGetTopicSubscriberRequest = { -<<<<<<< Updated upstream - externalSubscriberId: "", -======= externalSubscriberId: "", ->>>>>>> Stashed changes topicKey: "", }; ``` diff --git a/docs/sdks/apikeys/README.md b/docs/sdks/apikeys/README.md index 65113f9f..166c1cb5 100644 --- a/docs/sdks/apikeys/README.md +++ b/docs/sdks/apikeys/README.md @@ -22,9 +22,9 @@ const novu = new Novu({ async function run() { const result = await novu.environments.apiKeys.list(); - + // Handle the result - console.log(result) + console.log(result); } run(); @@ -54,7 +54,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -70,10 +70,10 @@ run(); ### Response -**Promise\<[components.ApiKey[]](../../models/.md)\>** +**Promise\<[operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse](../../models/operations/environmentscontrollerv1listorganizationapikeysresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index 8412843b..6b087527 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -5,12 +5,12 @@ ### Available Operations -* [handleOauth](#handleoauth) - Handle chat oauth * [handleOauthCallback](#handleoauthcallback) - Handle providers oauth redirect +* [handleOauth](#handleoauth) - Handle chat oauth -## handleOauth +## handleOauthCallback -Handle chat oauth +Handle providers oauth redirect ### Example Usage @@ -22,46 +22,16 @@ const novu = new Novu({ }); async function run() { - await novu.subscribers.authentication.handleOauth({ + const result = await novu.subscribers.authentication.handleOauthCallback({ subscriberId: "", providerId: "", + code: "", hmacHash: "", environmentId: "", }); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationChatAccessOauth } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauth.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersAuthenticationChatAccessOauth(novu, { - subscriberId: "", - providerId: "", - hmacHash: "", - environmentId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -73,7 +43,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationHandleOauth } from "@novu/api/funcs/subscribersAuthenticationHandleOauth.js"; +import { subscribersAuthenticationHandleOauthCallback } from "@novu/api/funcs/subscribersAuthenticationHandleOauthCallback.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -82,9 +52,10 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersAuthenticationHandleOauth(novu, { + const res = await subscribersAuthenticationHandleOauthCallback(novu, { subscriberId: "", providerId: "", + code: "", hmacHash: "", environmentId: "", }); @@ -95,7 +66,8 @@ async function run() { const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -105,14 +77,14 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerChatAccessOauthRequest](../../models/operations/subscriberscontrollerchataccessoauthrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [operations.SubscribersControllerChatOauthCallbackRequest](../../models/operations/subscriberscontrollerchatoauthcallbackrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\** +**Promise\<[operations.SubscribersControllerChatOauthCallbackResponse](../../models/operations/subscriberscontrollerchatoauthcallbackresponse.md)\>** ### Errors @@ -120,14 +92,9 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -<<<<<<< Updated upstream - -## chatAccessOauthCallBack -======= -## handleOauthCallback ->>>>>>> Stashed changes +## handleOauth -Handle providers oauth redirect +Handle chat oauth ### Example Usage @@ -139,49 +106,12 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.authentication.handleOauthCallback({ + const result = await novu.subscribers.authentication.handleOauth({ subscriberId: "", providerId: "", - code: "", hmacHash: "", environmentId: "", }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationChatAccessOauthCallBack } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersAuthenticationChatAccessOauthCallBack(novu, { - subscriberId: "", - providerId: "", - code: "", - hmacHash: "", - environmentId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; // Handle the result console.log(result); @@ -196,7 +126,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationHandleOauthCallback } from "@novu/api/funcs/subscribersAuthenticationHandleOauthCallback.js"; +import { subscribersAuthenticationHandleOauth } from "@novu/api/funcs/subscribersAuthenticationHandleOauth.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -205,10 +135,9 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersAuthenticationHandleOauthCallback(novu, { + const res = await subscribersAuthenticationHandleOauth(novu, { subscriberId: "", providerId: "", - code: "", hmacHash: "", environmentId: "", }); @@ -230,14 +159,14 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerChatOauthCallbackRequest](../../models/operations/subscriberscontrollerchatoauthcallbackrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [operations.SubscribersControllerChatAccessOauthRequest](../../models/operations/subscriberscontrollerchataccessoauthrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[operations.SubscribersControllerChatOauthCallbackResponseBody](../../models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md)\>** +**Promise\<[operations.SubscribersControllerChatAccessOauthResponse](../../models/operations/subscriberscontrollerchataccessoauthresponse.md)\>** ### Errors diff --git a/docs/sdks/credentials/README.md b/docs/sdks/credentials/README.md index 317edc59..9d6d880f 100644 --- a/docs/sdks/credentials/README.md +++ b/docs/sdks/credentials/README.md @@ -5,14 +5,13 @@ ### Available Operations +* [update](#update) - Update subscriber credentials * [append](#append) - Modify subscriber credentials * [delete](#delete) - Delete subscriber credentials by providerId -* [update](#update) - Update subscriber credentials -## append +## update Subscriber credentials associated to the delivery methods such as slack and push tokens. - This endpoint appends provided credentials and deviceTokens to the existing ones. ### Example Usage @@ -24,15 +23,15 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.credentials.append("", { + const result = await novu.subscribers.credentials.update({ + providerId: "pushpad", credentials: { - webhookUrl: "", + webhookUrl: "https://grown-worth.name", }, - providerId: 3462.44, - }); - + }, ""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -44,7 +43,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersCredentialsAppend } from "@novu/api/funcs/subscribersCredentialsAppend.js"; +import { subscribersCredentialsUpdate } from "@novu/api/funcs/subscribersCredentialsUpdate.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -53,12 +52,12 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersCredentialsAppend(novu, "", { + const res = await subscribersCredentialsUpdate(novu, { + providerId: "pushpad", credentials: { - webhookUrl: "", + webhookUrl: "https://grown-worth.name", }, - providerId: 3462.44, - }); + }, ""); if (!res.ok) { throw res.error; @@ -67,7 +66,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -85,18 +84,19 @@ run(); ### Response -**Promise\<[components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerUpdateSubscriberChannelResponse](../../models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## append -## delete +Subscriber credentials associated to the delivery methods such as slack and push tokens. -Delete subscriber credentials such as slack and expo tokens. + This endpoint appends provided credentials and deviceTokens to the existing ones. ### Example Usage @@ -108,7 +108,15 @@ const novu = new Novu({ }); async function run() { - await novu.subscribers.credentials.delete("", ""); + const result = await novu.subscribers.credentials.append({ + providerId: "zulip", + credentials: { + webhookUrl: "https://talkative-pop.org", + }, + }, ""); + + // Handle the result + console.log(result); } run(); @@ -120,7 +128,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersCredentialsDelete } from "@novu/api/funcs/subscribersCredentialsDelete.js"; +import { subscribersCredentialsAppend } from "@novu/api/funcs/subscribersCredentialsAppend.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -129,7 +137,12 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersCredentialsDelete(novu, "", ""); + const res = await subscribersCredentialsAppend(novu, { + providerId: "zulip", + credentials: { + webhookUrl: "https://talkative-pop.org", + }, + }, ""); if (!res.ok) { throw res.error; @@ -137,7 +150,8 @@ async function run() { const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -148,25 +162,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `providerId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\** +**Promise\<[operations.SubscribersControllerModifySubscriberChannelResponse](../../models/operations/subscriberscontrollermodifysubscriberchannelresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## delete -## update - -Subscriber credentials associated to the delivery methods such as slack and push tokens. +Delete subscriber credentials such as slack and expo tokens. ### Example Usage @@ -178,15 +191,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.credentials.update("", { - credentials: { - webhookUrl: "", - }, - providerId: 8574.78, - }); - + const result = await novu.subscribers.credentials.delete("", ""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -198,7 +206,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersCredentialsUpdate } from "@novu/api/funcs/subscribersCredentialsUpdate.js"; +import { subscribersCredentialsDelete } from "@novu/api/funcs/subscribersCredentialsDelete.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -207,12 +215,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersCredentialsUpdate(novu, "", { - credentials: { - webhookUrl: "", - }, - providerId: 8574.78, - }); + const res = await subscribersCredentialsDelete(novu, "", ""); if (!res.ok) { throw res.error; @@ -221,7 +224,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -232,17 +235,17 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | +| `providerId` | *string* | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerDeleteSubscriberCredentialsResponse](../../models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/environments/README.md b/docs/sdks/environments/README.md index fad8680c..0f77a9f4 100644 --- a/docs/sdks/environments/README.md +++ b/docs/sdks/environments/README.md @@ -8,12 +8,12 @@ Novu uses the concept of environments to ensure logical separation of your data ### Available Operations -* [getAll](#getall) - Get environments * [getCurrent](#getcurrent) - Get current environment +* [getAll](#getall) - Get environments -## getAll +## getCurrent -Get environments +Get current environment ### Example Usage @@ -25,41 +25,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.environments.list(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { environmentsList } from "@novu/api/funcs/environmentsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await environmentsList(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= - const result = await novu.environments.getAll(); ->>>>>>> Stashed changes + const result = await novu.environments.getCurrent(); // Handle the result console.log(result); @@ -74,7 +40,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { environmentsGetAll } from "@novu/api/funcs/environmentsGetAll.js"; +import { environmentsGetCurrent } from "@novu/api/funcs/environmentsGetCurrent.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -83,7 +49,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await environmentsGetAll(novu); + const res = await environmentsGetCurrent(novu); if (!res.ok) { throw res.error; @@ -108,7 +74,7 @@ run(); ### Response -**Promise\<[components.EnvironmentResponseDto[]](../../models/.md)\>** +**Promise\<[operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse](../../models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md)\>** ### Errors @@ -116,14 +82,9 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -<<<<<<< Updated upstream - -## retrieve -======= -## getCurrent ->>>>>>> Stashed changes +## getAll -Get current environment +Get environments ### Example Usage @@ -135,41 +96,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.environments.retrieve(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { environmentsRetrieve } from "@novu/api/funcs/environmentsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await environmentsRetrieve(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= - const result = await novu.environments.getCurrent(); ->>>>>>> Stashed changes + const result = await novu.environments.getAll(); // Handle the result console.log(result); @@ -184,7 +111,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { environmentsGetCurrent } from "@novu/api/funcs/environmentsGetCurrent.js"; +import { environmentsGetAll } from "@novu/api/funcs/environmentsGetAll.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -193,7 +120,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await environmentsGetCurrent(novu); + const res = await environmentsGetAll(novu); if (!res.ok) { throw res.error; @@ -218,7 +145,7 @@ run(); ### Response -**Promise\<[components.EnvironmentResponseDto](../../models/components/environmentresponsedto.md)\>** +**Promise\<[operations.EnvironmentsControllerV1ListMyEnvironmentsResponse](../../models/operations/environmentscontrollerv1listmyenvironmentsresponse.md)\>** ### Errors diff --git a/docs/sdks/executiondetails/README.md b/docs/sdks/executiondetails/README.md index 9dd71d38..be04b951 100644 --- a/docs/sdks/executiondetails/README.md +++ b/docs/sdks/executiondetails/README.md @@ -3,12 +3,6 @@ ## Overview -<<<<<<< Updated upstream -Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - - -======= ->>>>>>> Stashed changes ### Available Operations * [get](#get) - Get execution details @@ -27,41 +21,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.executionDetails.retrieve("", ""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { executionDetailsRetrieve } from "@novu/api/funcs/executionDetailsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await executionDetailsRetrieve(novu, "", ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.executionDetails.get("", ""); ->>>>>>> Stashed changes // Handle the result console.log(result); @@ -112,7 +72,7 @@ run(); ### Response -**Promise\<[components.ExecutionDetailsResponseDto[]](../../models/.md)\>** +**Promise\<[operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse](../../models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md)\>** ### Errors diff --git a/docs/sdks/integrations/README.md b/docs/sdks/integrations/README.md index 07d5f7c9..2f609044 100644 --- a/docs/sdks/integrations/README.md +++ b/docs/sdks/integrations/README.md @@ -8,16 +8,16 @@ With the help of the Integration Store, you can easily integrate your favorite d ### Available Operations -* [create](#create) - Create integration -* [delete](#delete) - Delete integration * [list](#list) - Get integrations +* [create](#create) - Create integration * [listActive](#listactive) - Get active integrations -* [setAsPrimary](#setasprimary) - Set integration as primary * [update](#update) - Update integration +* [delete](#delete) - Delete integration +* [setPrimary](#setprimary) - Set integration as primary -## create +## list -Create an integration for the current environment the user is based on the API key provided +Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change ### Example Usage @@ -29,13 +29,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.create({ - channel: "sms", - providerId: "", - }); - + const result = await novu.integrations.list(); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -47,7 +44,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsCreate } from "@novu/api/funcs/integrationsCreate.js"; +import { integrationsList } from "@novu/api/funcs/integrationsList.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -56,10 +53,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsCreate(novu, { - channel: "sms", - providerId: "", - }); + const res = await integrationsList(novu); if (!res.ok) { throw res.error; @@ -68,7 +62,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -78,25 +72,23 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateIntegrationRequestDto](../../models/components/createintegrationrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)\>** +**Promise\<[operations.IntegrationsControllerListIntegrationsResponse](../../models/operations/integrationscontrollerlistintegrationsresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## delete +## create -Delete integration +Create an integration for the current environment the user is based on the API key provided ### Example Usage @@ -108,10 +100,13 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.delete(""); - + const result = await novu.integrations.create({ + providerId: "", + channel: "sms", + }); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -123,7 +118,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsDelete } from "@novu/api/funcs/integrationsDelete.js"; +import { integrationsCreate } from "@novu/api/funcs/integrationsCreate.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -132,7 +127,10 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsDelete(novu, ""); + const res = await integrationsCreate(novu, { + providerId: "", + channel: "sms", + }); if (!res.ok) { throw res.error; @@ -141,7 +139,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -151,25 +149,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `integrationId` | *string* | :heavy_check_mark: | N/A | +| `request` | [components.CreateIntegrationRequestDto](../../models/components/createintegrationrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.IntegrationResponseDto[]](../../models/.md)\>** +**Promise\<[operations.IntegrationsControllerCreateIntegrationResponse](../../models/operations/integrationscontrollercreateintegrationresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## list +## listActive -Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change +Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change ### Example Usage @@ -181,10 +178,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.list(); - + const result = await novu.integrations.listActive(); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -196,7 +193,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsList } from "@novu/api/funcs/integrationsList.js"; +import { integrationsListActive } from "@novu/api/funcs/integrationsListActive.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -205,7 +202,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsList(novu); + const res = await integrationsListActive(novu); if (!res.ok) { throw res.error; @@ -214,7 +211,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -230,18 +227,17 @@ run(); ### Response -**Promise\<[components.IntegrationResponseDto[]](../../models/.md)\>** +**Promise\<[operations.IntegrationsControllerGetActiveIntegrationsResponse](../../models/operations/integrationscontrollergetactiveintegrationsresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## listActive +## update -Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change +Update integration ### Example Usage @@ -253,10 +249,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.listActive(); - + const result = await novu.integrations.update({}, ""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -268,7 +264,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsListActive } from "@novu/api/funcs/integrationsListActive.js"; +import { integrationsUpdate } from "@novu/api/funcs/integrationsUpdate.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -277,7 +273,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsListActive(novu); + const res = await integrationsUpdate(novu, {}, ""); if (!res.ok) { throw res.error; @@ -286,7 +282,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -296,24 +292,25 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `integrationId` | *string* | :heavy_check_mark: | N/A | +| `updateIntegrationRequestDto` | [components.UpdateIntegrationRequestDto](../../models/components/updateintegrationrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.IntegrationResponseDto[]](../../models/.md)\>** +**Promise\<[operations.IntegrationsControllerUpdateIntegrationByIdResponse](../../models/operations/integrationscontrollerupdateintegrationbyidresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## delete -## setAsPrimary - -Set integration as primary +Delete integration ### Example Usage @@ -325,10 +322,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.setAsPrimary(""); - + const result = await novu.integrations.delete(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -340,7 +337,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsSetAsPrimary } from "@novu/api/funcs/integrationsSetAsPrimary.js"; +import { integrationsDelete } from "@novu/api/funcs/integrationsDelete.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -349,7 +346,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsSetAsPrimary(novu, ""); + const res = await integrationsDelete(novu, ""); if (!res.ok) { throw res.error; @@ -358,7 +355,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -375,18 +372,17 @@ run(); ### Response -**Promise\<[components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)\>** +**Promise\<[operations.IntegrationsControllerRemoveIntegrationResponse](../../models/operations/integrationscontrollerremoveintegrationresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## setPrimary -## update - -Update integration +Set integration as primary ### Example Usage @@ -398,10 +394,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.update("", {}); - + const result = await novu.integrations.setPrimary(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -413,7 +409,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsUpdate } from "@novu/api/funcs/integrationsUpdate.js"; +import { integrationsSetPrimary } from "@novu/api/funcs/integrationsSetPrimary.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -422,7 +418,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsUpdate(novu, "", {}); + const res = await integrationsSetPrimary(novu, ""); if (!res.ok) { throw res.error; @@ -431,7 +427,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -442,17 +438,16 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `integrationId` | *string* | :heavy_check_mark: | N/A | -| `updateIntegrationRequestDto` | [components.UpdateIntegrationRequestDto](../../models/components/updateintegrationrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)\>** +**Promise\<[operations.IntegrationsControllerSetIntegrationAsPrimaryResponse](../../models/operations/integrationscontrollersetintegrationasprimaryresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/integrationswebhooks/README.md b/docs/sdks/integrationswebhooks/README.md index 92dcc9be..deb6de80 100644 --- a/docs/sdks/integrationswebhooks/README.md +++ b/docs/sdks/integrationswebhooks/README.md @@ -3,8 +3,6 @@ ## Overview -## Overview - ### Available Operations * [getStatus](#getstatus) - Get webhook support status for provider @@ -23,41 +21,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream:docs/sdks/webhooks/README.md - const result = await novu.integrations.webhooks.retrieve(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsWebhooksRetrieve } from "@novu/api/funcs/integrationsWebhooksRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsWebhooksRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.integrationsWebhooks.getStatus(""); ->>>>>>> Stashed changes:docs/sdks/integrationswebhooks/README.md // Handle the result console.log(result); @@ -107,7 +71,7 @@ run(); ### Response -**Promise\<[boolean](../../models/.md)\>** +**Promise\<[operations.IntegrationsControllerGetWebhookSupportStatusResponse](../../models/operations/integrationscontrollergetwebhooksupportstatusresponse.md)\>** ### Errors diff --git a/docs/sdks/messages/README.md b/docs/sdks/messages/README.md index 25aea245..79dd7f96 100644 --- a/docs/sdks/messages/README.md +++ b/docs/sdks/messages/README.md @@ -8,13 +8,13 @@ A message in Novu represents a notification delivered to a recipient on a partic ### Available Operations +* [get](#get) - Get messages * [delete](#delete) - Delete message * [deleteByTransactionId](#deletebytransactionid) - Delete messages by transactionId -* [retrieve](#retrieve) - Get messages -## delete +## get -Deletes a message entity from the Novu platform +Returns a list of messages, could paginate using the `page` query parameter ### Example Usage @@ -26,10 +26,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.messages.delete(""); - + const result = await novu.messages.get({}); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -41,7 +41,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { messagesDelete } from "@novu/api/funcs/messagesDelete.js"; +import { messagesGet } from "@novu/api/funcs/messagesGet.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -50,7 +50,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await messagesDelete(novu, ""); + const res = await messagesGet(novu, {}); if (!res.ok) { throw res.error; @@ -59,7 +59,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -69,25 +69,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `messageId` | *string* | :heavy_check_mark: | N/A | +| `request` | [operations.MessagesControllerGetMessagesRequest](../../models/operations/messagescontrollergetmessagesrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.DeleteMessageResponseDto](../../models/components/deletemessageresponsedto.md)\>** +**Promise\<[operations.MessagesControllerGetMessagesResponse](../../models/operations/messagescontrollergetmessagesresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## delete -## deleteByTransactionId - -Deletes messages entity from the Novu platform using TransactionId of message +Deletes a message entity from the Novu platform ### Example Usage @@ -99,7 +98,10 @@ const novu = new Novu({ }); async function run() { - await novu.messages.deleteByTransactionId(""); + const result = await novu.messages.delete(""); + + // Handle the result + console.log(result); } run(); @@ -111,7 +113,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { messagesDeleteByTransactionId } from "@novu/api/funcs/messagesDeleteByTransactionId.js"; +import { messagesDelete } from "@novu/api/funcs/messagesDelete.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -120,7 +122,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await messagesDeleteByTransactionId(novu, ""); + const res = await messagesDelete(novu, ""); if (!res.ok) { throw res.error; @@ -128,7 +130,8 @@ async function run() { const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -138,26 +141,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `transactionId` | *string* | :heavy_check_mark: | N/A | -| `channel` | [operations.Channel](../../models/operations/channel.md) | :heavy_minus_sign: | The channel of the message to be deleted | +| `messageId` | *string* | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\** +**Promise\<[operations.MessagesControllerDeleteMessageResponse](../../models/operations/messagescontrollerdeletemessageresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## retrieve +## deleteByTransactionId -Returns a list of messages, could paginate using the `page` query parameter +Deletes messages entity from the Novu platform using TransactionId of message ### Example Usage @@ -169,10 +170,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.messages.retrieve({}); - + const result = await novu.messages.deleteByTransactionId(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -184,7 +185,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { messagesRetrieve } from "@novu/api/funcs/messagesRetrieve.js"; +import { messagesDeleteByTransactionId } from "@novu/api/funcs/messagesDeleteByTransactionId.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -193,7 +194,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await messagesRetrieve(novu, {}); + const res = await messagesDeleteByTransactionId(novu, ""); if (!res.ok) { throw res.error; @@ -202,7 +203,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -212,17 +213,18 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.MessagesControllerGetMessagesRequest](../../models/operations/messagescontrollergetmessagesrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `channel` | [operations.QueryParamChannel](../../models/operations/queryparamchannel.md) | :heavy_minus_sign: | The channel of the message to be deleted | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md)\>** +**Promise\<[operations.MessagesControllerDeleteMessagesByTransactionIdResponse](../../models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/notifications/README.md b/docs/sdks/notifications/README.md index ef7899fb..5b145531 100644 --- a/docs/sdks/notifications/README.md +++ b/docs/sdks/notifications/README.md @@ -5,10 +5,9 @@ ### Available Operations -* [get](#get) - Get notification * [list](#list) - Get notifications +* [get](#get) - Get notification -<<<<<<< Updated upstream ## list Get notifications @@ -25,7 +24,9 @@ const novu = new Novu({ async function run() { const result = await novu.notifications.list({ channels: [ + "sms", "chat", + "in_app", ], templates: [ "", @@ -36,11 +37,12 @@ async function run() { search: "", subscriberIds: [ "", + "", ], }); - + // Handle the result - console.log(result) + console.log(result); } run(); @@ -64,6 +66,8 @@ async function run() { const res = await notificationsList(novu, { channels: [ "sms", + "chat", + "in_app", ], templates: [ "", @@ -74,6 +78,7 @@ async function run() { search: "", subscriberIds: [ "", + "", ], }); @@ -84,7 +89,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -101,19 +106,15 @@ run(); ### Response -**Promise\<[components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md)\>** +**Promise\<[operations.NotificationsControllerListNotificationsResponse](../../models/operations/notificationscontrollerlistnotificationsresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## retrieve -======= ## get ->>>>>>> Stashed changes Get notification @@ -127,41 +128,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.notifications.retrieve(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsRetrieve } from "@novu/api/funcs/notificationsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.notifications.get(""); ->>>>>>> Stashed changes // Handle the result console.log(result); @@ -211,113 +178,7 @@ run(); ### Response -**Promise\<[components.ActivityNotificationResponseDto](../../models/components/activitynotificationresponsedto.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## list - -Get notifications - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.notifications.list({ - channels: [ - "sms", - "chat", - "in_app", - ], - templates: [ - "", - ], - emails: [ - "", - ], - search: "", - subscriberIds: [ - "", - "", - ], - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsList } from "@novu/api/funcs/notificationsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsList(novu, { - channels: [ - "sms", - "chat", - "in_app", - ], - templates: [ - "", - ], - emails: [ - "", - ], - search: "", - subscriberIds: [ - "", - "", - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.NotificationsControllerListNotificationsRequest](../../models/operations/notificationscontrollerlistnotificationsrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md)\>** +**Promise\<[operations.NotificationsControllerGetNotificationResponse](../../models/operations/notificationscontrollergetnotificationresponse.md)\>** ### Errors diff --git a/docs/sdks/notificationsstats/README.md b/docs/sdks/notificationsstats/README.md index ece14685..8230c830 100644 --- a/docs/sdks/notificationsstats/README.md +++ b/docs/sdks/notificationsstats/README.md @@ -71,7 +71,7 @@ run(); ### Response -**Promise\<[components.ActivityGraphStatesResponse[]](../../models/.md)\>** +**Promise\<[operations.NotificationsControllerGetActivityGraphStatsResponse](../../models/operations/notificationscontrollergetactivitygraphstatsresponse.md)\>** ### Errors diff --git a/docs/sdks/novu/README.md b/docs/sdks/novu/README.md index aa8be496..df3e2047 100644 --- a/docs/sdks/novu/README.md +++ b/docs/sdks/novu/README.md @@ -9,107 +9,10 @@ Novu Documentation ### Available Operations -* [cancel](#cancel) - Cancel triggered event * [trigger](#trigger) - Trigger event -* [triggerBroadcast](#triggerbroadcast) - Broadcast event to all * [triggerBulk](#triggerbulk) - Bulk trigger event - -## cancel - - - Using a previously generated transactionId during the event trigger, - will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { -<<<<<<< Updated upstream - const result = await novu.cancel(""); - - // Handle the result - console.log(result) -======= - const result = await novu.cancel(""); - - // Handle the result - console.log(result); ->>>>>>> Stashed changes -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { cancel } from "@novu/api/funcs/cancel.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { -<<<<<<< Updated upstream - const res = await cancel(novu, ""); -======= - const res = await cancel(novu, ""); ->>>>>>> Stashed changes - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result -<<<<<<< Updated upstream - console.log(result) -======= - console.log(result); ->>>>>>> Stashed changes -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `transactionId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.DataBooleanDto](../../models/components/databooleandto.md)\>** - -### Errors - -<<<<<<< Updated upstream -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - -======= -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | ->>>>>>> Stashed changes +* [triggerBroadcast](#triggerbroadcast) - Broadcast event to all +* [cancel](#cancel) - Cancel triggered event ## trigger @@ -131,50 +34,13 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", type: "Topic", }, -<<<<<<< Updated upstream -======= - { - topicKey: "", - type: "Topic", - }, ->>>>>>> Stashed changes - ], - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { trigger } from "@novu/api/funcs/trigger.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await trigger(novu, { - name: "workflow_identifier", - overrides: {}, - payload: {}, - to: [ { topicKey: "", type: "Topic", @@ -182,12 +48,6 @@ async function run() { ], }); - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - // Handle the result console.log(result); } @@ -212,8 +72,8 @@ const novu = new NovuCore({ async function run() { const res = await trigger(novu, { name: "workflow_identifier", - overrides: {}, payload: {}, + overrides: {}, to: [ { topicKey: "", @@ -248,11 +108,9 @@ run(); | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | -<<<<<<< Updated upstream -======= ### Response -**Promise\<[components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)\>** +**Promise\<[operations.EventsControllerTriggerResponse](../../models/operations/eventscontrollertriggerresponse.md)\>** ### Errors @@ -260,12 +118,12 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## triggerBroadcast - -Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. +## triggerBulk - In the future could be used to trigger events to a subset of subscribers based on defined filters. + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + ### Example Usage @@ -277,10 +135,49 @@ const novu = new Novu({ }); async function run() { - const result = await novu.triggerBroadcast({ - name: "", - overrides: {}, - payload: {}, + const result = await novu.triggerBulk({ + events: [ + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, + ], }); // Handle the result @@ -296,7 +193,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { triggerBroadcast } from "@novu/api/funcs/triggerBroadcast.js"; +import { triggerBulk } from "@novu/api/funcs/triggerBulk.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -305,10 +202,49 @@ const novu = new NovuCore({ }); async function run() { - const res = await triggerBroadcast(novu, { - name: "", - overrides: {}, - payload: {}, + const res = await triggerBulk(novu, { + events: [ + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, + ], }); if (!res.ok) { @@ -328,27 +264,25 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.TriggerEventToAllRequestDto](../../models/components/triggereventtoallrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [components.BulkTriggerEventDto](../../models/components/bulktriggereventdto.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ->>>>>>> Stashed changes ### Response -**Promise\<[components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)\>** +**Promise\<[operations.EventsControllerTriggerBulkResponse](../../models/operations/eventscontrollertriggerbulkresponse.md)\>** -<<<<<<< Updated upstream ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | ## triggerBroadcast Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + In the future could be used to trigger events to a subset of subscribers based on defined filters. ### Example Usage @@ -363,12 +297,12 @@ const novu = new Novu({ async function run() { const result = await novu.triggerBroadcast({ name: "", - overrides: {}, payload: {}, + overrides: {}, }); - + // Handle the result - console.log(result) + console.log(result); } run(); @@ -391,8 +325,8 @@ const novu = new NovuCore({ async function run() { const res = await triggerBroadcast(novu, { name: "", - overrides: {}, payload: {}, + overrides: {}, }); if (!res.ok) { @@ -402,7 +336,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -419,105 +353,19 @@ run(); ### Response -**Promise\<[components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## triggerBulk - - - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. - - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.triggerBulk({ - events: [ - - ], - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { triggerBulk } from "@novu/api/funcs/triggerBulk.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await triggerBulk(novu, { - events: [ - - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.BulkTriggerEventDto](../../models/components/bulktriggereventdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.TriggerEventResponseDto[]](../../models/.md)\>** +**Promise\<[operations.EventsControllerBroadcastEventToAllResponse](../../models/operations/eventscontrollerbroadcasteventtoallresponse.md)\>** -======= ->>>>>>> Stashed changes ### Errors | Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## triggerBulk +## cancel - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... ### Example Usage @@ -530,50 +378,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.triggerBulk({ - events: [ - { - name: "workflow_identifier", - overrides: {}, - payload: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - subscriberId: "", - }, - ], - }, - { - name: "workflow_identifier", - overrides: {}, - payload: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - ], - }, - { - name: "workflow_identifier", - overrides: {}, - payload: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - topicKey: "", - type: "Topic", - }, - ], - }, - ], - }); + const result = await novu.cancel(""); // Handle the result console.log(result); @@ -588,7 +393,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { triggerBulk } from "@novu/api/funcs/triggerBulk.js"; +import { cancel } from "@novu/api/funcs/cancel.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -597,50 +402,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await triggerBulk(novu, { - events: [ - { - name: "workflow_identifier", - overrides: {}, - payload: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - subscriberId: "", - }, - ], - }, - { - name: "workflow_identifier", - overrides: {}, - payload: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - ], - }, - { - name: "workflow_identifier", - overrides: {}, - payload: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - topicKey: "", - type: "Topic", - }, - ], - }, - ], - }); + const res = await cancel(novu, ""); if (!res.ok) { throw res.error; @@ -659,14 +421,14 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.BulkTriggerEventDto](../../models/components/bulktriggereventdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `transactionId` | *string* | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.TriggerEventResponseDto[]](../../models/.md)\>** +**Promise\<[operations.EventsControllerCancelResponse](../../models/operations/eventscontrollercancelresponse.md)\>** ### Errors diff --git a/docs/sdks/novumessages/README.md b/docs/sdks/novumessages/README.md index 3320a5b5..a8751080 100644 --- a/docs/sdks/novumessages/README.md +++ b/docs/sdks/novumessages/README.md @@ -7,89 +7,7 @@ * [mark](#mark) - Mark a subscriber messages as seen, read, unseen or unread -<<<<<<< Updated upstream -## markAll - -Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.messages.markAll("", { - markAs: "seen", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesMarkAll } from "@novu/api/funcs/subscribersMessagesMarkAll.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesMarkAll(novu, "", { - markAs: "seen", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[number](../../models/.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## markAllAs -======= ## mark ->>>>>>> Stashed changes Mark a subscriber messages as seen, read, unseen or unread @@ -103,52 +21,10 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.subscribers.messages.markAllAs("", { - markAs: "seen", - messageId: "", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesMarkAllAs } from "@novu/api/funcs/subscribersMessagesMarkAllAs.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesMarkAllAs(novu, "", { - markAs: "seen", - messageId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.subscribers.messages.mark({ - markAs: "seen", - messageId: [ - "", - ], + messageId: "", + markAs: "read", }, ""); ->>>>>>> Stashed changes // Handle the result console.log(result); @@ -173,10 +49,8 @@ const novu = new NovuCore({ async function run() { const res = await subscribersMessagesMark(novu, { - markAs: "seen", - messageId: [ - "", - ], + messageId: "", + markAs: "read", }, ""); if (!res.ok) { @@ -204,101 +78,10 @@ run(); ### Response -**Promise\<[components.MessageEntity[]](../../models/.md)\>** +**Promise\<[operations.SubscribersControllerMarkMessagesAsResponse](../../models/operations/subscriberscontrollermarkmessagesasresponse.md)\>** ### Errors | Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -<<<<<<< Updated upstream -| errors.SDKError | 4xx-5xx | */* | - - -## updateAsSeen - -Mark message action as seen - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.messages.updateAsSeen({ - messageId: "", - type: "", - subscriberId: "", - markMessageActionAsSeenDto: { - status: "done", - }, - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesUpdateAsSeen } from "@novu/api/funcs/subscribersMessagesUpdateAsSeen.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesUpdateAsSeen(novu, { - messageId: "", - type: "", - subscriberId: "", - markMessageActionAsSeenDto: { - status: "done", - }, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerMarkActionAsSeenRequest](../../models/operations/subscriberscontrollermarkactionasseenrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.MessageResponseDto](../../models/components/messageresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | -======= -| errors.SDKError | 4XX, 5XX | \*/\* | ->>>>>>> Stashed changes +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novusubscribersnotifications/README.md b/docs/sdks/novusubscribersnotifications/README.md index dc380f17..7ca79d9b 100644 --- a/docs/sdks/novusubscribersnotifications/README.md +++ b/docs/sdks/novusubscribersnotifications/README.md @@ -77,7 +77,7 @@ run(); ### Response -**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponseBody](../../models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md)\>** +**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponse](../../models/operations/subscriberscontrollergetnotificationsfeedresponse.md)\>** ### Errors diff --git a/docs/sdks/novutopicssubscribers/README.md b/docs/sdks/novutopicssubscribers/README.md index 01c20e28..ab3724ff 100644 --- a/docs/sdks/novutopicssubscribers/README.md +++ b/docs/sdks/novutopicssubscribers/README.md @@ -23,19 +23,15 @@ const novu = new Novu({ }); async function run() { - await novu.topics.subscribers.add({ + const result = await novu.topics.subscribers.add({ subscribers: [ "", "", - "", ], -<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md - }); -======= }, ""); - ->>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md + // Handle the result + console.log(result); } run(); @@ -47,11 +43,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md -import { topicsSubscribersAssign } from "@novu/api/funcs/topicsSubscribersAssign.js"; -======= import { topicsSubscribersAdd } from "@novu/api/funcs/topicsSubscribersAdd.js"; ->>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -60,21 +52,12 @@ const novu = new NovuCore({ }); async function run() { -<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md - const res = await topicsSubscribersAssign(novu, "", { - subscribers: [ - "", - ], - }); -======= const res = await topicsSubscribersAdd(novu, { subscribers: [ "", "", - "", ], }, ""); ->>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md if (!res.ok) { throw res.error; @@ -82,7 +65,8 @@ async function run() { const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -100,7 +84,7 @@ run(); ### Response -**Promise\** +**Promise\<[operations.TopicsControllerAddSubscribersResponse](../../models/operations/topicscontrolleraddsubscribersresponse.md)\>** ### Errors @@ -108,90 +92,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md - -## delete - -Remove subscribers from a topic - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - await novu.topics.subscribers.delete("", { - subscribers: [ - "", - ], - }); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersDelete } from "@novu/api/funcs/topicsSubscribersDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersDelete(novu, "", { - subscribers: [ - "", - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve -======= ## check ->>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md Check if a subscriber belongs to a certain topic @@ -205,41 +106,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream:docs/sdks/novusubscribers/README.md - const result = await novu.topics.subscribers.retrieve("", ""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersRetrieve } from "@novu/api/funcs/topicsSubscribersRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersRetrieve(novu, "", ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.topics.subscribers.check("", ""); ->>>>>>> Stashed changes:docs/sdks/novutopicssubscribers/README.md // Handle the result console.log(result); @@ -290,7 +157,7 @@ run(); ### Response -**Promise\<[components.TopicSubscriberDto](../../models/components/topicsubscriberdto.md)\>** +**Promise\<[operations.TopicsControllerGetTopicSubscriberResponse](../../models/operations/topicscontrollergettopicsubscriberresponse.md)\>** ### Errors @@ -312,14 +179,15 @@ const novu = new Novu({ }); async function run() { - await novu.topics.subscribers.remove({ + const result = await novu.topics.subscribers.remove({ subscribers: [ "", "", ], }, ""); - + // Handle the result + console.log(result); } run(); @@ -353,7 +221,8 @@ async function run() { const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -371,7 +240,7 @@ run(); ### Response -**Promise\** +**Promise\<[operations.TopicsControllerRemoveSubscribersResponse](../../models/operations/topicscontrollerremovesubscribersresponse.md)\>** ### Errors diff --git a/docs/sdks/preferences/README.md b/docs/sdks/preferences/README.md index 3eb41402..7b5a26fa 100644 --- a/docs/sdks/preferences/README.md +++ b/docs/sdks/preferences/README.md @@ -23,41 +23,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.subscribers.preferences.list(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesList } from "@novu/api/funcs/subscribersPreferencesList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesList(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.subscribers.preferences.get(""); ->>>>>>> Stashed changes // Handle the result console.log(result); @@ -108,7 +74,7 @@ run(); ### Response -**Promise\<[components.UpdateSubscriberPreferenceResponseDto[]](../../models/.md)\>** +**Promise\<[operations.SubscribersControllerListSubscriberPreferencesResponse](../../models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md)\>** ### Errors @@ -116,12 +82,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -<<<<<<< Updated upstream - -## retrieveByLevel -======= ## getByLevel ->>>>>>> Stashed changes Get subscriber preferences by level @@ -135,44 +96,10 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.subscribers.preferences.retrieveByLevel("Topic", ""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesRetrieveByLevel } from "@novu/api/funcs/subscribersPreferencesRetrieveByLevel.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesRetrieveByLevel(novu, "Topic", ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.subscribers.preferences.getByLevel({ - parameter: "template", + parameter: "global", subscriberId: "", }); ->>>>>>> Stashed changes // Handle the result console.log(result); @@ -197,7 +124,7 @@ const novu = new NovuCore({ async function run() { const res = await subscribersPreferencesGetByLevel(novu, { - parameter: "template", + parameter: "global", subscriberId: "", }); @@ -218,19 +145,14 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -<<<<<<< Updated upstream -| `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved( Subscriber / Topic) | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -======= | `request` | [operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest](../../models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md) | :heavy_check_mark: | The request object to use for the request. | ->>>>>>> Stashed changes | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.GetSubscriberPreferencesResponseDto[]](../../models/.md)\>** +**Promise\<[operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse](../../models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md)\>** ### Errors @@ -238,7 +160,6 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | - ## update Update subscriber preference @@ -258,40 +179,6 @@ async function run() { parameter: "", updateSubscriberPreferenceRequestDto: {}, }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesUpdate } from "@novu/api/funcs/subscribersPreferencesUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesUpdate(novu, { - subscriberId: "", - parameter: "", - updateSubscriberPreferenceRequestDto: {}, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; // Handle the result console.log(result); @@ -345,88 +232,10 @@ run(); ### Response -**Promise\<[components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerUpdateSubscriberPreferenceResponse](../../models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md)\>** ### Errors | Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -<<<<<<< Updated upstream -| errors.SDKError | 4xx-5xx | */* | - - -## updateGlobal - -Update subscriber global preferences - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.preferences.updateGlobal("", {}); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesUpdateGlobal } from "@novu/api/funcs/subscribersPreferencesUpdateGlobal.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesUpdateGlobal(novu, "", {}); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | -======= -| errors.SDKError | 4XX, 5XX | \*/\* | ->>>>>>> Stashed changes +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/properties/README.md b/docs/sdks/properties/README.md index 426c0035..089bbf10 100644 --- a/docs/sdks/properties/README.md +++ b/docs/sdks/properties/README.md @@ -22,44 +22,8 @@ const novu = new Novu({ async function run() { const result = await novu.subscribers.properties.updateOnlineStatus({ - isOnline: false, -<<<<<<< Updated upstream - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPropertiesUpdateOnlineFlag } from "@novu/api/funcs/subscribersPropertiesUpdateOnlineFlag.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPropertiesUpdateOnlineFlag(novu, "", { - isOnline: false, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= + isOnline: true, }, ""); ->>>>>>> Stashed changes // Handle the result console.log(result); @@ -84,7 +48,7 @@ const novu = new NovuCore({ async function run() { const res = await subscribersPropertiesUpdateOnlineStatus(novu, { - isOnline: false, + isOnline: true, }, ""); if (!res.ok) { @@ -112,7 +76,7 @@ run(); ### Response -**Promise\<[components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse](../../models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md)\>** ### Errors diff --git a/docs/sdks/stats/README.md b/docs/sdks/stats/README.md index a50ff41a..19d480ab 100644 --- a/docs/sdks/stats/README.md +++ b/docs/sdks/stats/README.md @@ -7,84 +7,7 @@ * [get](#get) - Get notification statistics -<<<<<<< Updated upstream -## graph - -Get notification graph statistics - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.notifications.stats.graph(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsStatsGraph } from "@novu/api/funcs/notificationsStatsGraph.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsStatsGraph(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `days` | *number* | :heavy_minus_sign: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.ActivityGraphStatesResponse[]](../../models/.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve -======= ## get ->>>>>>> Stashed changes Get notification statistics @@ -98,41 +21,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream - const result = await novu.notifications.stats.retrieve(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsStatsRetrieve } from "@novu/api/funcs/notificationsStatsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsStatsRetrieve(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.notifications.stats.get(); ->>>>>>> Stashed changes // Handle the result console.log(result); @@ -181,7 +70,7 @@ run(); ### Response -**Promise\<[components.ActivityStatsResponseDto](../../models/components/activitystatsresponsedto.md)\>** +**Promise\<[operations.NotificationsControllerGetActivityStatsResponse](../../models/operations/notificationscontrollergetactivitystatsresponse.md)\>** ### Errors diff --git a/docs/sdks/subscribers/README.md b/docs/sdks/subscribers/README.md index 72c03327..99f443e5 100644 --- a/docs/sdks/subscribers/README.md +++ b/docs/sdks/subscribers/README.md @@ -8,16 +8,16 @@ A subscriber in Novu represents someone who should receive a message. A subscrib ### Available Operations +* [getAll](#getall) - Get subscribers * [create](#create) - Create subscriber -* [createBulk](#createbulk) - Bulk create subscribers -* [delete](#delete) - Delete subscriber -* [list](#list) - Get subscribers -* [retrieve](#retrieve) - Get subscriber +* [get](#get) - Get subscriber * [update](#update) - Update subscriber +* [delete](#delete) - Delete subscriber +* [createBulk](#createbulk) - Bulk create subscribers -## create +## getAll -Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. +Returns a list of subscribers, could paginated using the `page` and `limit` query parameter ### Example Usage @@ -29,12 +29,12 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.create({ - subscriberId: "", - }); - - // Handle the result - console.log(result) + const result = await novu.subscribers.getAll(); + + for await (const page of result) { + // Handle the page + console.log(page); + } } run(); @@ -46,7 +46,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersCreate } from "@novu/api/funcs/subscribersCreate.js"; +import { subscribersGetAll } from "@novu/api/funcs/subscribersGetAll.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -55,9 +55,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersCreate(novu, { - subscriberId: "", - }); + const res = await subscribersGetAll(novu); if (!res.ok) { throw res.error; @@ -65,8 +63,10 @@ async function run() { const { value: result } = res; - // Handle the result - console.log(result) + for await (const page of result) { + // Handle the page + console.log(page); + } } run(); @@ -76,28 +76,25 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateSubscriberRequestDto](../../models/components/createsubscriberrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `page` | *number* | :heavy_minus_sign: | N/A | +| `limit` | *number* | :heavy_minus_sign: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerListSubscribersResponse](../../models/operations/subscriberscontrollerlistsubscribersresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## createBulk +| errors.SDKError | 4XX, 5XX | \*/\* | +## create - Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - The bulk API is limited to 500 subscribers per request. - +Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. ### Example Usage @@ -109,11 +106,12 @@ const novu = new Novu({ }); async function run() { - await novu.subscribers.createBulk({ - subscribers: [ - "", - ], + const result = await novu.subscribers.create({ + subscriberId: "", }); + + // Handle the result + console.log(result); } run(); @@ -125,7 +123,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersCreateBulk } from "@novu/api/funcs/subscribersCreateBulk.js"; +import { subscribersCreate } from "@novu/api/funcs/subscribersCreate.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -134,10 +132,8 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersCreateBulk(novu, { - subscribers: [ - "", - ], + const res = await subscribersCreate(novu, { + subscriberId: "", }); if (!res.ok) { @@ -146,7 +142,8 @@ async function run() { const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -156,25 +153,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.BulkSubscriberCreateDto](../../models/components/bulksubscribercreatedto.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [components.CreateSubscriberRequestDto](../../models/components/createsubscriberrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\** +**Promise\<[operations.SubscribersControllerCreateSubscriberResponse](../../models/operations/subscriberscontrollercreatesubscriberresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## delete +## get -Deletes a subscriber entity from the Novu platform +Get subscriber by your internal id used to identify the subscriber ### Example Usage @@ -186,10 +182,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.delete(""); - + const result = await novu.subscribers.get(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -201,7 +197,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersDelete } from "@novu/api/funcs/subscribersDelete.js"; +import { subscribersGet } from "@novu/api/funcs/subscribersGet.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -210,7 +206,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersDelete(novu, ""); + const res = await subscribersGet(novu, ""); if (!res.ok) { throw res.error; @@ -219,7 +215,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -230,24 +226,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeTopics` | *string* | :heavy_minus_sign: | Includes the topics associated with the subscriber | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.DeleteSubscriberResponseDto](../../models/components/deletesubscriberresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerGetSubscriberResponse](../../models/operations/subscriberscontrollergetsubscriberresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## update -## list - -Returns a list of subscribers, could paginated using the `page` and `limit` query parameter +Used to update the subscriber entity with new information ### Example Usage @@ -259,12 +255,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.list(); - - for await (const page of result) { - // Handle the page - console.log(page); - } + const result = await novu.subscribers.update({}, ""); + + // Handle the result + console.log(result); } run(); @@ -276,7 +270,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersList } from "@novu/api/funcs/subscribersList.js"; +import { subscribersUpdate } from "@novu/api/funcs/subscribersUpdate.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -285,7 +279,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersList(novu); + const res = await subscribersUpdate(novu, {}, ""); if (!res.ok) { throw res.error; @@ -293,10 +287,8 @@ async function run() { const { value: result } = res; - for await (const page of result) { - // Handle the page - console.log(page); - } + // Handle the result + console.log(result); } run(); @@ -306,26 +298,25 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberRequestDto` | [components.UpdateSubscriberRequestDto](../../models/components/updatesubscriberrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[operations.SubscribersControllerListSubscribersResponse](../../models/operations/subscriberscontrollerlistsubscribersresponse.md)\>** +**Promise\<[operations.SubscribersControllerUpdateSubscriberResponse](../../models/operations/subscriberscontrollerupdatesubscriberresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## retrieve +## delete -Get subscriber by your internal id used to identify the subscriber +Deletes a subscriber entity from the Novu platform ### Example Usage @@ -337,10 +328,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.retrieve(""); - + const result = await novu.subscribers.delete(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -352,7 +343,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersRetrieve } from "@novu/api/funcs/subscribersRetrieve.js"; +import { subscribersDelete } from "@novu/api/funcs/subscribersDelete.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -361,7 +352,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersRetrieve(novu, ""); + const res = await subscribersDelete(novu, ""); if (!res.ok) { throw res.error; @@ -370,7 +361,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -387,18 +378,20 @@ run(); ### Response -**Promise\<[components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerRemoveSubscriberResponse](../../models/operations/subscriberscontrollerremovesubscriberresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## createBulk -## update -Used to update the subscriber entity with new information + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + ### Example Usage @@ -410,10 +403,14 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.update("", {}); - + const result = await novu.subscribers.createBulk({ + subscribers: [ + "", + ], + }); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -425,7 +422,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersUpdate } from "@novu/api/funcs/subscribersUpdate.js"; +import { subscribersCreateBulk } from "@novu/api/funcs/subscribersCreateBulk.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -434,7 +431,11 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersUpdate(novu, "", {}); + const res = await subscribersCreateBulk(novu, { + subscribers: [ + "", + ], + }); if (!res.ok) { throw res.error; @@ -443,7 +444,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -453,18 +454,17 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberRequestDto` | [components.UpdateSubscriberRequestDto](../../models/components/updatesubscriberrequestdto.md) | :heavy_check_mark: | N/A | +| `request` | [components.BulkSubscriberCreateDto](../../models/components/bulksubscribercreatedto.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)\>** +**Promise\<[operations.SubscribersControllerBulkCreateSubscribersResponse](../../models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/subscribersmessages/README.md b/docs/sdks/subscribersmessages/README.md index c13ed56e..e0681399 100644 --- a/docs/sdks/subscribersmessages/README.md +++ b/docs/sdks/subscribersmessages/README.md @@ -3,8 +3,6 @@ ## Overview -## Overview - ### Available Operations * [markAll](#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. @@ -24,49 +22,9 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md - const result = await novu.subscribers.notifications.retrieve({ - subscriberId: "", - payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersNotificationsRetrieve } from "@novu/api/funcs/subscribersNotificationsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersNotificationsRetrieve(novu, { - subscriberId: "", - payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.subscribersMessages.markAll({ markAs: "seen", }, ""); ->>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md // Handle the result console.log(result); @@ -119,11 +77,7 @@ run(); ### Response -<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md -**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponseBody](../../models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md)\>** -======= -**Promise\<[number](../../models/.md)\>** ->>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md +**Promise\<[operations.SubscribersControllerMarkAllUnreadAsReadResponse](../../models/operations/subscriberscontrollermarkallunreadasreadresponse.md)\>** ### Errors @@ -131,12 +85,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md - -## unseenCount -======= ## updateAsSeen ->>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md Mark message action as seen @@ -150,12 +99,6 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md - const result = await novu.subscribers.notifications.unseenCount({ - seen: true, - subscriberId: "", - limit: 4322.81, -======= const result = await novu.subscribersMessages.updateAsSeen({ messageId: "", type: "", @@ -163,42 +106,7 @@ async function run() { markMessageActionAsSeenDto: { status: "done", }, ->>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersNotificationsUnseenCount } from "@novu/api/funcs/subscribersNotificationsUnseenCount.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersNotificationsUnseenCount(novu, { - seen: true, - subscriberId: "", - limit: 4322.81, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; // Handle the result console.log(result); @@ -255,11 +163,7 @@ run(); ### Response -<<<<<<< Updated upstream:docs/sdks/novunotifications/README.md -**Promise\<[components.UnseenCountResponse](../../models/components/unseencountresponse.md)\>** -======= -**Promise\<[components.MessageResponseDto](../../models/components/messageresponsedto.md)\>** ->>>>>>> Stashed changes:docs/sdks/subscribersmessages/README.md +**Promise\<[operations.SubscribersControllerMarkActionAsSeenResponse](../../models/operations/subscriberscontrollermarkactionasseenresponse.md)\>** ### Errors diff --git a/docs/sdks/subscribersnotifications/README.md b/docs/sdks/subscribersnotifications/README.md index 53f488ac..17669086 100644 --- a/docs/sdks/subscribersnotifications/README.md +++ b/docs/sdks/subscribersnotifications/README.md @@ -3,8 +3,6 @@ ## Overview -## Overview - ### Available Operations * [getUnseenCount](#getunseencount) - Get the unseen in-app notifications count for subscribers feed @@ -23,45 +21,11 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream:docs/sdks/variables/README.md - const result = await novu.workflows.variables.retrieve(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowsVariablesRetrieve } from "@novu/api/funcs/workflowsVariablesRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowsVariablesRetrieve(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.subscribersNotifications.getUnseenCount({ - seen: true, + seen: false, subscriberId: "", - limit: 4327.98, + limit: 2979.49, }); ->>>>>>> Stashed changes:docs/sdks/subscribersnotifications/README.md // Handle the result console.log(result); @@ -86,9 +50,9 @@ const novu = new NovuCore({ async function run() { const res = await subscribersNotificationsGetUnseenCount(novu, { - seen: true, + seen: false, subscriberId: "", - limit: 4327.98, + limit: 2979.49, }); if (!res.ok) { @@ -115,11 +79,7 @@ run(); ### Response -<<<<<<< Updated upstream:docs/sdks/variables/README.md -**Promise\<[components.VariablesResponseDto](../../models/components/variablesresponsedto.md)\>** -======= -**Promise\<[components.UnseenCountResponse](../../models/components/unseencountresponse.md)\>** ->>>>>>> Stashed changes:docs/sdks/subscribersnotifications/README.md +**Promise\<[operations.SubscribersControllerGetUnseenCountResponse](../../models/operations/subscriberscontrollergetunseencountresponse.md)\>** ### Errors diff --git a/docs/sdks/subscriberspreferences/README.md b/docs/sdks/subscriberspreferences/README.md index 474b606f..92608a7e 100644 --- a/docs/sdks/subscriberspreferences/README.md +++ b/docs/sdks/subscriberspreferences/README.md @@ -3,8 +3,6 @@ ## Overview -## Overview - ### Available Operations * [updateGlobal](#updateglobal) - Update subscriber global preferences @@ -23,45 +21,7 @@ const novu = new Novu({ }); async function run() { -<<<<<<< Updated upstream:docs/sdks/status/README.md - const result = await novu.workflows.status.update("", { - active: false, - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowsStatusUpdate } from "@novu/api/funcs/workflowsStatusUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowsStatusUpdate(novu, "", { - active: false, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; -======= const result = await novu.subscribersPreferences.updateGlobal({}, ""); ->>>>>>> Stashed changes:docs/sdks/subscriberspreferences/README.md // Handle the result console.log(result); @@ -112,11 +72,7 @@ run(); ### Response -<<<<<<< Updated upstream:docs/sdks/status/README.md -**Promise\<[components.WorkflowResponse](../../models/components/workflowresponse.md)\>** -======= -**Promise\<[components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md)\>** ->>>>>>> Stashed changes:docs/sdks/subscriberspreferences/README.md +**Promise\<[operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse](../../models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md)\>** ### Errors diff --git a/docs/sdks/topics/README.md b/docs/sdks/topics/README.md index 184309c9..dc8a4b95 100644 --- a/docs/sdks/topics/README.md +++ b/docs/sdks/topics/README.md @@ -9,10 +9,10 @@ Topics are a way to group subscribers together so that they can be notified of e ### Available Operations * [create](#create) - Topic creation +* [getAll](#getall) - Filter topics * [delete](#delete) - Delete topic -* [list](#list) - Filter topics +* [get](#get) - Get topic * [rename](#rename) - Rename a topic -* [retrieve](#retrieve) - Get topic ## create @@ -32,9 +32,9 @@ async function run() { key: "", name: "", }); - + // Handle the result - console.log(result) + console.log(result); } run(); @@ -67,7 +67,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -84,18 +84,17 @@ run(); ### Response -**Promise\<[components.CreateTopicResponseDto](../../models/components/createtopicresponsedto.md)\>** +**Promise\<[operations.TopicsControllerCreateTopicResponse](../../models/operations/topicscontrollercreatetopicresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## delete +## getAll -Delete a topic by its topic key if it has no subscribers +Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter ### Example Usage @@ -107,7 +106,10 @@ const novu = new Novu({ }); async function run() { - await novu.topics.delete(""); + const result = await novu.topics.getAll({}); + + // Handle the result + console.log(result); } run(); @@ -119,7 +121,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { topicsDelete } from "@novu/api/funcs/topicsDelete.js"; +import { topicsGetAll } from "@novu/api/funcs/topicsGetAll.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -128,7 +130,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await topicsDelete(novu, ""); + const res = await topicsGetAll(novu, {}); if (!res.ok) { throw res.error; @@ -136,7 +138,8 @@ async function run() { const { value: result } = res; - + // Handle the result + console.log(result); } run(); @@ -146,25 +149,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `request` | [operations.TopicsControllerListTopicsRequest](../../models/operations/topicscontrollerlisttopicsrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\** +**Promise\<[operations.TopicsControllerListTopicsResponse](../../models/operations/topicscontrollerlisttopicsresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## list +## delete -Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter +Delete a topic by its topic key if it has no subscribers ### Example Usage @@ -176,10 +178,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.topics.list({}); - + const result = await novu.topics.delete(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -191,7 +193,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { topicsList } from "@novu/api/funcs/topicsList.js"; +import { topicsDelete } from "@novu/api/funcs/topicsDelete.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -200,7 +202,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await topicsList(novu, {}); + const res = await topicsDelete(novu, ""); if (!res.ok) { throw res.error; @@ -209,7 +211,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -219,25 +221,24 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.TopicsControllerListTopicsRequest](../../models/operations/topicscontrollerlisttopicsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.FilterTopicsResponseDto](../../models/components/filtertopicsresponsedto.md)\>** +**Promise\<[operations.TopicsControllerDeleteTopicResponse](../../models/operations/topicscontrollerdeletetopicresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | +## get -## rename - -Rename a topic by providing a new name +Get a topic by its topic key ### Example Usage @@ -249,12 +250,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.topics.rename("", { - name: "", - }); - + const result = await novu.topics.get(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -266,7 +265,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { topicsRename } from "@novu/api/funcs/topicsRename.js"; +import { topicsGet } from "@novu/api/funcs/topicsGet.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -275,9 +274,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await topicsRename(novu, "", { - name: "", - }); + const res = await topicsGet(novu, ""); if (!res.ok) { throw res.error; @@ -286,7 +283,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -297,25 +294,23 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `renameTopicRequestDto` | [components.RenameTopicRequestDto](../../models/components/renametopicrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.RenameTopicResponseDto](../../models/components/renametopicresponsedto.md)\>** +**Promise\<[operations.TopicsControllerGetTopicResponse](../../models/operations/topicscontrollergettopicresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## retrieve +## rename -Get a topic by its topic key +Rename a topic by providing a new name ### Example Usage @@ -327,10 +322,12 @@ const novu = new Novu({ }); async function run() { - const result = await novu.topics.retrieve(""); - + const result = await novu.topics.rename({ + name: "", + }, ""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -342,7 +339,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { topicsRetrieve } from "@novu/api/funcs/topicsRetrieve.js"; +import { topicsRename } from "@novu/api/funcs/topicsRename.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -351,7 +348,9 @@ const novu = new NovuCore({ }); async function run() { - const res = await topicsRetrieve(novu, ""); + const res = await topicsRename(novu, { + name: "", + }, ""); if (!res.ok) { throw res.error; @@ -360,7 +359,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -371,16 +370,17 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `renameTopicRequestDto` | [components.RenameTopicRequestDto](../../models/components/renametopicrequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.GetTopicResponseDto](../../models/components/gettopicresponsedto.md)\>** +**Promise\<[operations.TopicsControllerRenameTopicResponse](../../models/operations/topicscontrollerrenametopicresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/workflowgroups/README.md b/docs/sdks/workflowgroups/README.md index 5b30be03..5f261265 100644 --- a/docs/sdks/workflowgroups/README.md +++ b/docs/sdks/workflowgroups/README.md @@ -3,15 +3,13 @@ ## Overview -Workflow groups are used to organize workflows into logical groups. - ### Available Operations * [create](#create) - Create workflow group -* [delete](#delete) - Delete workflow group * [list](#list) - Get workflow groups -* [retrieve](#retrieve) - Get workflow group +* [get](#get) - Get workflow group * [update](#update) - Update workflow group +* [delete](#delete) - Delete workflow group ## create @@ -30,9 +28,9 @@ async function run() { const result = await novu.workflowGroups.create({ name: "", }); - + // Handle the result - console.log(result) + console.log(result); } run(); @@ -64,7 +62,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -81,16 +79,15 @@ run(); ### Response -**Promise\<[components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md)\>** +**Promise\<[operations.NotificationGroupsControllerCreateNotificationGroupResponse](../../models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## delete +## list workflow group was previously named notification group @@ -104,10 +101,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.workflowGroups.delete(""); - + const result = await novu.workflowGroups.list(); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -119,7 +116,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsDelete } from "@novu/api/funcs/workflowGroupsDelete.js"; +import { workflowGroupsList } from "@novu/api/funcs/workflowGroupsList.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -128,7 +125,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await workflowGroupsDelete(novu, ""); + const res = await workflowGroupsList(novu); if (!res.ok) { throw res.error; @@ -137,7 +134,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -147,23 +144,21 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.DeleteNotificationGroupResponseDto](../../models/components/deletenotificationgroupresponsedto.md)\>** +**Promise\<[operations.NotificationGroupsControllerListNotificationGroupsResponse](../../models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## list +## get workflow group was previously named notification group @@ -177,10 +172,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.workflowGroups.list(); - + const result = await novu.workflowGroups.get(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -192,7 +187,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsList } from "@novu/api/funcs/workflowGroupsList.js"; +import { workflowGroupsGet } from "@novu/api/funcs/workflowGroupsGet.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -201,7 +196,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await workflowGroupsList(novu); + const res = await workflowGroupsGet(novu, ""); if (!res.ok) { throw res.error; @@ -210,7 +205,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -220,22 +215,22 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.NotificationGroupResponseDto[]](../../models/.md)\>** +**Promise\<[operations.NotificationGroupsControllerGetNotificationGroupResponse](../../models/operations/notificationgroupscontrollergetnotificationgroupresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## retrieve +## update workflow group was previously named notification group @@ -249,10 +244,12 @@ const novu = new Novu({ }); async function run() { - const result = await novu.workflowGroups.retrieve(""); - + const result = await novu.workflowGroups.update({ + name: "", + }, ""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -264,7 +261,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsRetrieve } from "@novu/api/funcs/workflowGroupsRetrieve.js"; +import { workflowGroupsUpdate } from "@novu/api/funcs/workflowGroupsUpdate.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -273,7 +270,9 @@ const novu = new NovuCore({ }); async function run() { - const res = await workflowGroupsRetrieve(novu, ""); + const res = await workflowGroupsUpdate(novu, { + name: "", + }, ""); if (!res.ok) { throw res.error; @@ -282,7 +281,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -293,22 +292,22 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `id` | *string* | :heavy_check_mark: | N/A | +| `createNotificationGroupRequestDto` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md)\>** +**Promise\<[operations.NotificationGroupsControllerUpdateNotificationGroupResponse](../../models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - +| errors.SDKError | 4XX, 5XX | \*/\* | -## update +## delete workflow group was previously named notification group @@ -322,12 +321,10 @@ const novu = new Novu({ }); async function run() { - const result = await novu.workflowGroups.update("", { - name: "", - }); - + const result = await novu.workflowGroups.delete(""); + // Handle the result - console.log(result) + console.log(result); } run(); @@ -339,7 +336,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsUpdate } from "@novu/api/funcs/workflowGroupsUpdate.js"; +import { workflowGroupsDelete } from "@novu/api/funcs/workflowGroupsDelete.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -348,9 +345,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await workflowGroupsUpdate(novu, "", { - name: "", - }); + const res = await workflowGroupsDelete(novu, ""); if (!res.ok) { throw res.error; @@ -359,7 +354,7 @@ async function run() { const { value: result } = res; // Handle the result - console.log(result) + console.log(result); } run(); @@ -370,17 +365,16 @@ run(); | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `id` | *string* | :heavy_check_mark: | N/A | -| `createNotificationGroupRequestDto` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | N/A | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md)\>** +**Promise\<[operations.NotificationGroupsControllerDeleteNotificationGroupResponse](../../models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md)\>** ### Errors -| Error Object | Status Code | Content Type | +| Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/jsr.json b/jsr.json index 081fbdb7..cb18e220 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.11", + "version": "0.0.1-alpha.13", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index 332335e7..afd528a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.11", + "version": "0.0.1-alpha.13", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@novu/api", - "version": "0.0.1-alpha.11", + "version": "0.0.1-alpha.13", "devDependencies": { "@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/parser": "^7.7.1", diff --git a/package.json b/package.json index d84a765c..b48e4c83 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,9 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.11", + "version": "0.0.1-alpha.13", "author": "Novu", "main": "./index.js", "sideEffects": false, - "repository": { - "type": "git", - "url": "https://github.com/novuhq/novu-ts.git" - }, "scripts": { "lint": "eslint --max-warnings=0 src", "build": "tsc", diff --git a/src/funcs/cancel.ts b/src/funcs/cancel.ts index 9544995c..9589a631 100644 --- a/src/funcs/cancel.ts +++ b/src/funcs/cancel.ts @@ -3,19 +3,12 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -37,16 +30,12 @@ import { Result } from "../types/fp.js"; * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... */ export async function cancel( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes transactionId: string, options?: RequestOptions, ): Promise< Result< - components.DataBooleanDto, + operations.EventsControllerCancelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -56,26 +45,6 @@ export async function cancel( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.EventsControllerCancelRequest = { - transactionId: transactionId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.EventsControllerCancelRequest$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - transactionId: encodeSimple$("transactionId", payload$.transactionId, { -======= const input: operations.EventsControllerCancelRequest = { transactionId: transactionId, }; @@ -94,47 +63,11 @@ export async function cancel( const pathParams = { transactionId: encodeSimple("transactionId", payload.transactionId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EventsController_cancel", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams); const headers = new Headers({ @@ -154,7 +87,6 @@ export async function cancel( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -164,10 +96,6 @@ export async function cancel( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -191,19 +119,18 @@ export async function cancel( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.DataBooleanDto, + operations.EventsControllerCancelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -212,23 +139,16 @@ export async function cancel( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.DataBooleanDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.DataBooleanDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json(200, operations.EventsControllerCancelResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/environmentsApiKeysList.ts b/src/funcs/environmentsApiKeysList.ts index a3a124fc..834bb9a3 100644 --- a/src/funcs/environmentsApiKeysList.ts +++ b/src/funcs/environmentsApiKeysList.ts @@ -2,17 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import * as m$ from "../lib/matchers.js"; -======= import * as M from "../lib/matchers.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -22,21 +16,18 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** * Get api keys */ export async function environmentsApiKeysList( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - Array, + operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -46,40 +37,6 @@ export async function environmentsApiKeysList( | ConnectionError > > { -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/environments/api-keys")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EnvironmentsController_listOrganizationApiKeys", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/environments/api-keys")(); const headers = new Headers({ @@ -99,7 +56,6 @@ export async function environmentsApiKeysList( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -109,10 +65,6 @@ export async function environmentsApiKeysList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -135,19 +87,18 @@ export async function environmentsApiKeysList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - Array, + operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -156,23 +107,18 @@ export async function environmentsApiKeysList( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, z.array(components.ApiKey$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, z.array(components.ApiKey$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/environmentsGetAll.ts b/src/funcs/environmentsGetAll.ts index db0b4872..bbc8467b 100644 --- a/src/funcs/environmentsGetAll.ts +++ b/src/funcs/environmentsGetAll.ts @@ -2,13 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import * as M from "../lib/matchers.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -18,6 +16,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -28,7 +27,7 @@ export async function environmentsGetAll( options?: RequestOptions, ): Promise< Result< - Array, + operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -94,8 +93,12 @@ export async function environmentsGetAll( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - Array, + operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -104,9 +107,15 @@ export async function environmentsGetAll( | RequestTimeoutError | ConnectionError >( - M.json(200, z.array(components.EnvironmentResponseDto$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/environmentsGetCurrent.ts b/src/funcs/environmentsGetCurrent.ts index 5ebcf748..ece83a29 100644 --- a/src/funcs/environmentsGetCurrent.ts +++ b/src/funcs/environmentsGetCurrent.ts @@ -7,7 +7,6 @@ import * as M from "../lib/matchers.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -17,6 +16,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -27,7 +27,7 @@ export async function environmentsGetCurrent( options?: RequestOptions, ): Promise< Result< - components.EnvironmentResponseDto, + operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -93,8 +93,12 @@ export async function environmentsGetCurrent( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.EnvironmentResponseDto, + operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -103,9 +107,15 @@ export async function environmentsGetCurrent( | RequestTimeoutError | ConnectionError >( - M.json(200, components.EnvironmentResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/executionDetailsGet.ts b/src/funcs/executionDetailsGet.ts index b97ccd7b..e7f55906 100644 --- a/src/funcs/executionDetailsGet.ts +++ b/src/funcs/executionDetailsGet.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeFormQuery } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -10,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -33,7 +31,7 @@ export async function executionDetailsGet( options?: RequestOptions, ): Promise< Result< - Array, + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -128,8 +126,12 @@ export async function executionDetailsGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - Array, + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -138,9 +140,15 @@ export async function executionDetailsGet( | RequestTimeoutError | ConnectionError >( - M.json(200, z.array(components.ExecutionDetailsResponseDto$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/integrationsCreate.ts b/src/funcs/integrationsCreate.ts index f612c1ea..85abc07a 100644 --- a/src/funcs/integrationsCreate.ts +++ b/src/funcs/integrationsCreate.ts @@ -3,15 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -25,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -34,16 +29,12 @@ import { Result } from "../types/fp.js"; * Create an integration for the current environment the user is based on the API key provided */ export async function integrationsCreate( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: components.CreateIntegrationRequestDto, options?: RequestOptions, ): Promise< Result< - components.IntegrationResponseDto, + operations.IntegrationsControllerCreateIntegrationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -53,25 +44,6 @@ export async function integrationsCreate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - components.CreateIntegrationRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/integrations")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => @@ -87,40 +59,10 @@ export async function integrationsCreate( const path = pathToFunc("/v1/integrations")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "IntegrationsController_createIntegration", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -134,7 +76,6 @@ export async function integrationsCreate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -144,10 +85,6 @@ export async function integrationsCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -171,19 +108,18 @@ export async function integrationsCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.IntegrationResponseDto, + operations.IntegrationsControllerCreateIntegrationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -192,23 +128,17 @@ export async function integrationsCreate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, components.IntegrationResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, components.IntegrationResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 201, + operations.IntegrationsControllerCreateIntegrationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/integrationsDelete.ts b/src/funcs/integrationsDelete.ts index dd4c57dc..564e1e4d 100644 --- a/src/funcs/integrationsDelete.ts +++ b/src/funcs/integrationsDelete.ts @@ -2,21 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -33,16 +25,12 @@ import { Result } from "../types/fp.js"; * Delete integration */ export async function integrationsDelete( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes integrationId: string, options?: RequestOptions, ): Promise< Result< - Array, + operations.IntegrationsControllerRemoveIntegrationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -52,27 +40,6 @@ export async function integrationsDelete( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.IntegrationsControllerRemoveIntegrationRequest = { - integrationId: integrationId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.IntegrationsControllerRemoveIntegrationRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - integrationId: encodeSimple$("integrationId", payload$.integrationId, { -======= const input: operations.IntegrationsControllerRemoveIntegrationRequest = { integrationId: integrationId, }; @@ -92,47 +59,11 @@ export async function integrationsDelete( const pathParams = { integrationId: encodeSimple("integrationId", payload.integrationId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/integrations/{integrationId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "IntegrationsController_removeIntegration", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); const headers = new Headers({ @@ -152,7 +83,6 @@ export async function integrationsDelete( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -162,10 +92,6 @@ export async function integrationsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -189,19 +115,18 @@ export async function integrationsDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - Array, + operations.IntegrationsControllerRemoveIntegrationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -210,23 +135,17 @@ export async function integrationsDelete( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.IntegrationsControllerRemoveIntegrationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/integrationsList.ts b/src/funcs/integrationsList.ts index d87501cb..bf621189 100644 --- a/src/funcs/integrationsList.ts +++ b/src/funcs/integrationsList.ts @@ -2,17 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import * as m$ from "../lib/matchers.js"; -======= import * as M from "../lib/matchers.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -22,6 +16,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -31,15 +26,11 @@ import { Result } from "../types/fp.js"; * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change */ export async function integrationsList( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - Array, + operations.IntegrationsControllerListIntegrationsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -49,40 +40,6 @@ export async function integrationsList( | ConnectionError > > { -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/integrations")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "IntegrationsController_listIntegrations", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/integrations")(); const headers = new Headers({ @@ -102,7 +59,6 @@ export async function integrationsList( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -112,10 +68,6 @@ export async function integrationsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -138,19 +90,18 @@ export async function integrationsList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - Array, + operations.IntegrationsControllerListIntegrationsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -159,23 +110,17 @@ export async function integrationsList( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.IntegrationsControllerListIntegrationsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/integrationsListActive.ts b/src/funcs/integrationsListActive.ts index 598e1a11..aaeba337 100644 --- a/src/funcs/integrationsListActive.ts +++ b/src/funcs/integrationsListActive.ts @@ -2,17 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import * as m$ from "../lib/matchers.js"; -======= import * as M from "../lib/matchers.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -22,6 +16,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -31,15 +26,11 @@ import { Result } from "../types/fp.js"; * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change */ export async function integrationsListActive( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - Array, + operations.IntegrationsControllerGetActiveIntegrationsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -49,40 +40,6 @@ export async function integrationsListActive( | ConnectionError > > { -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/integrations/active")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "IntegrationsController_getActiveIntegrations", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/integrations/active")(); const headers = new Headers({ @@ -102,7 +59,6 @@ export async function integrationsListActive( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -112,10 +68,6 @@ export async function integrationsListActive( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -138,19 +90,18 @@ export async function integrationsListActive( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - Array, + operations.IntegrationsControllerGetActiveIntegrationsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -159,23 +110,18 @@ export async function integrationsListActive( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, z.array(components.IntegrationResponseDto$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/integrationsSetPrimary.ts b/src/funcs/integrationsSetPrimary.ts index 16e2eb7c..8b6fb52f 100644 --- a/src/funcs/integrationsSetPrimary.ts +++ b/src/funcs/integrationsSetPrimary.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -31,7 +30,7 @@ export async function integrationsSetPrimary( options?: RequestOptions, ): Promise< Result< - components.IntegrationResponseDto, + operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -126,8 +125,12 @@ export async function integrationsSetPrimary( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.IntegrationResponseDto, + operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -136,9 +139,15 @@ export async function integrationsSetPrimary( | RequestTimeoutError | ConnectionError >( - M.json(200, components.IntegrationResponseDto$inboundSchema), - M.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([404, 409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/integrationsUpdate.ts b/src/funcs/integrationsUpdate.ts index da01091f..75764de9 100644 --- a/src/funcs/integrationsUpdate.ts +++ b/src/funcs/integrationsUpdate.ts @@ -3,18 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -35,19 +26,13 @@ import { Result } from "../types/fp.js"; * Update integration */ export async function integrationsUpdate( -<<<<<<< Updated upstream - client$: NovuCore, - integrationId: string, - updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, -======= client: NovuCore, updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, integrationId: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - components.IntegrationResponseDto, + operations.IntegrationsControllerUpdateIntegrationByIdResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -57,32 +42,6 @@ export async function integrationsUpdate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.IntegrationsControllerUpdateIntegrationByIdRequest = - { - integrationId: integrationId, - updateIntegrationRequestDto: updateIntegrationRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.UpdateIntegrationRequestDto, { - explode: true, - }); - - const pathParams$ = { - integrationId: encodeSimple$("integrationId", payload$.integrationId, { -======= const input: operations.IntegrationsControllerUpdateIntegrationByIdRequest = { updateIntegrationRequestDto: updateIntegrationRequestDto, integrationId: integrationId, @@ -106,54 +65,18 @@ export async function integrationsUpdate( const pathParams = { integrationId: encodeSimple("integrationId", payload.integrationId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/integrations/{integrationId}")(pathParams$); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "IntegrationsController_updateIntegrationById", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PUT", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -167,7 +90,6 @@ export async function integrationsUpdate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -177,10 +99,6 @@ export async function integrationsUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -204,19 +122,18 @@ export async function integrationsUpdate( errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.IntegrationResponseDto, + operations.IntegrationsControllerUpdateIntegrationByIdResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -225,23 +142,18 @@ export async function integrationsUpdate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.IntegrationResponseDto$inboundSchema), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.IntegrationResponseDto$inboundSchema), - M.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([404, 409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/integrationsWebhooksGetStatus.ts b/src/funcs/integrationsWebhooksGetStatus.ts index cae59da7..dd0bee1f 100644 --- a/src/funcs/integrationsWebhooksGetStatus.ts +++ b/src/funcs/integrationsWebhooksGetStatus.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -34,7 +33,7 @@ export async function integrationsWebhooksGetStatus( options?: RequestOptions, ): Promise< Result< - boolean, + operations.IntegrationsControllerGetWebhookSupportStatusResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -130,8 +129,12 @@ export async function integrationsWebhooksGetStatus( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - boolean, + operations.IntegrationsControllerGetWebhookSupportStatusResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -140,9 +143,15 @@ export async function integrationsWebhooksGetStatus( | RequestTimeoutError | ConnectionError >( - M.json(200, z.boolean()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/messagesDelete.ts b/src/funcs/messagesDelete.ts index 90b949a7..b7a5121a 100644 --- a/src/funcs/messagesDelete.ts +++ b/src/funcs/messagesDelete.ts @@ -3,19 +3,12 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -35,16 +28,12 @@ import { Result } from "../types/fp.js"; * Deletes a message entity from the Novu platform */ export async function messagesDelete( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes messageId: string, options?: RequestOptions, ): Promise< Result< - components.DeleteMessageResponseDto, + operations.MessagesControllerDeleteMessageResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -54,28 +43,6 @@ export async function messagesDelete( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.MessagesControllerDeleteMessageRequest = { - messageId: messageId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.MessagesControllerDeleteMessageRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - messageId: encodeSimple$("messageId", payload$.messageId, { -======= const input: operations.MessagesControllerDeleteMessageRequest = { messageId: messageId, }; @@ -96,47 +63,11 @@ export async function messagesDelete( const pathParams = { messageId: encodeSimple("messageId", payload.messageId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/messages/{messageId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "MessagesController_deleteMessage", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/messages/{messageId}")(pathParams); const headers = new Headers({ @@ -156,7 +87,6 @@ export async function messagesDelete( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -166,10 +96,6 @@ export async function messagesDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -193,19 +119,18 @@ export async function messagesDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.DeleteMessageResponseDto, + operations.MessagesControllerDeleteMessageResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -214,23 +139,17 @@ export async function messagesDelete( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.DeleteMessageResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.DeleteMessageResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.MessagesControllerDeleteMessageResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/messagesDeleteByTransactionId.ts b/src/funcs/messagesDeleteByTransactionId.ts index aa531641..74617b66 100644 --- a/src/funcs/messagesDeleteByTransactionId.ts +++ b/src/funcs/messagesDeleteByTransactionId.ts @@ -2,20 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeFormQuery as encodeFormQuery$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -38,17 +28,14 @@ import { Result } from "../types/fp.js"; * Deletes messages entity from the Novu platform using TransactionId of message */ export async function messagesDeleteByTransactionId( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes transactionId: string, - channel?: operations.Channel | undefined, + channel?: operations.QueryParamChannel | undefined, options?: RequestOptions, ): Promise< Result< - void, + | operations.MessagesControllerDeleteMessagesByTransactionIdResponse + | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -58,30 +45,6 @@ export async function messagesDeleteByTransactionId( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: - operations.MessagesControllerDeleteMessagesByTransactionIdRequest = { - channel: channel, - transactionId: transactionId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - transactionId: encodeSimple$("transactionId", payload$.transactionId, { -======= const input: operations.MessagesControllerDeleteMessagesByTransactionIdRequest = { transactionId: transactionId, @@ -104,54 +67,11 @@ export async function messagesDeleteByTransactionId( const pathParams = { transactionId: encodeSimple("transactionId", payload.transactionId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/messages/transaction/{transactionId}")( - pathParams$, - ); - - const query$ = encodeFormQuery$({ - "channel": payload$.channel, - }); - - const headers$ = new Headers({ - Accept: "*/*", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "MessagesController_deleteMessagesByTransactionId", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/messages/transaction/{transactionId}")( pathParams, ); @@ -177,7 +97,6 @@ export async function messagesDeleteByTransactionId( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -187,10 +106,6 @@ export async function messagesDeleteByTransactionId( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -215,19 +130,19 @@ export async function messagesDeleteByTransactionId( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - void, + | operations.MessagesControllerDeleteMessagesByTransactionIdResponse + | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -236,23 +151,19 @@ export async function messagesDeleteByTransactionId( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.nil(204, z.void()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.nil(204, z.void()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.nil( + 204, + operations + .MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/messagesGet.ts b/src/funcs/messagesGet.ts index ade7b42d..d0093347 100644 --- a/src/funcs/messagesGet.ts +++ b/src/funcs/messagesGet.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -34,7 +33,7 @@ export async function messagesGet( options?: RequestOptions, ): Promise< Result< - components.ActivitiesResponseDto, + operations.MessagesControllerGetMessagesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -124,8 +123,12 @@ export async function messagesGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.ActivitiesResponseDto, + operations.MessagesControllerGetMessagesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -134,9 +137,14 @@ export async function messagesGet( | RequestTimeoutError | ConnectionError >( - M.json(200, components.ActivitiesResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.MessagesControllerGetMessagesResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/notificationsGet.ts b/src/funcs/notificationsGet.ts index 6beeaffe..61f40254 100644 --- a/src/funcs/notificationsGet.ts +++ b/src/funcs/notificationsGet.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -31,7 +30,7 @@ export async function notificationsGet( options?: RequestOptions, ): Promise< Result< - components.ActivityNotificationResponseDto, + operations.NotificationsControllerGetNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -122,8 +121,12 @@ export async function notificationsGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.ActivityNotificationResponseDto, + operations.NotificationsControllerGetNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -132,9 +135,14 @@ export async function notificationsGet( | RequestTimeoutError | ConnectionError >( - M.json(200, components.ActivityNotificationResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.NotificationsControllerGetNotificationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/notificationsList.ts b/src/funcs/notificationsList.ts index ed073c89..b81a75be 100644 --- a/src/funcs/notificationsList.ts +++ b/src/funcs/notificationsList.ts @@ -3,19 +3,12 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeFormQuery } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -32,16 +25,12 @@ import { Result } from "../types/fp.js"; * Get notifications */ export async function notificationsList( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: operations.NotificationsControllerListNotificationsRequest, options?: RequestOptions, ): Promise< Result< - components.ActivitiesResponseDto, + operations.NotificationsControllerListNotificationsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -51,67 +40,6 @@ export async function notificationsList( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.NotificationsControllerListNotificationsRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const path$ = pathToFunc("/v1/notifications")(); - - const query$ = encodeFormQuery$({ - "channels": payload$.channels, - "emails": payload$.emails, - "page": payload$.page, - "search": payload$.search, - "subscriberIds": payload$.subscriberIds, - "templates": payload$.templates, - "transactionId": payload$.transactionId, - }); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "NotificationsController_listNotifications", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const parsed = safeParse( request, (value) => @@ -154,7 +82,6 @@ export async function notificationsList( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -164,10 +91,6 @@ export async function notificationsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -192,19 +115,18 @@ export async function notificationsList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.ActivitiesResponseDto, + operations.NotificationsControllerListNotificationsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -213,23 +135,17 @@ export async function notificationsList( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.ActivitiesResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.ActivitiesResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.NotificationsControllerListNotificationsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/notificationsStatsGet.ts b/src/funcs/notificationsStatsGet.ts index e7420b09..f6016299 100644 --- a/src/funcs/notificationsStatsGet.ts +++ b/src/funcs/notificationsStatsGet.ts @@ -7,7 +7,6 @@ import * as M from "../lib/matchers.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -17,6 +16,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -27,7 +27,7 @@ export async function notificationsStatsGet( options?: RequestOptions, ): Promise< Result< - components.ActivityStatsResponseDto, + operations.NotificationsControllerGetActivityStatsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -93,8 +93,12 @@ export async function notificationsStatsGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.ActivityStatsResponseDto, + operations.NotificationsControllerGetActivityStatsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -103,9 +107,14 @@ export async function notificationsStatsGet( | RequestTimeoutError | ConnectionError >( - M.json(200, components.ActivityStatsResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.NotificationsControllerGetActivityStatsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersAuthenticationHandleOauth.ts b/src/funcs/subscribersAuthenticationHandleOauth.ts index c0ee844a..d624e7f7 100644 --- a/src/funcs/subscribersAuthenticationHandleOauth.ts +++ b/src/funcs/subscribersAuthenticationHandleOauth.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -31,7 +30,7 @@ export async function subscribersAuthenticationHandleOauth( options?: RequestOptions, ): Promise< Result< - void, + operations.SubscribersControllerChatAccessOauthResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -131,8 +130,12 @@ export async function subscribersAuthenticationHandleOauth( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - void, + operations.SubscribersControllerChatAccessOauthResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -141,9 +144,14 @@ export async function subscribersAuthenticationHandleOauth( | RequestTimeoutError | ConnectionError >( - M.nil(200, z.void()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.nil( + 200, + operations.SubscribersControllerChatAccessOauthResponse$inboundSchema + .optional(), + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersAuthenticationHandleOauthCallback.ts b/src/funcs/subscribersAuthenticationHandleOauthCallback.ts index 75cb845e..77b6249a 100644 --- a/src/funcs/subscribersAuthenticationHandleOauthCallback.ts +++ b/src/funcs/subscribersAuthenticationHandleOauthCallback.ts @@ -30,7 +30,7 @@ export async function subscribersAuthenticationHandleOauthCallback( options?: RequestOptions, ): Promise< Result< - operations.SubscribersControllerChatOauthCallbackResponseBody, + operations.SubscribersControllerChatOauthCallbackResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -131,8 +131,12 @@ export async function subscribersAuthenticationHandleOauthCallback( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - operations.SubscribersControllerChatOauthCallbackResponseBody, + operations.SubscribersControllerChatOauthCallbackResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -143,11 +147,12 @@ export async function subscribersAuthenticationHandleOauthCallback( >( M.json( 200, - operations - .SubscribersControllerChatOauthCallbackResponseBody$inboundSchema, + operations.SubscribersControllerChatOauthCallbackResponse$inboundSchema, + { key: "Result" }, ), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersCreate.ts b/src/funcs/subscribersCreate.ts index 2464adc5..3b5f1f56 100644 --- a/src/funcs/subscribersCreate.ts +++ b/src/funcs/subscribersCreate.ts @@ -3,15 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -25,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -34,16 +29,12 @@ import { Result } from "../types/fp.js"; * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. */ export async function subscribersCreate( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: components.CreateSubscriberRequestDto, options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerCreateSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -53,25 +44,6 @@ export async function subscribersCreate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - components.CreateSubscriberRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/subscribers")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => @@ -87,40 +59,10 @@ export async function subscribersCreate( const path = pathToFunc("/v1/subscribers")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_createSubscriber", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -134,7 +76,6 @@ export async function subscribersCreate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -144,10 +85,6 @@ export async function subscribersCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -171,19 +108,18 @@ export async function subscribersCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.SubscriberResponseDto, + operations.SubscribersControllerCreateSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -192,23 +128,17 @@ export async function subscribersCreate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, components.SubscriberResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, components.SubscriberResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 201, + operations.SubscribersControllerCreateSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCreateBulk.ts b/src/funcs/subscribersCreateBulk.ts index 62a228d0..009682f8 100644 --- a/src/funcs/subscribersCreateBulk.ts +++ b/src/funcs/subscribersCreateBulk.ts @@ -2,17 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -26,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -37,16 +31,12 @@ import { Result } from "../types/fp.js"; * The bulk API is limited to 500 subscribers per request. */ export async function subscribersCreateBulk( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: components.BulkSubscriberCreateDto, options?: RequestOptions, ): Promise< Result< - void, + operations.SubscribersControllerBulkCreateSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -56,24 +46,6 @@ export async function subscribersCreateBulk( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.BulkSubscriberCreateDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/subscribers/bulk")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => components.BulkSubscriberCreateDto$outboundSchema.parse(value), @@ -88,40 +60,10 @@ export async function subscribersCreateBulk( const path = pathToFunc("/v1/subscribers/bulk")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "*/*", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_bulkCreateSubscribers", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -135,7 +77,6 @@ export async function subscribersCreateBulk( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -145,10 +86,6 @@ export async function subscribersCreateBulk( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -172,19 +109,18 @@ export async function subscribersCreateBulk( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - void, + operations.SubscribersControllerBulkCreateSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -193,23 +129,18 @@ export async function subscribersCreateBulk( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.nil(201, z.void()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.nil(201, z.void()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.nil( + 201, + operations + .SubscribersControllerBulkCreateSubscribersResponse$inboundSchema + .optional(), + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCredentialsAppend.ts b/src/funcs/subscribersCredentialsAppend.ts index f0757266..f5674ecf 100644 --- a/src/funcs/subscribersCredentialsAppend.ts +++ b/src/funcs/subscribersCredentialsAppend.ts @@ -3,18 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -36,15 +27,6 @@ import { Result } from "../types/fp.js"; * * @remarks * Subscriber credentials associated to the delivery methods such as slack and push tokens. -<<<<<<< Updated upstream - * This endpoint appends provided credentials and deviceTokens to the existing ones. - */ -export async function subscribersCredentialsAppend( - client$: NovuCore, - subscriberId: string, - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, -======= * * This endpoint appends provided credentials and deviceTokens to the existing ones. */ @@ -53,11 +35,10 @@ export async function subscribersCredentialsAppend( updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, subscriberId: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerModifySubscriberChannelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -67,34 +48,6 @@ export async function subscribersCredentialsAppend( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.SubscribersControllerModifySubscriberChannelRequest = - { - subscriberId: subscriberId, - updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .SubscribersControllerModifySubscriberChannelRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$( - "body", - payload$.UpdateSubscriberChannelRequestDto, - { explode: true }, - ); - - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const input: operations.SubscribersControllerModifySubscriberChannelRequest = { updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, @@ -119,58 +72,20 @@ export async function subscribersCredentialsAppend( const pathParams = { subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( - pathParams$, - ); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( pathParams, ); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_modifySubscriberChannel", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -184,7 +99,6 @@ export async function subscribersCredentialsAppend( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -194,10 +108,6 @@ export async function subscribersCredentialsAppend( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -221,19 +131,18 @@ export async function subscribersCredentialsAppend( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.SubscriberResponseDto, + operations.SubscribersControllerModifySubscriberChannelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -242,23 +151,18 @@ export async function subscribersCredentialsAppend( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.SubscriberResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.SubscriberResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .SubscribersControllerModifySubscriberChannelResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCredentialsDelete.ts b/src/funcs/subscribersCredentialsDelete.ts index 83a02725..ed006cbf 100644 --- a/src/funcs/subscribersCredentialsDelete.ts +++ b/src/funcs/subscribersCredentialsDelete.ts @@ -2,17 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -35,17 +28,14 @@ import { Result } from "../types/fp.js"; * Delete subscriber credentials such as slack and expo tokens. */ export async function subscribersCredentialsDelete( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes subscriberId: string, providerId: string, options?: RequestOptions, ): Promise< Result< - void, + | operations.SubscribersControllerDeleteSubscriberCredentialsResponse + | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -55,38 +45,12 @@ export async function subscribersCredentialsDelete( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: -======= const input: ->>>>>>> Stashed changes operations.SubscribersControllerDeleteSubscriberCredentialsRequest = { subscriberId: subscriberId, providerId: providerId, }; -<<<<<<< Updated upstream - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - providerId: encodeSimple$("providerId", payload$.providerId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const parsed = safeParse( input, (value) => @@ -107,49 +71,11 @@ export async function subscribersCredentialsDelete( charEncoding: "percent", }), subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc( - "/v1/subscribers/{subscriberId}/credentials/{providerId}", - )(pathParams$); - - const headers$ = new Headers({ - Accept: "*/*", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_deleteSubscriberCredentials", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc( "/v1/subscribers/{subscriberId}/credentials/{providerId}", )(pathParams); @@ -171,7 +97,6 @@ export async function subscribersCredentialsDelete( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -181,10 +106,6 @@ export async function subscribersCredentialsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -208,19 +129,19 @@ export async function subscribersCredentialsDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - void, + | operations.SubscribersControllerDeleteSubscriberCredentialsResponse + | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -229,23 +150,19 @@ export async function subscribersCredentialsDelete( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.nil(204, z.void()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.nil(204, z.void()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.nil( + 204, + operations + .SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersCredentialsUpdate.ts b/src/funcs/subscribersCredentialsUpdate.ts index cf2eae4a..f5f507f1 100644 --- a/src/funcs/subscribersCredentialsUpdate.ts +++ b/src/funcs/subscribersCredentialsUpdate.ts @@ -3,18 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -38,21 +29,14 @@ import { Result } from "../types/fp.js"; * Subscriber credentials associated to the delivery methods such as slack and push tokens. */ export async function subscribersCredentialsUpdate( -<<<<<<< Updated upstream - client$: NovuCore, - subscriberId: string, - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, -======= client: NovuCore, updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, subscriberId: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerUpdateSubscriberChannelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -62,34 +46,6 @@ export async function subscribersCredentialsUpdate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.SubscribersControllerUpdateSubscriberChannelRequest = - { - subscriberId: subscriberId, - updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$( - "body", - payload$.UpdateSubscriberChannelRequestDto, - { explode: true }, - ); - - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const input: operations.SubscribersControllerUpdateSubscriberChannelRequest = { updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, @@ -114,58 +70,20 @@ export async function subscribersCredentialsUpdate( const pathParams = { subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( - pathParams$, - ); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( pathParams, ); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_updateSubscriberChannel", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PUT", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -179,7 +97,6 @@ export async function subscribersCredentialsUpdate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -189,10 +106,6 @@ export async function subscribersCredentialsUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -216,19 +129,18 @@ export async function subscribersCredentialsUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.SubscriberResponseDto, + operations.SubscribersControllerUpdateSubscriberChannelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -237,23 +149,18 @@ export async function subscribersCredentialsUpdate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.SubscriberResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.SubscriberResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersDelete.ts b/src/funcs/subscribersDelete.ts index d0843f42..09d9f88b 100644 --- a/src/funcs/subscribersDelete.ts +++ b/src/funcs/subscribersDelete.ts @@ -3,19 +3,12 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -35,16 +28,12 @@ import { Result } from "../types/fp.js"; * Deletes a subscriber entity from the Novu platform */ export async function subscribersDelete( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes subscriberId: string, options?: RequestOptions, ): Promise< Result< - components.DeleteSubscriberResponseDto, + operations.SubscribersControllerRemoveSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -54,27 +43,6 @@ export async function subscribersDelete( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.SubscribersControllerRemoveSubscriberRequest = { - subscriberId: subscriberId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.SubscribersControllerRemoveSubscriberRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const input: operations.SubscribersControllerRemoveSubscriberRequest = { subscriberId: subscriberId, }; @@ -94,47 +62,11 @@ export async function subscribersDelete( const pathParams = { subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_removeSubscriber", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); const headers = new Headers({ @@ -154,7 +86,6 @@ export async function subscribersDelete( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -164,10 +95,6 @@ export async function subscribersDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -191,19 +118,18 @@ export async function subscribersDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.DeleteSubscriberResponseDto, + operations.SubscribersControllerRemoveSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -212,23 +138,17 @@ export async function subscribersDelete( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.DeleteSubscriberResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.DeleteSubscriberResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.SubscribersControllerRemoveSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersGet.ts b/src/funcs/subscribersGet.ts index 51633b00..4469fd47 100644 --- a/src/funcs/subscribersGet.ts +++ b/src/funcs/subscribersGet.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -35,7 +34,7 @@ export async function subscribersGet( options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerGetSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -133,8 +132,12 @@ export async function subscribersGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.SubscriberResponseDto, + operations.SubscribersControllerGetSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -143,9 +146,14 @@ export async function subscribersGet( | RequestTimeoutError | ConnectionError >( - M.json(200, components.SubscriberResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.SubscribersControllerGetSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersGetAll.ts b/src/funcs/subscribersGetAll.ts index c42ae4b8..9d8ef3b0 100644 --- a/src/funcs/subscribersGetAll.ts +++ b/src/funcs/subscribersGetAll.ts @@ -151,9 +151,10 @@ export async function subscribersGetAll( M.json( 200, operations.SubscribersControllerListSubscribersResponse$inboundSchema, - { key: "Result" }, + { hdrs: true, key: "Result" }, ), - M.fail([409, 429, "4XX", 503, "5XX"]), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), )(response, { extraFields: responseFields }); if (!result.ok) { return haltIterator(result); diff --git a/src/funcs/subscribersMessagesMark.ts b/src/funcs/subscribersMessagesMark.ts index bcb3c3e2..d9f9b77b 100644 --- a/src/funcs/subscribersMessagesMark.ts +++ b/src/funcs/subscribersMessagesMark.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -33,7 +32,7 @@ export async function subscribersMessagesMark( options?: RequestOptions, ): Promise< Result< - Array, + operations.SubscribersControllerMarkMessagesAsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -130,8 +129,12 @@ export async function subscribersMessagesMark( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - Array, + operations.SubscribersControllerMarkMessagesAsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -140,9 +143,14 @@ export async function subscribersMessagesMark( | RequestTimeoutError | ConnectionError >( - M.json(201, z.array(components.MessageEntity$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 201, + operations.SubscribersControllerMarkMessagesAsResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersMessagesMarkAll.ts b/src/funcs/subscribersMessagesMarkAll.ts index d8460c27..4d5df079 100644 --- a/src/funcs/subscribersMessagesMarkAll.ts +++ b/src/funcs/subscribersMessagesMarkAll.ts @@ -2,20 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -36,19 +26,13 @@ import { Result } from "../types/fp.js"; * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. */ export async function subscribersMessagesMarkAll( -<<<<<<< Updated upstream - client$: NovuCore, - subscriberId: string, - markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, -======= client: NovuCore, markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, subscriberId: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - number, + operations.SubscribersControllerMarkAllUnreadAsReadResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -58,30 +42,6 @@ export async function subscribersMessagesMarkAll( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.SubscribersControllerMarkAllUnreadAsReadRequest = { - subscriberId: subscriberId, - markAllMessageAsRequestDto: markAllMessageAsRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.MarkAllMessageAsRequestDto, { - explode: true, - }); - - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const input: operations.SubscribersControllerMarkAllUnreadAsReadRequest = { markAllMessageAsRequestDto: markAllMessageAsRequestDto, subscriberId: subscriberId, @@ -104,58 +64,20 @@ export async function subscribersMessagesMarkAll( const pathParams = { subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-all")( - pathParams$, - ); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-all")( pathParams, ); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_markAllUnreadAsRead", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -169,7 +91,6 @@ export async function subscribersMessagesMarkAll( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -179,10 +100,6 @@ export async function subscribersMessagesMarkAll( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -206,19 +123,18 @@ export async function subscribersMessagesMarkAll( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - number, + operations.SubscribersControllerMarkAllUnreadAsReadResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -227,23 +143,17 @@ export async function subscribersMessagesMarkAll( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, z.number()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, z.number()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 201, + operations.SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersMessagesUpdateAsSeen.ts b/src/funcs/subscribersMessagesUpdateAsSeen.ts index 15bd49eb..0fc8ece6 100644 --- a/src/funcs/subscribersMessagesUpdateAsSeen.ts +++ b/src/funcs/subscribersMessagesUpdateAsSeen.ts @@ -3,22 +3,12 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -35,16 +25,12 @@ import { Result } from "../types/fp.js"; * Mark message action as seen */ export async function subscribersMessagesUpdateAsSeen( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: operations.SubscribersControllerMarkActionAsSeenRequest, options?: RequestOptions, ): Promise< Result< - components.MessageResponseDto, + operations.SubscribersControllerMarkActionAsSeenResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -54,35 +40,6 @@ export async function subscribersMessagesUpdateAsSeen( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.SubscribersControllerMarkActionAsSeenRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.MarkMessageActionAsSeenDto, { - explode: true, - }); - - const pathParams$ = { - messageId: encodeSimple$("messageId", payload$.messageId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { - explode: false, - charEncoding: "percent", - }), - type: encodeSimple$("type", payload$.type, { -======= const parsed = safeParse( request, (value) => @@ -108,58 +65,20 @@ export async function subscribersMessagesUpdateAsSeen( charEncoding: "percent", }), type: encodeSimple("type", payload.type, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc( - "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}", - )(pathParams$); - - const headers$ = new Headers({ -======= const path = pathToFunc( "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}", )(pathParams); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_markActionAsSeen", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -173,7 +92,6 @@ export async function subscribersMessagesUpdateAsSeen( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -183,10 +101,6 @@ export async function subscribersMessagesUpdateAsSeen( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -210,19 +124,18 @@ export async function subscribersMessagesUpdateAsSeen( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.MessageResponseDto, + operations.SubscribersControllerMarkActionAsSeenResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -231,23 +144,17 @@ export async function subscribersMessagesUpdateAsSeen( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, components.MessageResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, components.MessageResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 201, + operations.SubscribersControllerMarkActionAsSeenResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersNotificationsGetFeed.ts b/src/funcs/subscribersNotificationsGetFeed.ts index 8fb8e67a..0d421b4f 100644 --- a/src/funcs/subscribersNotificationsGetFeed.ts +++ b/src/funcs/subscribersNotificationsGetFeed.ts @@ -30,7 +30,7 @@ export async function subscribersNotificationsGetFeed( options?: RequestOptions, ): Promise< Result< - operations.SubscribersControllerGetNotificationsFeedResponseBody, + operations.SubscribersControllerGetNotificationsFeedResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -128,8 +128,12 @@ export async function subscribersNotificationsGetFeed( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - operations.SubscribersControllerGetNotificationsFeedResponseBody, + operations.SubscribersControllerGetNotificationsFeedResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -141,10 +145,12 @@ export async function subscribersNotificationsGetFeed( M.json( 200, operations - .SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema, + .SubscribersControllerGetNotificationsFeedResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersNotificationsGetUnseenCount.ts b/src/funcs/subscribersNotificationsGetUnseenCount.ts index edcb7ed8..e5f9c13b 100644 --- a/src/funcs/subscribersNotificationsGetUnseenCount.ts +++ b/src/funcs/subscribersNotificationsGetUnseenCount.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -31,7 +30,7 @@ export async function subscribersNotificationsGetUnseenCount( options?: RequestOptions, ): Promise< Result< - components.UnseenCountResponse, + operations.SubscribersControllerGetUnseenCountResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -126,8 +125,12 @@ export async function subscribersNotificationsGetUnseenCount( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.UnseenCountResponse, + operations.SubscribersControllerGetUnseenCountResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -136,9 +139,14 @@ export async function subscribersNotificationsGetUnseenCount( | RequestTimeoutError | ConnectionError >( - M.json(200, components.UnseenCountResponse$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.SubscribersControllerGetUnseenCountResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersPreferencesGet.ts b/src/funcs/subscribersPreferencesGet.ts index 3fae04a9..576c88dc 100644 --- a/src/funcs/subscribersPreferencesGet.ts +++ b/src/funcs/subscribersPreferencesGet.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -10,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -33,7 +31,7 @@ export async function subscribersPreferencesGet( options?: RequestOptions, ): Promise< Result< - Array, + operations.SubscribersControllerListSubscriberPreferencesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -134,8 +132,12 @@ export async function subscribersPreferencesGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - Array, + operations.SubscribersControllerListSubscriberPreferencesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -146,10 +148,13 @@ export async function subscribersPreferencesGet( >( M.json( 200, - z.array(components.UpdateSubscriberPreferenceResponseDto$inboundSchema), + operations + .SubscribersControllerListSubscriberPreferencesResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersPreferencesGetByLevel.ts b/src/funcs/subscribersPreferencesGetByLevel.ts index d92e03d6..4ce39832 100644 --- a/src/funcs/subscribersPreferencesGetByLevel.ts +++ b/src/funcs/subscribersPreferencesGetByLevel.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -10,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -33,7 +31,7 @@ export async function subscribersPreferencesGetByLevel( options?: RequestOptions, ): Promise< Result< - Array, + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -132,8 +130,12 @@ export async function subscribersPreferencesGetByLevel( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - Array, + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -144,10 +146,13 @@ export async function subscribersPreferencesGetByLevel( >( M.json( 200, - z.array(components.GetSubscriberPreferencesResponseDto$inboundSchema), + operations + .SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersPreferencesUpdate.ts b/src/funcs/subscribersPreferencesUpdate.ts index d37ca664..67682342 100644 --- a/src/funcs/subscribersPreferencesUpdate.ts +++ b/src/funcs/subscribersPreferencesUpdate.ts @@ -3,22 +3,12 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -35,16 +25,12 @@ import { Result } from "../types/fp.js"; * Update subscriber preference */ export async function subscribersPreferencesUpdate( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: operations.SubscribersControllerUpdateSubscriberPreferenceRequest, options?: RequestOptions, ): Promise< Result< - components.UpdateSubscriberPreferenceResponseDto, + operations.SubscribersControllerUpdateSubscriberPreferenceResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -54,34 +40,6 @@ export async function subscribersPreferencesUpdate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$( - "body", - payload$.UpdateSubscriberPreferenceRequestDto, - { explode: true }, - ); - - const pathParams$ = { - parameter: encodeSimple$("parameter", payload$.parameter, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const parsed = safeParse( request, (value) => @@ -106,58 +64,20 @@ export async function subscribersPreferencesUpdate( charEncoding: "percent", }), subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc( - "/v1/subscribers/{subscriberId}/preferences/{parameter}", - )(pathParams$); - - const headers$ = new Headers({ -======= const path = pathToFunc( "/v1/subscribers/{subscriberId}/preferences/{parameter}", )(pathParams); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_updateSubscriberPreference", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -171,7 +91,6 @@ export async function subscribersPreferencesUpdate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -181,10 +100,6 @@ export async function subscribersPreferencesUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -208,19 +123,18 @@ export async function subscribersPreferencesUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.UpdateSubscriberPreferenceResponseDto, + operations.SubscribersControllerUpdateSubscriberPreferenceResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -229,26 +143,18 @@ export async function subscribersPreferencesUpdate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json( + M.json( 200, - components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + operations + .SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.UpdateSubscriberPreferenceResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersPreferencesUpdateGlobal.ts b/src/funcs/subscribersPreferencesUpdateGlobal.ts index bacaa427..8d22e367 100644 --- a/src/funcs/subscribersPreferencesUpdateGlobal.ts +++ b/src/funcs/subscribersPreferencesUpdateGlobal.ts @@ -3,18 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -35,21 +26,14 @@ import { Result } from "../types/fp.js"; * Update subscriber global preferences */ export async function subscribersPreferencesUpdateGlobal( -<<<<<<< Updated upstream - client$: NovuCore, - subscriberId: string, - updateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto, -======= client: NovuCore, updateSubscriberGlobalPreferencesRequestDto: components.UpdateSubscriberGlobalPreferencesRequestDto, subscriberId: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - components.UpdateSubscriberPreferenceResponseDto, + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -59,35 +43,6 @@ export async function subscribersPreferencesUpdateGlobal( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: - operations.SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { - subscriberId: subscriberId, - updateSubscriberGlobalPreferencesRequestDto: - updateSubscriberGlobalPreferencesRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$( - "body", - payload$.UpdateSubscriberGlobalPreferencesRequestDto, - { explode: true }, - ); - - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const input: operations.SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { updateSubscriberGlobalPreferencesRequestDto: @@ -115,58 +70,20 @@ export async function subscribersPreferencesUpdateGlobal( const pathParams = { subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( - pathParams$, - ); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( pathParams, ); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_updateSubscriberGlobalPreferences", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -180,7 +97,6 @@ export async function subscribersPreferencesUpdateGlobal( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -190,10 +106,6 @@ export async function subscribersPreferencesUpdateGlobal( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -217,19 +129,18 @@ export async function subscribersPreferencesUpdateGlobal( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.UpdateSubscriberPreferenceResponseDto, + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -238,26 +149,18 @@ export async function subscribersPreferencesUpdateGlobal( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json( + M.json( 200, - components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + operations + .SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.UpdateSubscriberPreferenceResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts b/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts index 961d5981..ea22f111 100644 --- a/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts +++ b/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts @@ -36,7 +36,7 @@ export async function subscribersPropertiesUpdateOnlineStatus( options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -138,8 +138,12 @@ export async function subscribersPropertiesUpdateOnlineStatus( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.SubscriberResponseDto, + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -148,9 +152,15 @@ export async function subscribersPropertiesUpdateOnlineStatus( | RequestTimeoutError | ConnectionError >( - M.json(200, components.SubscriberResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/subscribersUpdate.ts b/src/funcs/subscribersUpdate.ts index c2da26c3..77f405e3 100644 --- a/src/funcs/subscribersUpdate.ts +++ b/src/funcs/subscribersUpdate.ts @@ -3,18 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -38,19 +29,13 @@ import { Result } from "../types/fp.js"; * Used to update the subscriber entity with new information */ export async function subscribersUpdate( -<<<<<<< Updated upstream - client$: NovuCore, - subscriberId: string, - updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, -======= client: NovuCore, updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, subscriberId: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerUpdateSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -60,30 +45,6 @@ export async function subscribersUpdate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.SubscribersControllerUpdateSubscriberRequest = { - subscriberId: subscriberId, - updateSubscriberRequestDto: updateSubscriberRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.SubscribersControllerUpdateSubscriberRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.UpdateSubscriberRequestDto, { - explode: true, - }); - - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { -======= const input: operations.SubscribersControllerUpdateSubscriberRequest = { updateSubscriberRequestDto: updateSubscriberRequestDto, subscriberId: subscriberId, @@ -106,54 +67,18 @@ export async function subscribersUpdate( const pathParams = { subscriberId: encodeSimple("subscriberId", payload.subscriberId, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams$); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "SubscribersController_updateSubscriber", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PUT", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -167,7 +92,6 @@ export async function subscribersUpdate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -177,10 +101,6 @@ export async function subscribersUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -204,19 +124,18 @@ export async function subscribersUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.SubscriberResponseDto, + operations.SubscribersControllerUpdateSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -225,23 +144,17 @@ export async function subscribersUpdate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.SubscriberResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.SubscriberResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.SubscribersControllerUpdateSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/topicsCreate.ts b/src/funcs/topicsCreate.ts index c47dfca8..e2f8b70d 100644 --- a/src/funcs/topicsCreate.ts +++ b/src/funcs/topicsCreate.ts @@ -3,15 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -25,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -34,16 +29,12 @@ import { Result } from "../types/fp.js"; * Create a topic */ export async function topicsCreate( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: components.CreateTopicRequestDto, options?: RequestOptions, ): Promise< Result< - components.CreateTopicResponseDto, + operations.TopicsControllerCreateTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -53,24 +44,6 @@ export async function topicsCreate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.CreateTopicRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/topics")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => components.CreateTopicRequestDto$outboundSchema.parse(value), @@ -85,40 +58,10 @@ export async function topicsCreate( const path = pathToFunc("/v1/topics")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TopicsController_createTopic", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -132,7 +75,6 @@ export async function topicsCreate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -142,10 +84,6 @@ export async function topicsCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -169,19 +107,18 @@ export async function topicsCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.CreateTopicResponseDto, + operations.TopicsControllerCreateTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -190,23 +127,16 @@ export async function topicsCreate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, components.CreateTopicResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, components.CreateTopicResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json(201, operations.TopicsControllerCreateTopicResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/topicsDelete.ts b/src/funcs/topicsDelete.ts index 4648c67c..cf295ba2 100644 --- a/src/funcs/topicsDelete.ts +++ b/src/funcs/topicsDelete.ts @@ -2,17 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -35,16 +28,12 @@ import { Result } from "../types/fp.js"; * Delete a topic by its topic key if it has no subscribers */ export async function topicsDelete( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes topicKey: string, options?: RequestOptions, ): Promise< Result< - void, + operations.TopicsControllerDeleteTopicResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -54,28 +43,6 @@ export async function topicsDelete( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.TopicsControllerDeleteTopicRequest = { - topicKey: topicKey, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TopicsControllerDeleteTopicRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - topicKey: encodeSimple$("topicKey", payload$.topicKey, { -======= const input: operations.TopicsControllerDeleteTopicRequest = { topicKey: topicKey, }; @@ -94,47 +61,11 @@ export async function topicsDelete( const pathParams = { topicKey: encodeSimple("topicKey", payload.topicKey, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/topics/{topicKey}")(pathParams$); - - const headers$ = new Headers({ - Accept: "*/*", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TopicsController_deleteTopic", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); const headers = new Headers({ @@ -154,7 +85,6 @@ export async function topicsDelete( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -164,10 +94,6 @@ export async function topicsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -191,19 +117,18 @@ export async function topicsDelete( errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - void, + operations.TopicsControllerDeleteTopicResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -212,23 +137,17 @@ export async function topicsDelete( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.nil(204, z.void()), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.nil(204, z.void()), - M.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); + M.nil( + 204, + operations.TopicsControllerDeleteTopicResponse$inboundSchema.optional(), + { hdrs: true }, + ), + M.fail([404, 409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/topicsGet.ts b/src/funcs/topicsGet.ts index 393296ec..4ae1f4de 100644 --- a/src/funcs/topicsGet.ts +++ b/src/funcs/topicsGet.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -34,7 +33,7 @@ export async function topicsGet( options?: RequestOptions, ): Promise< Result< - components.GetTopicResponseDto, + operations.TopicsControllerGetTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -124,8 +123,12 @@ export async function topicsGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.GetTopicResponseDto, + operations.TopicsControllerGetTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -134,9 +137,13 @@ export async function topicsGet( | RequestTimeoutError | ConnectionError >( - M.json(200, components.GetTopicResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json(200, operations.TopicsControllerGetTopicResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/topicsGetAll.ts b/src/funcs/topicsGetAll.ts index 2d68a4da..caf0a44b 100644 --- a/src/funcs/topicsGetAll.ts +++ b/src/funcs/topicsGetAll.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -34,7 +33,7 @@ export async function topicsGetAll( options?: RequestOptions, ): Promise< Result< - components.FilterTopicsResponseDto, + operations.TopicsControllerListTopicsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -120,8 +119,12 @@ export async function topicsGetAll( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.FilterTopicsResponseDto, + operations.TopicsControllerListTopicsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -130,9 +133,13 @@ export async function topicsGetAll( | RequestTimeoutError | ConnectionError >( - M.json(200, components.FilterTopicsResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json(200, operations.TopicsControllerListTopicsResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/topicsRename.ts b/src/funcs/topicsRename.ts index 5617ef89..79f89ce9 100644 --- a/src/funcs/topicsRename.ts +++ b/src/funcs/topicsRename.ts @@ -3,18 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -38,19 +29,13 @@ import { Result } from "../types/fp.js"; * Rename a topic by providing a new name */ export async function topicsRename( -<<<<<<< Updated upstream - client$: NovuCore, - topicKey: string, - renameTopicRequestDto: components.RenameTopicRequestDto, -======= client: NovuCore, renameTopicRequestDto: components.RenameTopicRequestDto, topicKey: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - components.RenameTopicResponseDto, + operations.TopicsControllerRenameTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -60,31 +45,6 @@ export async function topicsRename( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: operations.TopicsControllerRenameTopicRequest = { - topicKey: topicKey, - renameTopicRequestDto: renameTopicRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TopicsControllerRenameTopicRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.RenameTopicRequestDto, { - explode: true, - }); - - const pathParams$ = { - topicKey: encodeSimple$("topicKey", payload$.topicKey, { -======= const input: operations.TopicsControllerRenameTopicRequest = { renameTopicRequestDto: renameTopicRequestDto, topicKey: topicKey, @@ -106,54 +66,18 @@ export async function topicsRename( const pathParams = { topicKey: encodeSimple("topicKey", payload.topicKey, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/topics/{topicKey}")(pathParams$); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TopicsController_renameTopic", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -167,7 +91,6 @@ export async function topicsRename( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -177,10 +100,6 @@ export async function topicsRename( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -204,19 +123,18 @@ export async function topicsRename( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.RenameTopicResponseDto, + operations.TopicsControllerRenameTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -225,23 +143,16 @@ export async function topicsRename( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.RenameTopicResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.RenameTopicResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json(200, operations.TopicsControllerRenameTopicResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/topicsSubscribersAdd.ts b/src/funcs/topicsSubscribersAdd.ts index 4f5bb265..5ce4fb71 100644 --- a/src/funcs/topicsSubscribersAdd.ts +++ b/src/funcs/topicsSubscribersAdd.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -36,7 +35,7 @@ export async function topicsSubscribersAdd( options?: RequestOptions, ): Promise< Result< - void, + operations.TopicsControllerAddSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -132,8 +131,12 @@ export async function topicsSubscribersAdd( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - void, + operations.TopicsControllerAddSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -142,9 +145,15 @@ export async function topicsSubscribersAdd( | RequestTimeoutError | ConnectionError >( - M.nil(204, z.void()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.nil( + 204, + operations.TopicsControllerAddSubscribersResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/topicsSubscribersCheck.ts b/src/funcs/topicsSubscribersCheck.ts index 4d3b1a84..675c0e47 100644 --- a/src/funcs/topicsSubscribersCheck.ts +++ b/src/funcs/topicsSubscribersCheck.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -35,7 +34,7 @@ export async function topicsSubscribersCheck( options?: RequestOptions, ): Promise< Result< - components.TopicSubscriberDto, + operations.TopicsControllerGetTopicSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -135,8 +134,12 @@ export async function topicsSubscribersCheck( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.TopicSubscriberDto, + operations.TopicsControllerGetTopicSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -145,9 +148,14 @@ export async function topicsSubscribersCheck( | RequestTimeoutError | ConnectionError >( - M.json(200, components.TopicSubscriberDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.TopicsControllerGetTopicSubscriberResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/topicsSubscribersRemove.ts b/src/funcs/topicsSubscribersRemove.ts index 0f288779..e6c2242b 100644 --- a/src/funcs/topicsSubscribersRemove.ts +++ b/src/funcs/topicsSubscribersRemove.ts @@ -2,7 +2,6 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; @@ -36,7 +35,7 @@ export async function topicsSubscribersRemove( options?: RequestOptions, ): Promise< Result< - void, + operations.TopicsControllerRemoveSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -134,8 +133,12 @@ export async function topicsSubscribersRemove( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - void, + operations.TopicsControllerRemoveSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -144,9 +147,15 @@ export async function topicsSubscribersRemove( | RequestTimeoutError | ConnectionError >( - M.nil(204, z.void()), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.nil( + 204, + operations.TopicsControllerRemoveSubscribersResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/trigger.ts b/src/funcs/trigger.ts index efec2982..1c976f9b 100644 --- a/src/funcs/trigger.ts +++ b/src/funcs/trigger.ts @@ -3,15 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -25,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -37,16 +32,12 @@ import { Result } from "../types/fp.js"; * Additional information can be passed according the body interface below. */ export async function trigger( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: components.TriggerEventRequestDto, options?: RequestOptions, ): Promise< Result< - components.TriggerEventResponseDto, + operations.EventsControllerTriggerResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -56,24 +47,6 @@ export async function trigger( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.TriggerEventRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/events/trigger")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => components.TriggerEventRequestDto$outboundSchema.parse(value), @@ -88,40 +61,10 @@ export async function trigger( const path = pathToFunc("/v1/events/trigger")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EventsController_trigger", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -135,7 +78,6 @@ export async function trigger( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -145,10 +87,6 @@ export async function trigger( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -172,19 +110,18 @@ export async function trigger( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.TriggerEventResponseDto, + operations.EventsControllerTriggerResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -193,23 +130,16 @@ export async function trigger( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, components.TriggerEventResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, components.TriggerEventResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json(201, operations.EventsControllerTriggerResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/triggerBroadcast.ts b/src/funcs/triggerBroadcast.ts index 0d0c9691..beabf47b 100644 --- a/src/funcs/triggerBroadcast.ts +++ b/src/funcs/triggerBroadcast.ts @@ -3,15 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -25,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -32,23 +27,16 @@ import { Result } from "../types/fp.js"; * * @remarks * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. -<<<<<<< Updated upstream - * In the future could be used to trigger events to a subset of subscribers based on defined filters. - */ -export async function triggerBroadcast( - client$: NovuCore, -======= * * In the future could be used to trigger events to a subset of subscribers based on defined filters. */ export async function triggerBroadcast( client: NovuCore, ->>>>>>> Stashed changes request: components.TriggerEventToAllRequestDto, options?: RequestOptions, ): Promise< Result< - components.TriggerEventResponseDto, + operations.EventsControllerBroadcastEventToAllResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -58,25 +46,6 @@ export async function triggerBroadcast( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - components.TriggerEventToAllRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/events/trigger/broadcast")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => @@ -92,40 +61,10 @@ export async function triggerBroadcast( const path = pathToFunc("/v1/events/trigger/broadcast")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EventsController_broadcastEventToAll", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -139,7 +78,6 @@ export async function triggerBroadcast( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -149,10 +87,6 @@ export async function triggerBroadcast( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -176,19 +110,18 @@ export async function triggerBroadcast( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.TriggerEventResponseDto, + operations.EventsControllerBroadcastEventToAllResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -197,23 +130,17 @@ export async function triggerBroadcast( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.TriggerEventResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.TriggerEventResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations.EventsControllerBroadcastEventToAllResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/triggerBulk.ts b/src/funcs/triggerBulk.ts index e3a2bc8e..b96c8557 100644 --- a/src/funcs/triggerBulk.ts +++ b/src/funcs/triggerBulk.ts @@ -2,17 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -26,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -37,16 +31,12 @@ import { Result } from "../types/fp.js"; * The bulk API is limited to 100 events per request. */ export async function triggerBulk( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: components.BulkTriggerEventDto, options?: RequestOptions, ): Promise< Result< - Array, + operations.EventsControllerTriggerBulkResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -56,24 +46,6 @@ export async function triggerBulk( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.BulkTriggerEventDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/events/trigger/bulk")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => components.BulkTriggerEventDto$outboundSchema.parse(value), @@ -88,40 +60,10 @@ export async function triggerBulk( const path = pathToFunc("/v1/events/trigger/bulk")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EventsController_triggerBulk", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -135,7 +77,6 @@ export async function triggerBulk( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -145,10 +86,6 @@ export async function triggerBulk( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -172,19 +109,18 @@ export async function triggerBulk( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - Array, + operations.EventsControllerTriggerBulkResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -193,23 +129,16 @@ export async function triggerBulk( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, z.array(components.TriggerEventResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, z.array(components.TriggerEventResponseDto$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json(201, operations.EventsControllerTriggerBulkResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsCreate.ts b/src/funcs/workflowGroupsCreate.ts index 606a6b57..a9a3fa1a 100644 --- a/src/funcs/workflowGroupsCreate.ts +++ b/src/funcs/workflowGroupsCreate.ts @@ -3,15 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -25,6 +19,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -34,16 +29,12 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsCreate( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes request: components.CreateNotificationGroupRequestDto, options?: RequestOptions, ): Promise< Result< - components.NotificationGroupResponseDto, + operations.NotificationGroupsControllerCreateNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -53,25 +44,6 @@ export async function workflowGroupsCreate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - components.CreateNotificationGroupRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/notification-groups")(); - - const headers$ = new Headers({ -======= const parsed = safeParse( request, (value) => @@ -87,40 +59,10 @@ export async function workflowGroupsCreate( const path = pathToFunc("/v1/notification-groups")(); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "NotificationGroupsController_createNotificationGroup", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -134,7 +76,6 @@ export async function workflowGroupsCreate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -144,10 +85,6 @@ export async function workflowGroupsCreate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -171,19 +108,18 @@ export async function workflowGroupsCreate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.NotificationGroupResponseDto, + operations.NotificationGroupsControllerCreateNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -192,23 +128,18 @@ export async function workflowGroupsCreate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(201, components.NotificationGroupResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(201, components.NotificationGroupResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 201, + operations + .NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsDelete.ts b/src/funcs/workflowGroupsDelete.ts index 172053b0..2828ea51 100644 --- a/src/funcs/workflowGroupsDelete.ts +++ b/src/funcs/workflowGroupsDelete.ts @@ -3,19 +3,12 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -35,16 +28,12 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsDelete( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes id: string, options?: RequestOptions, ): Promise< Result< - components.DeleteNotificationGroupResponseDto, + operations.NotificationGroupsControllerDeleteNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -54,33 +43,11 @@ export async function workflowGroupsDelete( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: -======= const input: ->>>>>>> Stashed changes operations.NotificationGroupsControllerDeleteNotificationGroupRequest = { id: id, }; -<<<<<<< Updated upstream - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - id: encodeSimple$("id", payload$.id, { -======= const parsed = safeParse( input, (value) => @@ -97,47 +64,11 @@ export async function workflowGroupsDelete( const pathParams = { id: encodeSimple("id", payload.id, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/notification-groups/{id}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "NotificationGroupsController_deleteNotificationGroup", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); const headers = new Headers({ @@ -157,7 +88,6 @@ export async function workflowGroupsDelete( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -167,10 +97,6 @@ export async function workflowGroupsDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -194,19 +120,18 @@ export async function workflowGroupsDelete( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.DeleteNotificationGroupResponseDto, + operations.NotificationGroupsControllerDeleteNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -215,23 +140,18 @@ export async function workflowGroupsDelete( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.DeleteNotificationGroupResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.DeleteNotificationGroupResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsGet.ts b/src/funcs/workflowGroupsGet.ts index 67dbe341..7d3df4b9 100644 --- a/src/funcs/workflowGroupsGet.ts +++ b/src/funcs/workflowGroupsGet.ts @@ -9,7 +9,6 @@ import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -34,7 +33,7 @@ export async function workflowGroupsGet( options?: RequestOptions, ): Promise< Result< - components.NotificationGroupResponseDto, + operations.NotificationGroupsControllerGetNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -127,8 +126,12 @@ export async function workflowGroupsGet( } const response = doResult.value; + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< - components.NotificationGroupResponseDto, + operations.NotificationGroupsControllerGetNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -137,9 +140,15 @@ export async function workflowGroupsGet( | RequestTimeoutError | ConnectionError >( - M.json(200, components.NotificationGroupResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } diff --git a/src/funcs/workflowGroupsList.ts b/src/funcs/workflowGroupsList.ts index ebab1174..a10cfeab 100644 --- a/src/funcs/workflowGroupsList.ts +++ b/src/funcs/workflowGroupsList.ts @@ -2,17 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import * as m$ from "../lib/matchers.js"; -======= import * as M from "../lib/matchers.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -22,6 +16,7 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** @@ -31,15 +26,11 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsList( -<<<<<<< Updated upstream - client$: NovuCore, -======= client: NovuCore, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - Array, + operations.NotificationGroupsControllerListNotificationGroupsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -49,40 +40,6 @@ export async function workflowGroupsList( | ConnectionError > > { -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/notification-groups")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "NotificationGroupsController_listNotificationGroups", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const path = pathToFunc("/v1/notification-groups")(); const headers = new Headers({ @@ -102,7 +59,6 @@ export async function workflowGroupsList( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -112,10 +68,6 @@ export async function workflowGroupsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -138,19 +90,18 @@ export async function workflowGroupsList( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - Array, + operations.NotificationGroupsControllerListNotificationGroupsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -159,26 +110,18 @@ export async function workflowGroupsList( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json( + M.json( 200, - z.array(components.NotificationGroupResponseDto$inboundSchema), + operations + .NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, z.array(components.NotificationGroupResponseDto$inboundSchema)), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/funcs/workflowGroupsUpdate.ts b/src/funcs/workflowGroupsUpdate.ts index e76233ba..9737567e 100644 --- a/src/funcs/workflowGroupsUpdate.ts +++ b/src/funcs/workflowGroupsUpdate.ts @@ -3,18 +3,9 @@ */ import { NovuCore } from "../core.js"; -<<<<<<< Updated upstream -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -======= import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import * as M from "../lib/matchers.js"; import { safeParse } from "../lib/schemas.js"; ->>>>>>> Stashed changes import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -38,21 +29,14 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsUpdate( -<<<<<<< Updated upstream - client$: NovuCore, - id: string, - createNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto, -======= client: NovuCore, createNotificationGroupRequestDto: components.CreateNotificationGroupRequestDto, id: string, ->>>>>>> Stashed changes options?: RequestOptions, ): Promise< Result< - components.NotificationGroupResponseDto, + operations.NotificationGroupsControllerUpdateNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -62,34 +46,6 @@ export async function workflowGroupsUpdate( | ConnectionError > > { -<<<<<<< Updated upstream - const input$: - operations.NotificationGroupsControllerUpdateNotificationGroupRequest = { - id: id, - createNotificationGroupRequestDto: createNotificationGroupRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations - .NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$( - "body", - payload$.CreateNotificationGroupRequestDto, - { explode: true }, - ); - - const pathParams$ = { - id: encodeSimple$("id", payload$.id, { -======= const input: operations.NotificationGroupsControllerUpdateNotificationGroupRequest = { createNotificationGroupRequestDto: createNotificationGroupRequestDto, @@ -114,54 +70,18 @@ export async function workflowGroupsUpdate( const pathParams = { id: encodeSimple("id", payload.id, { ->>>>>>> Stashed changes explode: false, charEncoding: "percent", }), }; -<<<<<<< Updated upstream - const path$ = pathToFunc("/v1/notification-groups/{id}")(pathParams$); - - const headers$ = new Headers({ -======= const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); const headers = new Headers({ ->>>>>>> Stashed changes "Content-Type": "application/json", Accept: "application/json", }); -<<<<<<< Updated upstream - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "NotificationGroupsController_updateNotificationGroup", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig -======= const secConfig = await extractSecurity(client._options.apiKey); const securityInput = secConfig == null ? {} : { apiKey: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput); @@ -175,7 +95,6 @@ export async function workflowGroupsUpdate( securitySource: client._options.apiKey, retryConfig: options?.retries || client._options.retryConfig ->>>>>>> Stashed changes || { strategy: "backoff", backoff: { @@ -185,10 +104,6 @@ export async function workflowGroupsUpdate( maxElapsedTime: 3600000, }, retryConnectionErrors: true, -<<<<<<< Updated upstream - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], -======= } || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], @@ -212,19 +127,18 @@ export async function workflowGroupsUpdate( errorCodes: ["409", "429", "4XX", "503", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, ->>>>>>> Stashed changes }); if (!doResult.ok) { return doResult; } const response = doResult.value; -<<<<<<< Updated upstream - const [result$] = await m$.match< -======= + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + const [result] = await M.match< ->>>>>>> Stashed changes - components.NotificationGroupResponseDto, + operations.NotificationGroupsControllerUpdateNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -233,23 +147,18 @@ export async function workflowGroupsUpdate( | RequestTimeoutError | ConnectionError >( -<<<<<<< Updated upstream - m$.json(200, components.NotificationGroupResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -======= - M.json(200, components.NotificationGroupResponseDto$inboundSchema), - M.fail([409, 429, "4XX", 503, "5XX"]), - )(response); + M.json( + 200, + operations + .NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); if (!result.ok) { return result; } return result; ->>>>>>> Stashed changes } diff --git a/src/hooks/types.ts b/src/hooks/types.ts index 66b3a604..df5237dc 100644 --- a/src/hooks/types.ts +++ b/src/hooks/types.ts @@ -3,21 +3,15 @@ */ import { HTTPClient, RequestInput } from "../lib/http.js"; -<<<<<<< Updated upstream -======= import { RetryConfig } from "../lib/retries.js"; import { SecurityState } from "../lib/security.js"; ->>>>>>> Stashed changes export type HookContext = { operationID: string; oAuth2Scopes?: string[]; securitySource?: any | (() => Promise); -<<<<<<< Updated upstream -======= retryConfig: RetryConfig; resolvedSecurity: SecurityState | null; ->>>>>>> Stashed changes }; export type Awaitable = T | Promise; diff --git a/src/lib/config.ts b/src/lib/config.ts index b12bbf5c..d8b4da86 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -55,12 +55,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0", - sdkVersion: "0.0.1-alpha.11", -<<<<<<< Updated upstream - genVersion: "2.416.6", - userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.11 2.416.6 1.0 @novu/api", -======= + sdkVersion: "0.0.1-alpha.13", genVersion: "2.461.4", - userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.11 2.461.4 1.0 @novu/api", ->>>>>>> Stashed changes + userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.13 2.461.4 1.0 @novu/api", } as const; diff --git a/src/lib/matchers.ts b/src/lib/matchers.ts index 8b40db47..19b46b33 100644 --- a/src/lib/matchers.ts +++ b/src/lib/matchers.ts @@ -205,11 +205,7 @@ export function match( raw = await response.json(); break; case "bytes": -<<<<<<< Updated upstream - raw = await response.arrayBuffer(); -======= raw = new Uint8Array(await response.arrayBuffer()); ->>>>>>> Stashed changes break; case "stream": raw = response.body; diff --git a/src/lib/sdks.ts b/src/lib/sdks.ts index 29abc45a..2ce720a9 100644 --- a/src/lib/sdks.ts +++ b/src/lib/sdks.ts @@ -71,19 +71,11 @@ const isBrowserLike = webWorkerLike || (typeof window === "object" && typeof window.document !== "undefined"); export class ClientSDK { -<<<<<<< Updated upstream - private readonly httpClient: HTTPClient; - protected readonly baseURL: URL | null; - protected readonly hooks$: SDKHooks; - protected readonly logger?: Logger | undefined; - public readonly options$: SDKOptions & { hooks?: SDKHooks }; -======= readonly #httpClient: HTTPClient; readonly #hooks: SDKHooks; readonly #logger?: Logger | undefined; protected readonly _baseURL: URL | null; public readonly _options: SDKOptions & { hooks?: SDKHooks }; ->>>>>>> Stashed changes constructor(options: SDKOptions = {}) { const opt = options as unknown; @@ -93,36 +85,16 @@ export class ClientSDK { && "hooks" in opt && opt.hooks instanceof SDKHooks ) { -<<<<<<< Updated upstream - this.hooks$ = opt.hooks; - } else { - this.hooks$ = new SDKHooks(); - } - this.options$ = { ...options, hooks: this.hooks$ }; -======= this.#hooks = opt.hooks; } else { this.#hooks = new SDKHooks(); } this._options = { ...options, hooks: this.#hooks }; ->>>>>>> Stashed changes const url = serverURLFromOptions(options); if (url) { url.pathname = url.pathname.replace(/\/+$/, "") + "/"; } -<<<<<<< Updated upstream - const { baseURL, client } = this.hooks$.sdkInit({ - baseURL: url, - client: options.httpClient || new HTTPClient(), - }); - this.baseURL = baseURL; - this.httpClient = client; - this.logger = options.debugLogger; - } - - public createRequest$( -======= const { baseURL, client } = this.#hooks.sdkInit({ baseURL: url, client: options.httpClient || new HTTPClient(), @@ -133,18 +105,13 @@ export class ClientSDK { } public _createRequest( ->>>>>>> Stashed changes context: HookContext, conf: RequestConfig, options?: RequestOptions, ): Result { const { method, path, query, headers: opHeaders, security } = conf; -<<<<<<< Updated upstream - const base = conf.baseURL ?? this.baseURL; -======= const base = conf.baseURL ?? this._baseURL; ->>>>>>> Stashed changes if (!base) { return ERR(new InvalidRequestError("No base URL provided for operation")); } @@ -228,11 +195,7 @@ export class ClientSDK { let input; try { -<<<<<<< Updated upstream - input = this.hooks$.beforeCreateRequest(context, { -======= input = this.#hooks.beforeCreateRequest(context, { ->>>>>>> Stashed changes url: reqURL, options: { ...fetchOptions, @@ -251,47 +214,6 @@ export class ClientSDK { return OK(new Request(input.url, input.options)); } -<<<<<<< Updated upstream - - public async do$( - request: Request, - options: { - context: HookContext; - errorCodes: number | string | (number | string)[]; - retryConfig?: RetryConfig | undefined; - retryCodes?: string[] | undefined; - }, - ): Promise< - Result< - Response, - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - | UnexpectedClientError - > - > { - const { context, errorCodes } = options; - const retryConfig = options.retryConfig || { strategy: "none" }; - const retryCodes = options.retryCodes || []; - - return retry( - async () => { - const req = await this.hooks$.beforeRequest(context, request.clone()); - await logRequest(this.logger, req).catch((e) => - this.logger?.log("Failed to log request:", e) - ); - - let response = await this.httpClient.request(req); - - if (matchStatusCode(response, errorCodes)) { - const result = await this.hooks$.afterError(context, response, null); - if (result.error) { - throw result.error; - } - response = result.response || response; - } else { - response = await this.hooks$.afterSuccess(context, response); -======= public async _do( request: Request, @@ -338,19 +260,11 @@ export class ClientSDK { } finally { await logResponse(this.#logger, response, req) .catch(e => this.#logger?.log("Failed to log response:", e)); ->>>>>>> Stashed changes } - await logResponse(this.logger, response, req) - .catch(e => this.logger?.log("Failed to log response:", e)); - return response; }, -<<<<<<< Updated upstream - { config: retryConfig, statusCodes: retryCodes }, -======= { config: options.retryConfig, statusCodes: options.retryCodes }, ->>>>>>> Stashed changes ).then( (r) => OK(r), (err) => { diff --git a/src/lib/security.ts b/src/lib/security.ts index 9d51a8de..5a45e6d0 100644 --- a/src/lib/security.ts +++ b/src/lib/security.ts @@ -3,8 +3,6 @@ */ import * as components from "../models/components/index.js"; -<<<<<<< Updated upstream -======= type OAuth2PasswordFlow = { username: string; @@ -13,7 +11,6 @@ type OAuth2PasswordFlow = { clientSecret?: string | undefined; tokenURL: string; }; ->>>>>>> Stashed changes export enum SecurityErrorCode { Incomplete = "incomplete", @@ -48,10 +45,7 @@ export type SecurityState = { headers: Record; queryParams: Record; cookies: Record; -<<<<<<< Updated upstream -======= oauth2: ({ type: "password" } & OAuth2PasswordFlow) | { type: "none" }; ->>>>>>> Stashed changes }; type SecurityInputBasic = { @@ -88,9 +82,6 @@ type SecurityInputOAuth2 = { type SecurityInputOAuth2ClientCredentials = { type: "oauth2:client_credentials"; -<<<<<<< Updated upstream - value: string | null | undefined; -======= value: | { clientID?: string | undefined; clientSecret?: string | undefined } | null @@ -103,7 +94,6 @@ type SecurityInputOAuth2PasswordCredentials = { | string | null | undefined; ->>>>>>> Stashed changes fieldName: string; }; @@ -119,10 +109,7 @@ export type SecurityInput = | SecurityInputAPIKey | SecurityInputOAuth2 | SecurityInputOAuth2ClientCredentials -<<<<<<< Updated upstream -======= | SecurityInputOAuth2PasswordCredentials ->>>>>>> Stashed changes | SecurityInputOIDC | SecurityInputCustom; @@ -134,10 +121,7 @@ export function resolveSecurity( headers: {}, queryParams: {}, cookies: {}, -<<<<<<< Updated upstream -======= oauth2: { type: "none" }, ->>>>>>> Stashed changes }; const option = options.find((opts) => { @@ -148,15 +132,12 @@ export function resolveSecurity( return o.value.username != null || o.value.password != null; } else if (o.type === "http:custom") { return null; -<<<<<<< Updated upstream -======= } else if (o.type === "oauth2:password") { return ( typeof o.value === "string" && !!o.value ); } else if (o.type === "oauth2:client_credentials") { return o.value.clientID != null || o.value.clientSecret != null; ->>>>>>> Stashed changes } else if (typeof o.value === "string") { return !!o.value; } else { @@ -199,12 +180,9 @@ export function resolveSecurity( case "oauth2": applyBearer(state, spec); break; -<<<<<<< Updated upstream -======= case "oauth2:password": applyBearer(state, spec); break; ->>>>>>> Stashed changes case "oauth2:client_credentials": break; case "openIdConnect": @@ -232,11 +210,6 @@ function applyBasic( function applyBearer( state: SecurityState, -<<<<<<< Updated upstream - spec: SecurityInputBearer | SecurityInputOAuth2 | SecurityInputOIDC, -) { - if (spec.value == null) { -======= spec: | SecurityInputBearer | SecurityInputOAuth2 @@ -244,7 +217,6 @@ function applyBearer( | SecurityInputOAuth2PasswordCredentials, ) { if (typeof spec.value !== "string" || !spec.value) { ->>>>>>> Stashed changes return; } diff --git a/src/models/components/activitiesresponsedto.ts b/src/models/components/activitiesresponsedto.ts index 2f217b85..43be2909 100644 --- a/src/models/components/activitiesresponsedto.ts +++ b/src/models/components/activitiesresponsedto.ts @@ -3,12 +3,15 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ActivitiesResponseDto = { - data: Array; hasMore: boolean; - page: number; + data: Array; pageSize: number; + page: number; }; /** @internal */ @@ -17,18 +20,18 @@ export const ActivitiesResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - data: z.array(z.string()), hasMore: z.boolean(), - page: z.number(), + data: z.array(z.string()), pageSize: z.number(), + page: z.number(), }); /** @internal */ export type ActivitiesResponseDto$Outbound = { - data: Array; hasMore: boolean; - page: number; + data: Array; pageSize: number; + page: number; }; /** @internal */ @@ -37,10 +40,10 @@ export const ActivitiesResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, ActivitiesResponseDto > = z.object({ - data: z.array(z.string()), hasMore: z.boolean(), - page: z.number(), + data: z.array(z.string()), pageSize: z.number(), + page: z.number(), }); /** @@ -55,3 +58,21 @@ export namespace ActivitiesResponseDto$ { /** @deprecated use `ActivitiesResponseDto$Outbound` instead. */ export type Outbound = ActivitiesResponseDto$Outbound; } + +export function activitiesResponseDtoToJSON( + activitiesResponseDto: ActivitiesResponseDto, +): string { + return JSON.stringify( + ActivitiesResponseDto$outboundSchema.parse(activitiesResponseDto), + ); +} + +export function activitiesResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivitiesResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivitiesResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitygraphstatesresponse.ts b/src/models/components/activitygraphstatesresponse.ts index 8898c0f4..f2e00967 100644 --- a/src/models/components/activitygraphstatesresponse.ts +++ b/src/models/components/activitygraphstatesresponse.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const Channels = { InApp: "in_app", @@ -17,9 +20,9 @@ export type Channels = ClosedEnum; export type ActivityGraphStatesResponse = { id: string; - channels: Array; count: number; templates: Array; + channels: Array; }; /** @internal */ @@ -48,9 +51,9 @@ export const ActivityGraphStatesResponse$inboundSchema: z.ZodType< unknown > = z.object({ _id: z.string(), - channels: z.array(Channels$inboundSchema), count: z.number(), templates: z.array(z.string()), + channels: z.array(Channels$inboundSchema), }).transform((v) => { return remap$(v, { "_id": "id", @@ -60,9 +63,9 @@ export const ActivityGraphStatesResponse$inboundSchema: z.ZodType< /** @internal */ export type ActivityGraphStatesResponse$Outbound = { _id: string; - channels: Array; count: number; templates: Array; + channels: Array; }; /** @internal */ @@ -72,9 +75,9 @@ export const ActivityGraphStatesResponse$outboundSchema: z.ZodType< ActivityGraphStatesResponse > = z.object({ id: z.string(), - channels: z.array(Channels$outboundSchema), count: z.number(), templates: z.array(z.string()), + channels: z.array(Channels$outboundSchema), }).transform((v) => { return remap$(v, { id: "_id", @@ -93,3 +96,23 @@ export namespace ActivityGraphStatesResponse$ { /** @deprecated use `ActivityGraphStatesResponse$Outbound` instead. */ export type Outbound = ActivityGraphStatesResponse$Outbound; } + +export function activityGraphStatesResponseToJSON( + activityGraphStatesResponse: ActivityGraphStatesResponse, +): string { + return JSON.stringify( + ActivityGraphStatesResponse$outboundSchema.parse( + activityGraphStatesResponse, + ), + ); +} + +export function activityGraphStatesResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivityGraphStatesResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivityGraphStatesResponse' from JSON`, + ); +} diff --git a/src/models/components/activitynotificationresponsedto.ts b/src/models/components/activitynotificationresponsedto.ts index cd4d41fc..522b0579 100644 --- a/src/models/components/activitynotificationresponsedto.ts +++ b/src/models/components/activitynotificationresponsedto.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ActivityNotificationSubscriberResponseDto, ActivityNotificationSubscriberResponseDto$inboundSchema, @@ -34,15 +37,15 @@ export type ActivityNotificationResponseDtoChannels = ClosedEnum< >; export type ActivityNotificationResponseDto = { - environmentId: string; id?: string | undefined; + environmentId: string; organizationId: string; - channels?: ActivityNotificationResponseDtoChannels | undefined; + transactionId: string; createdAt?: string | undefined; - jobs?: Array | undefined; + channels?: ActivityNotificationResponseDtoChannels | undefined; subscriber?: ActivityNotificationSubscriberResponseDto | undefined; template?: ActivityNotificationTemplateResponseDto | undefined; - transactionId: string; + jobs?: Array | undefined; }; /** @internal */ @@ -74,35 +77,35 @@ export const ActivityNotificationResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), + _environmentId: z.string(), _organizationId: z.string(), - channels: ActivityNotificationResponseDtoChannels$inboundSchema.optional(), + transactionId: z.string(), createdAt: z.string().optional(), - jobs: z.array(z.string()).optional(), + channels: ActivityNotificationResponseDtoChannels$inboundSchema.optional(), subscriber: ActivityNotificationSubscriberResponseDto$inboundSchema .optional(), template: ActivityNotificationTemplateResponseDto$inboundSchema.optional(), - transactionId: z.string(), + jobs: z.array(z.string()).optional(), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", + "_environmentId": "environmentId", "_organizationId": "organizationId", }); }); /** @internal */ export type ActivityNotificationResponseDto$Outbound = { - _environmentId: string; _id?: string | undefined; + _environmentId: string; _organizationId: string; - channels?: string | undefined; + transactionId: string; createdAt?: string | undefined; - jobs?: Array | undefined; + channels?: string | undefined; subscriber?: ActivityNotificationSubscriberResponseDto$Outbound | undefined; template?: ActivityNotificationTemplateResponseDto$Outbound | undefined; - transactionId: string; + jobs?: Array | undefined; }; /** @internal */ @@ -111,20 +114,20 @@ export const ActivityNotificationResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, ActivityNotificationResponseDto > = z.object({ - environmentId: z.string(), id: z.string().optional(), + environmentId: z.string(), organizationId: z.string(), - channels: ActivityNotificationResponseDtoChannels$outboundSchema.optional(), + transactionId: z.string(), createdAt: z.string().optional(), - jobs: z.array(z.string()).optional(), + channels: ActivityNotificationResponseDtoChannels$outboundSchema.optional(), subscriber: ActivityNotificationSubscriberResponseDto$outboundSchema .optional(), template: ActivityNotificationTemplateResponseDto$outboundSchema.optional(), - transactionId: z.string(), + jobs: z.array(z.string()).optional(), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", + environmentId: "_environmentId", organizationId: "_organizationId", }); }); @@ -141,3 +144,23 @@ export namespace ActivityNotificationResponseDto$ { /** @deprecated use `ActivityNotificationResponseDto$Outbound` instead. */ export type Outbound = ActivityNotificationResponseDto$Outbound; } + +export function activityNotificationResponseDtoToJSON( + activityNotificationResponseDto: ActivityNotificationResponseDto, +): string { + return JSON.stringify( + ActivityNotificationResponseDto$outboundSchema.parse( + activityNotificationResponseDto, + ), + ); +} + +export function activityNotificationResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivityNotificationResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivityNotificationResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitynotificationsubscriberresponsedto.ts b/src/models/components/activitynotificationsubscriberresponsedto.ts index 45b5c01e..33a6ca03 100644 --- a/src/models/components/activitynotificationsubscriberresponsedto.ts +++ b/src/models/components/activitynotificationsubscriberresponsedto.ts @@ -4,12 +4,15 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ActivityNotificationSubscriberResponseDto = { - id: string; - email?: string | undefined; firstName?: string | undefined; + id: string; lastName?: string | undefined; + email?: string | undefined; phone?: string | undefined; }; @@ -19,10 +22,10 @@ export const ActivityNotificationSubscriberResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _id: z.string(), - email: z.string().optional(), firstName: z.string().optional(), + _id: z.string(), lastName: z.string().optional(), + email: z.string().optional(), phone: z.string().optional(), }).transform((v) => { return remap$(v, { @@ -32,10 +35,10 @@ export const ActivityNotificationSubscriberResponseDto$inboundSchema: z.ZodType< /** @internal */ export type ActivityNotificationSubscriberResponseDto$Outbound = { - _id: string; - email?: string | undefined; firstName?: string | undefined; + _id: string; lastName?: string | undefined; + email?: string | undefined; phone?: string | undefined; }; @@ -46,10 +49,10 @@ export const ActivityNotificationSubscriberResponseDto$outboundSchema: z.ZodTypeDef, ActivityNotificationSubscriberResponseDto > = z.object({ - id: z.string(), - email: z.string().optional(), firstName: z.string().optional(), + id: z.string(), lastName: z.string().optional(), + email: z.string().optional(), phone: z.string().optional(), }).transform((v) => { return remap$(v, { @@ -71,3 +74,30 @@ export namespace ActivityNotificationSubscriberResponseDto$ { /** @deprecated use `ActivityNotificationSubscriberResponseDto$Outbound` instead. */ export type Outbound = ActivityNotificationSubscriberResponseDto$Outbound; } + +export function activityNotificationSubscriberResponseDtoToJSON( + activityNotificationSubscriberResponseDto: + ActivityNotificationSubscriberResponseDto, +): string { + return JSON.stringify( + ActivityNotificationSubscriberResponseDto$outboundSchema.parse( + activityNotificationSubscriberResponseDto, + ), + ); +} + +export function activityNotificationSubscriberResponseDtoFromJSON( + jsonString: string, +): SafeParseResult< + ActivityNotificationSubscriberResponseDto, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ActivityNotificationSubscriberResponseDto$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ActivityNotificationSubscriberResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitynotificationtemplateresponsedto.ts b/src/models/components/activitynotificationtemplateresponsedto.ts index 4191097a..83bea08b 100644 --- a/src/models/components/activitynotificationtemplateresponsedto.ts +++ b/src/models/components/activitynotificationtemplateresponsedto.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ActivityNotificationTemplateResponseDto = { id?: string | undefined; @@ -62,3 +65,30 @@ export namespace ActivityNotificationTemplateResponseDto$ { /** @deprecated use `ActivityNotificationTemplateResponseDto$Outbound` instead. */ export type Outbound = ActivityNotificationTemplateResponseDto$Outbound; } + +export function activityNotificationTemplateResponseDtoToJSON( + activityNotificationTemplateResponseDto: + ActivityNotificationTemplateResponseDto, +): string { + return JSON.stringify( + ActivityNotificationTemplateResponseDto$outboundSchema.parse( + activityNotificationTemplateResponseDto, + ), + ); +} + +export function activityNotificationTemplateResponseDtoFromJSON( + jsonString: string, +): SafeParseResult< + ActivityNotificationTemplateResponseDto, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ActivityNotificationTemplateResponseDto$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ActivityNotificationTemplateResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitystatsresponsedto.ts b/src/models/components/activitystatsresponsedto.ts index 78abb8d1..f0ce0e9c 100644 --- a/src/models/components/activitystatsresponsedto.ts +++ b/src/models/components/activitystatsresponsedto.ts @@ -3,10 +3,13 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ActivityStatsResponseDto = { - monthlySent: number; weeklySent: number; + monthlySent: number; }; /** @internal */ @@ -15,14 +18,14 @@ export const ActivityStatsResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - monthlySent: z.number(), weeklySent: z.number(), + monthlySent: z.number(), }); /** @internal */ export type ActivityStatsResponseDto$Outbound = { - monthlySent: number; weeklySent: number; + monthlySent: number; }; /** @internal */ @@ -31,8 +34,8 @@ export const ActivityStatsResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, ActivityStatsResponseDto > = z.object({ - monthlySent: z.number(), weeklySent: z.number(), + monthlySent: z.number(), }); /** @@ -47,3 +50,21 @@ export namespace ActivityStatsResponseDto$ { /** @deprecated use `ActivityStatsResponseDto$Outbound` instead. */ export type Outbound = ActivityStatsResponseDto$Outbound; } + +export function activityStatsResponseDtoToJSON( + activityStatsResponseDto: ActivityStatsResponseDto, +): string { + return JSON.stringify( + ActivityStatsResponseDto$outboundSchema.parse(activityStatsResponseDto), + ); +} + +export function activityStatsResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivityStatsResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivityStatsResponseDto' from JSON`, + ); +} diff --git a/src/models/components/addsubscribersrequestdto.ts b/src/models/components/addsubscribersrequestdto.ts index 1c4cf277..c03c0c39 100644 --- a/src/models/components/addsubscribersrequestdto.ts +++ b/src/models/components/addsubscribersrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type AddSubscribersRequestDto = { /** @@ -46,3 +49,21 @@ export namespace AddSubscribersRequestDto$ { /** @deprecated use `AddSubscribersRequestDto$Outbound` instead. */ export type Outbound = AddSubscribersRequestDto$Outbound; } + +export function addSubscribersRequestDtoToJSON( + addSubscribersRequestDto: AddSubscribersRequestDto, +): string { + return JSON.stringify( + AddSubscribersRequestDto$outboundSchema.parse(addSubscribersRequestDto), + ); +} + +export function addSubscribersRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AddSubscribersRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AddSubscribersRequestDto' from JSON`, + ); +} diff --git a/src/models/components/apikey.ts b/src/models/components/apikey.ts index 7e7886db..2432c7a1 100644 --- a/src/models/components/apikey.ts +++ b/src/models/components/apikey.ts @@ -4,17 +4,20 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ApiKey = { - userId: string; key: string; + userId: string; }; /** @internal */ export const ApiKey$inboundSchema: z.ZodType = z .object({ - _userId: z.string(), key: z.string(), + _userId: z.string(), }).transform((v) => { return remap$(v, { "_userId": "userId", @@ -23,8 +26,8 @@ export const ApiKey$inboundSchema: z.ZodType = z /** @internal */ export type ApiKey$Outbound = { - _userId: string; key: string; + _userId: string; }; /** @internal */ @@ -33,8 +36,8 @@ export const ApiKey$outboundSchema: z.ZodType< z.ZodTypeDef, ApiKey > = z.object({ - userId: z.string(), key: z.string(), + userId: z.string(), }).transform((v) => { return remap$(v, { userId: "_userId", @@ -53,3 +56,17 @@ export namespace ApiKey$ { /** @deprecated use `ApiKey$Outbound` instead. */ export type Outbound = ApiKey$Outbound; } + +export function apiKeyToJSON(apiKey: ApiKey): string { + return JSON.stringify(ApiKey$outboundSchema.parse(apiKey)); +} + +export function apiKeyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ApiKey$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ApiKey' from JSON`, + ); +} diff --git a/src/models/components/bulksubscribercreatedto.ts b/src/models/components/bulksubscribercreatedto.ts index baaf729d..16b49fb2 100644 --- a/src/models/components/bulksubscribercreatedto.ts +++ b/src/models/components/bulksubscribercreatedto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type BulkSubscriberCreateDto = { subscribers: Array; @@ -43,3 +46,21 @@ export namespace BulkSubscriberCreateDto$ { /** @deprecated use `BulkSubscriberCreateDto$Outbound` instead. */ export type Outbound = BulkSubscriberCreateDto$Outbound; } + +export function bulkSubscriberCreateDtoToJSON( + bulkSubscriberCreateDto: BulkSubscriberCreateDto, +): string { + return JSON.stringify( + BulkSubscriberCreateDto$outboundSchema.parse(bulkSubscriberCreateDto), + ); +} + +export function bulkSubscriberCreateDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => BulkSubscriberCreateDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'BulkSubscriberCreateDto' from JSON`, + ); +} diff --git a/src/models/components/bulktriggereventdto.ts b/src/models/components/bulktriggereventdto.ts index 6a5bfecd..a668f98c 100644 --- a/src/models/components/bulktriggereventdto.ts +++ b/src/models/components/bulktriggereventdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { TriggerEventRequestDto, TriggerEventRequestDto$inboundSchema, @@ -49,3 +52,21 @@ export namespace BulkTriggerEventDto$ { /** @deprecated use `BulkTriggerEventDto$Outbound` instead. */ export type Outbound = BulkTriggerEventDto$Outbound; } + +export function bulkTriggerEventDtoToJSON( + bulkTriggerEventDto: BulkTriggerEventDto, +): string { + return JSON.stringify( + BulkTriggerEventDto$outboundSchema.parse(bulkTriggerEventDto), + ); +} + +export function bulkTriggerEventDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => BulkTriggerEventDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'BulkTriggerEventDto' from JSON`, + ); +} diff --git a/src/models/components/channelcredentials.ts b/src/models/components/channelcredentials.ts index dac42e95..1428a907 100644 --- a/src/models/components/channelcredentials.ts +++ b/src/models/components/channelcredentials.ts @@ -3,12 +3,15 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ChannelCredentials = { /** - * alert_uid for grafana on-call webhook payload + * Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. */ - alertUid?: string | undefined; + webhookUrl: string; /** * Channel specification for Mattermost chat notifications */ @@ -18,9 +21,13 @@ export type ChannelCredentials = { */ deviceTokens?: Array | undefined; /** - * link_to_upstream_details property fo grafana on call webhook + * alert_uid for grafana on-call webhook payload */ - externalUrl?: string | undefined; + alertUid?: string | undefined; + /** + * title to be used with grafana on call webhook + */ + title?: string | undefined; /** * image_url property fo grafana on call webhook */ @@ -30,13 +37,9 @@ export type ChannelCredentials = { */ state?: string | undefined; /** - * title to be used with grafana on call webhook - */ - title?: string | undefined; - /** - * Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + * link_to_upstream_details property fo grafana on call webhook */ - webhookUrl: string; + externalUrl?: string | undefined; }; /** @internal */ @@ -45,26 +48,26 @@ export const ChannelCredentials$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - alertUid: z.string().optional(), + webhookUrl: z.string(), channel: z.string().optional(), deviceTokens: z.array(z.string()).optional(), - externalUrl: z.string().optional(), + alertUid: z.string().optional(), + title: z.string().optional(), imageUrl: z.string().optional(), state: z.string().optional(), - title: z.string().optional(), - webhookUrl: z.string(), + externalUrl: z.string().optional(), }); /** @internal */ export type ChannelCredentials$Outbound = { - alertUid?: string | undefined; + webhookUrl: string; channel?: string | undefined; deviceTokens?: Array | undefined; - externalUrl?: string | undefined; + alertUid?: string | undefined; + title?: string | undefined; imageUrl?: string | undefined; state?: string | undefined; - title?: string | undefined; - webhookUrl: string; + externalUrl?: string | undefined; }; /** @internal */ @@ -73,14 +76,14 @@ export const ChannelCredentials$outboundSchema: z.ZodType< z.ZodTypeDef, ChannelCredentials > = z.object({ - alertUid: z.string().optional(), + webhookUrl: z.string(), channel: z.string().optional(), deviceTokens: z.array(z.string()).optional(), - externalUrl: z.string().optional(), + alertUid: z.string().optional(), + title: z.string().optional(), imageUrl: z.string().optional(), state: z.string().optional(), - title: z.string().optional(), - webhookUrl: z.string(), + externalUrl: z.string().optional(), }); /** @@ -95,3 +98,21 @@ export namespace ChannelCredentials$ { /** @deprecated use `ChannelCredentials$Outbound` instead. */ export type Outbound = ChannelCredentials$Outbound; } + +export function channelCredentialsToJSON( + channelCredentials: ChannelCredentials, +): string { + return JSON.stringify( + ChannelCredentials$outboundSchema.parse(channelCredentials), + ); +} + +export function channelCredentialsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ChannelCredentials$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChannelCredentials' from JSON`, + ); +} diff --git a/src/models/components/channelpreference.ts b/src/models/components/channelpreference.ts index 4f761043..d637a376 100644 --- a/src/models/components/channelpreference.ts +++ b/src/models/components/channelpreference.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * The type of channel that is enabled or not @@ -21,14 +24,14 @@ export const ChannelPreferenceType = { export type ChannelPreferenceType = ClosedEnum; export type ChannelPreference = { - /** - * If channel is enabled or not - */ - enabled: boolean; /** * The type of channel that is enabled or not */ type: ChannelPreferenceType; + /** + * If channel is enabled or not + */ + enabled: boolean; }; /** @internal */ @@ -58,14 +61,14 @@ export const ChannelPreference$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - enabled: z.boolean(), type: ChannelPreferenceType$inboundSchema, + enabled: z.boolean(), }); /** @internal */ export type ChannelPreference$Outbound = { - enabled: boolean; type: string; + enabled: boolean; }; /** @internal */ @@ -74,8 +77,8 @@ export const ChannelPreference$outboundSchema: z.ZodType< z.ZodTypeDef, ChannelPreference > = z.object({ - enabled: z.boolean(), type: ChannelPreferenceType$outboundSchema, + enabled: z.boolean(), }); /** @@ -90,3 +93,21 @@ export namespace ChannelPreference$ { /** @deprecated use `ChannelPreference$Outbound` instead. */ export type Outbound = ChannelPreference$Outbound; } + +export function channelPreferenceToJSON( + channelPreference: ChannelPreference, +): string { + return JSON.stringify( + ChannelPreference$outboundSchema.parse(channelPreference), + ); +} + +export function channelPreferenceFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ChannelPreference$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChannelPreference' from JSON`, + ); +} diff --git a/src/models/components/channelsettings.ts b/src/models/components/channelsettings.ts index 1417df3b..5be94479 100644 --- a/src/models/components/channelsettings.ts +++ b/src/models/components/channelsettings.ts @@ -4,6 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ChannelCredentials, ChannelCredentials$inboundSchema, @@ -11,35 +15,81 @@ import { ChannelCredentials$outboundSchema, } from "./channelcredentials.js"; +/** + * The provider identifier for the credentials + */ +export const ProviderId = { + Slack: "slack", + Discord: "discord", + Msteams: "msteams", + Mattermost: "mattermost", + Ryver: "ryver", + Zulip: "zulip", + GrafanaOnCall: "grafana-on-call", + Getstream: "getstream", + RocketChat: "rocket-chat", + WhatsappBusiness: "whatsapp-business", + Fcm: "fcm", + Apns: "apns", + Expo: "expo", + OneSignal: "one-signal", + Pushpad: "pushpad", + PushWebhook: "push-webhook", + PusherBeams: "pusher-beams", +} as const; +/** + * The provider identifier for the credentials + */ +export type ProviderId = ClosedEnum; + export type ChannelSettings = { /** - * Id of the integration that is used for this channel - */ - integrationId: string; - /** - * Credentials payload for the specified provider + * The provider identifier for the credentials */ - credentials: ChannelCredentials; + providerId: ProviderId; /** * The integration identifier */ integrationIdentifier?: string | undefined; /** - * The provider identifier for the credentials + * Credentials payload for the specified provider + */ + credentials: ChannelCredentials; + /** + * Id of the integration that is used for this channel */ - providerId: number; + integrationId: string; }; +/** @internal */ +export const ProviderId$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(ProviderId); + +/** @internal */ +export const ProviderId$outboundSchema: z.ZodNativeEnum = + ProviderId$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ProviderId$ { + /** @deprecated use `ProviderId$inboundSchema` instead. */ + export const inboundSchema = ProviderId$inboundSchema; + /** @deprecated use `ProviderId$outboundSchema` instead. */ + export const outboundSchema = ProviderId$outboundSchema; +} + /** @internal */ export const ChannelSettings$inboundSchema: z.ZodType< ChannelSettings, z.ZodTypeDef, unknown > = z.object({ - _integrationId: z.string(), - credentials: ChannelCredentials$inboundSchema, + providerId: ProviderId$inboundSchema, integrationIdentifier: z.string().optional(), - providerId: z.number(), + credentials: ChannelCredentials$inboundSchema, + _integrationId: z.string(), }).transform((v) => { return remap$(v, { "_integrationId": "integrationId", @@ -48,10 +98,10 @@ export const ChannelSettings$inboundSchema: z.ZodType< /** @internal */ export type ChannelSettings$Outbound = { - _integrationId: string; - credentials: ChannelCredentials$Outbound; + providerId: string; integrationIdentifier?: string | undefined; - providerId: number; + credentials: ChannelCredentials$Outbound; + _integrationId: string; }; /** @internal */ @@ -60,10 +110,10 @@ export const ChannelSettings$outboundSchema: z.ZodType< z.ZodTypeDef, ChannelSettings > = z.object({ - integrationId: z.string(), - credentials: ChannelCredentials$outboundSchema, + providerId: ProviderId$outboundSchema, integrationIdentifier: z.string().optional(), - providerId: z.number(), + credentials: ChannelCredentials$outboundSchema, + integrationId: z.string(), }).transform((v) => { return remap$(v, { integrationId: "_integrationId", @@ -82,3 +132,19 @@ export namespace ChannelSettings$ { /** @deprecated use `ChannelSettings$Outbound` instead. */ export type Outbound = ChannelSettings$Outbound; } + +export function channelSettingsToJSON( + channelSettings: ChannelSettings, +): string { + return JSON.stringify(ChannelSettings$outboundSchema.parse(channelSettings)); +} + +export function channelSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ChannelSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChannelSettings' from JSON`, + ); +} diff --git a/src/models/components/createintegrationrequestdto.ts b/src/models/components/createintegrationrequestdto.ts index de0d5b5a..f35347ca 100644 --- a/src/models/components/createintegrationrequestdto.ts +++ b/src/models/components/createintegrationrequestdto.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { CredentialsDto, CredentialsDto$inboundSchema, @@ -18,47 +21,52 @@ import { StepFilter$outboundSchema, } from "./stepfilter.js"; -export const Channel = { +export const CreateIntegrationRequestDtoChannel = { InApp: "in_app", Email: "email", Sms: "sms", Chat: "chat", Push: "push", } as const; -export type Channel = ClosedEnum; +export type CreateIntegrationRequestDtoChannel = ClosedEnum< + typeof CreateIntegrationRequestDtoChannel +>; export type CreateIntegrationRequestDto = { + name?: string | undefined; + identifier?: string | undefined; environmentId?: string | undefined; + providerId: string; + channel: CreateIntegrationRequestDtoChannel; + credentials?: CredentialsDto | undefined; /** * If the integration is active the validation on the credentials field will run */ active?: boolean | undefined; - channel: Channel; check?: boolean | undefined; conditions?: Array | undefined; - credentials?: CredentialsDto | undefined; - identifier?: string | undefined; - name?: string | undefined; - providerId: string; }; /** @internal */ -export const Channel$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Channel); +export const CreateIntegrationRequestDtoChannel$inboundSchema: z.ZodNativeEnum< + typeof CreateIntegrationRequestDtoChannel +> = z.nativeEnum(CreateIntegrationRequestDtoChannel); /** @internal */ -export const Channel$outboundSchema: z.ZodNativeEnum = - Channel$inboundSchema; +export const CreateIntegrationRequestDtoChannel$outboundSchema: z.ZodNativeEnum< + typeof CreateIntegrationRequestDtoChannel +> = CreateIntegrationRequestDtoChannel$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Channel$ { - /** @deprecated use `Channel$inboundSchema` instead. */ - export const inboundSchema = Channel$inboundSchema; - /** @deprecated use `Channel$outboundSchema` instead. */ - export const outboundSchema = Channel$outboundSchema; +export namespace CreateIntegrationRequestDtoChannel$ { + /** @deprecated use `CreateIntegrationRequestDtoChannel$inboundSchema` instead. */ + export const inboundSchema = CreateIntegrationRequestDtoChannel$inboundSchema; + /** @deprecated use `CreateIntegrationRequestDtoChannel$outboundSchema` instead. */ + export const outboundSchema = + CreateIntegrationRequestDtoChannel$outboundSchema; } /** @internal */ @@ -67,15 +75,15 @@ export const CreateIntegrationRequestDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), _environmentId: z.string().optional(), + providerId: z.string(), + channel: CreateIntegrationRequestDtoChannel$inboundSchema, + credentials: CredentialsDto$inboundSchema.optional(), active: z.boolean().optional(), - channel: Channel$inboundSchema, check: z.boolean().optional(), conditions: z.array(StepFilter$inboundSchema).optional(), - credentials: CredentialsDto$inboundSchema.optional(), - identifier: z.string().optional(), - name: z.string().optional(), - providerId: z.string(), }).transform((v) => { return remap$(v, { "_environmentId": "environmentId", @@ -84,15 +92,15 @@ export const CreateIntegrationRequestDto$inboundSchema: z.ZodType< /** @internal */ export type CreateIntegrationRequestDto$Outbound = { + name?: string | undefined; + identifier?: string | undefined; _environmentId?: string | undefined; - active?: boolean | undefined; + providerId: string; channel: string; + credentials?: CredentialsDto$Outbound | undefined; + active?: boolean | undefined; check?: boolean | undefined; conditions?: Array | undefined; - credentials?: CredentialsDto$Outbound | undefined; - identifier?: string | undefined; - name?: string | undefined; - providerId: string; }; /** @internal */ @@ -101,15 +109,15 @@ export const CreateIntegrationRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, CreateIntegrationRequestDto > = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), environmentId: z.string().optional(), + providerId: z.string(), + channel: CreateIntegrationRequestDtoChannel$outboundSchema, + credentials: CredentialsDto$outboundSchema.optional(), active: z.boolean().optional(), - channel: Channel$outboundSchema, check: z.boolean().optional(), conditions: z.array(StepFilter$outboundSchema).optional(), - credentials: CredentialsDto$outboundSchema.optional(), - identifier: z.string().optional(), - name: z.string().optional(), - providerId: z.string(), }).transform((v) => { return remap$(v, { environmentId: "_environmentId", @@ -128,3 +136,23 @@ export namespace CreateIntegrationRequestDto$ { /** @deprecated use `CreateIntegrationRequestDto$Outbound` instead. */ export type Outbound = CreateIntegrationRequestDto$Outbound; } + +export function createIntegrationRequestDtoToJSON( + createIntegrationRequestDto: CreateIntegrationRequestDto, +): string { + return JSON.stringify( + CreateIntegrationRequestDto$outboundSchema.parse( + createIntegrationRequestDto, + ), + ); +} + +export function createIntegrationRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateIntegrationRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateIntegrationRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createnotificationgrouprequestdto.ts b/src/models/components/createnotificationgrouprequestdto.ts index 515a12c5..4deb78b9 100644 --- a/src/models/components/createnotificationgrouprequestdto.ts +++ b/src/models/components/createnotificationgrouprequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type CreateNotificationGroupRequestDto = { name: string; @@ -44,3 +47,23 @@ export namespace CreateNotificationGroupRequestDto$ { /** @deprecated use `CreateNotificationGroupRequestDto$Outbound` instead. */ export type Outbound = CreateNotificationGroupRequestDto$Outbound; } + +export function createNotificationGroupRequestDtoToJSON( + createNotificationGroupRequestDto: CreateNotificationGroupRequestDto, +): string { + return JSON.stringify( + CreateNotificationGroupRequestDto$outboundSchema.parse( + createNotificationGroupRequestDto, + ), + ); +} + +export function createNotificationGroupRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateNotificationGroupRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateNotificationGroupRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createsubscriberrequestdto.ts b/src/models/components/createsubscriberrequestdto.ts index 4992e28a..180eb6d1 100644 --- a/src/models/components/createsubscriberrequestdto.ts +++ b/src/models/components/createsubscriberrequestdto.ts @@ -3,49 +3,78 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export type Data = {}; +export type CreateSubscriberRequestDtoData = {}; export type CreateSubscriberRequestDto = { /** - * An http url to the profile image of your subscriber + * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems */ - avatar?: string | undefined; - channels?: Array | undefined; - data?: Data | undefined; + subscriberId: string; email?: string | undefined; firstName?: string | undefined; lastName?: string | undefined; - locale?: string | undefined; phone?: string | undefined; /** - * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + * An http url to the profile image of your subscriber */ - subscriberId: string; + avatar?: string | undefined; + locale?: string | undefined; + data?: CreateSubscriberRequestDtoData | undefined; + channels?: Array | undefined; }; /** @internal */ -export const Data$inboundSchema: z.ZodType = z - .object({}); +export const CreateSubscriberRequestDtoData$inboundSchema: z.ZodType< + CreateSubscriberRequestDtoData, + z.ZodTypeDef, + unknown +> = z.object({}); /** @internal */ -export type Data$Outbound = {}; +export type CreateSubscriberRequestDtoData$Outbound = {}; /** @internal */ -export const Data$outboundSchema: z.ZodType = - z.object({}); +export const CreateSubscriberRequestDtoData$outboundSchema: z.ZodType< + CreateSubscriberRequestDtoData$Outbound, + z.ZodTypeDef, + CreateSubscriberRequestDtoData +> = z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Data$ { - /** @deprecated use `Data$inboundSchema` instead. */ - export const inboundSchema = Data$inboundSchema; - /** @deprecated use `Data$outboundSchema` instead. */ - export const outboundSchema = Data$outboundSchema; - /** @deprecated use `Data$Outbound` instead. */ - export type Outbound = Data$Outbound; +export namespace CreateSubscriberRequestDtoData$ { + /** @deprecated use `CreateSubscriberRequestDtoData$inboundSchema` instead. */ + export const inboundSchema = CreateSubscriberRequestDtoData$inboundSchema; + /** @deprecated use `CreateSubscriberRequestDtoData$outboundSchema` instead. */ + export const outboundSchema = CreateSubscriberRequestDtoData$outboundSchema; + /** @deprecated use `CreateSubscriberRequestDtoData$Outbound` instead. */ + export type Outbound = CreateSubscriberRequestDtoData$Outbound; +} + +export function createSubscriberRequestDtoDataToJSON( + createSubscriberRequestDtoData: CreateSubscriberRequestDtoData, +): string { + return JSON.stringify( + CreateSubscriberRequestDtoData$outboundSchema.parse( + createSubscriberRequestDtoData, + ), + ); +} + +export function createSubscriberRequestDtoDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateSubscriberRequestDtoData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateSubscriberRequestDtoData' from JSON`, + ); } /** @internal */ @@ -54,28 +83,28 @@ export const CreateSubscriberRequestDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - avatar: z.string().optional(), - channels: z.array(z.string()).optional(), - data: z.lazy(() => Data$inboundSchema).optional(), + subscriberId: z.string(), email: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), - locale: z.string().optional(), phone: z.string().optional(), - subscriberId: z.string(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => CreateSubscriberRequestDtoData$inboundSchema).optional(), + channels: z.array(z.string()).optional(), }); /** @internal */ export type CreateSubscriberRequestDto$Outbound = { - avatar?: string | undefined; - channels?: Array | undefined; - data?: Data$Outbound | undefined; + subscriberId: string; email?: string | undefined; firstName?: string | undefined; lastName?: string | undefined; - locale?: string | undefined; phone?: string | undefined; - subscriberId: string; + avatar?: string | undefined; + locale?: string | undefined; + data?: CreateSubscriberRequestDtoData$Outbound | undefined; + channels?: Array | undefined; }; /** @internal */ @@ -84,15 +113,15 @@ export const CreateSubscriberRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, CreateSubscriberRequestDto > = z.object({ - avatar: z.string().optional(), - channels: z.array(z.string()).optional(), - data: z.lazy(() => Data$outboundSchema).optional(), + subscriberId: z.string(), email: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), - locale: z.string().optional(), phone: z.string().optional(), - subscriberId: z.string(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => CreateSubscriberRequestDtoData$outboundSchema).optional(), + channels: z.array(z.string()).optional(), }); /** @@ -107,3 +136,21 @@ export namespace CreateSubscriberRequestDto$ { /** @deprecated use `CreateSubscriberRequestDto$Outbound` instead. */ export type Outbound = CreateSubscriberRequestDto$Outbound; } + +export function createSubscriberRequestDtoToJSON( + createSubscriberRequestDto: CreateSubscriberRequestDto, +): string { + return JSON.stringify( + CreateSubscriberRequestDto$outboundSchema.parse(createSubscriberRequestDto), + ); +} + +export function createSubscriberRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateSubscriberRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateSubscriberRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createtopicrequestdto.ts b/src/models/components/createtopicrequestdto.ts index 1c078b77..51e26840 100644 --- a/src/models/components/createtopicrequestdto.ts +++ b/src/models/components/createtopicrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type CreateTopicRequestDto = { /** @@ -53,3 +56,21 @@ export namespace CreateTopicRequestDto$ { /** @deprecated use `CreateTopicRequestDto$Outbound` instead. */ export type Outbound = CreateTopicRequestDto$Outbound; } + +export function createTopicRequestDtoToJSON( + createTopicRequestDto: CreateTopicRequestDto, +): string { + return JSON.stringify( + CreateTopicRequestDto$outboundSchema.parse(createTopicRequestDto), + ); +} + +export function createTopicRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateTopicRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateTopicRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createtopicresponsedto.ts b/src/models/components/createtopicresponsedto.ts index 95d759f1..b02673c5 100644 --- a/src/models/components/createtopicresponsedto.ts +++ b/src/models/components/createtopicresponsedto.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type CreateTopicResponseDto = { /** @@ -62,3 +65,21 @@ export namespace CreateTopicResponseDto$ { /** @deprecated use `CreateTopicResponseDto$Outbound` instead. */ export type Outbound = CreateTopicResponseDto$Outbound; } + +export function createTopicResponseDtoToJSON( + createTopicResponseDto: CreateTopicResponseDto, +): string { + return JSON.stringify( + CreateTopicResponseDto$outboundSchema.parse(createTopicResponseDto), + ); +} + +export function createTopicResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateTopicResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateTopicResponseDto' from JSON`, + ); +} diff --git a/src/models/components/credentialsdto.ts b/src/models/components/credentialsdto.ts index 8c7f9c76..2818b688 100644 --- a/src/models/components/credentialsdto.ts +++ b/src/models/components/credentialsdto.ts @@ -3,52 +3,55 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TlsOptions = {}; export type CredentialsDto = { - accessKey?: string | undefined; - accountSid?: string | undefined; - alertUid?: string | undefined; apiKey?: string | undefined; - apiKeyRequestHeader?: string | undefined; - apiToken?: string | undefined; - applicationId?: string | undefined; - authenticateByToken?: boolean | undefined; - authenticationTokenKey?: string | undefined; - baseUrl?: string | undefined; - channelId?: string | undefined; - clientId?: string | undefined; - datePath?: string | undefined; + user?: string | undefined; + secretKey?: string | undefined; domain?: string | undefined; - externalLink?: string | undefined; - from?: string | undefined; - hmac?: boolean | undefined; - host?: string | undefined; - idPath?: string | undefined; - ignoreTls?: boolean | undefined; - imageUrl?: string | undefined; - instanceId?: string | undefined; - ipPoolName?: string | undefined; - messageProfileId?: string | undefined; password?: string | undefined; - phoneNumberIdentification?: string | undefined; + host?: string | undefined; port?: string | undefined; - projectName?: string | undefined; - redirectUrl?: string | undefined; - region?: string | undefined; - requireTls?: boolean | undefined; - secretKey?: string | undefined; - secretKeyRequestHeader?: string | undefined; secure?: boolean | undefined; + region?: string | undefined; + accountSid?: string | undefined; + messageProfileId?: string | undefined; + token?: string | undefined; + from?: string | undefined; senderName?: string | undefined; - serviceAccount?: string | undefined; - state?: string | undefined; - title?: string | undefined; + projectName?: string | undefined; + applicationId?: string | undefined; + clientId?: string | undefined; + requireTls?: boolean | undefined; + ignoreTls?: boolean | undefined; tlsOptions?: TlsOptions | undefined; - token?: string | undefined; - user?: string | undefined; + baseUrl?: string | undefined; webhookUrl?: string | undefined; + redirectUrl?: string | undefined; + hmac?: boolean | undefined; + serviceAccount?: string | undefined; + ipPoolName?: string | undefined; + apiKeyRequestHeader?: string | undefined; + secretKeyRequestHeader?: string | undefined; + idPath?: string | undefined; + datePath?: string | undefined; + apiToken?: string | undefined; + authenticateByToken?: boolean | undefined; + authenticationTokenKey?: string | undefined; + instanceId?: string | undefined; + alertUid?: string | undefined; + title?: string | undefined; + imageUrl?: string | undefined; + state?: string | undefined; + externalLink?: string | undefined; + channelId?: string | undefined; + phoneNumberIdentification?: string | undefined; + accessKey?: string | undefined; }; /** @internal */ @@ -81,100 +84,114 @@ export namespace TlsOptions$ { export type Outbound = TlsOptions$Outbound; } +export function tlsOptionsToJSON(tlsOptions: TlsOptions): string { + return JSON.stringify(TlsOptions$outboundSchema.parse(tlsOptions)); +} + +export function tlsOptionsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TlsOptions$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TlsOptions' from JSON`, + ); +} + /** @internal */ export const CredentialsDto$inboundSchema: z.ZodType< CredentialsDto, z.ZodTypeDef, unknown > = z.object({ - accessKey: z.string().optional(), - accountSid: z.string().optional(), - alertUid: z.string().optional(), apiKey: z.string().optional(), - apiKeyRequestHeader: z.string().optional(), - apiToken: z.string().optional(), - applicationId: z.string().optional(), - authenticateByToken: z.boolean().optional(), - authenticationTokenKey: z.string().optional(), - baseUrl: z.string().optional(), - channelId: z.string().optional(), - clientId: z.string().optional(), - datePath: z.string().optional(), + user: z.string().optional(), + secretKey: z.string().optional(), domain: z.string().optional(), - externalLink: z.string().optional(), - from: z.string().optional(), - hmac: z.boolean().optional(), - host: z.string().optional(), - idPath: z.string().optional(), - ignoreTls: z.boolean().optional(), - imageUrl: z.string().optional(), - instanceId: z.string().optional(), - ipPoolName: z.string().optional(), - messageProfileId: z.string().optional(), password: z.string().optional(), - phoneNumberIdentification: z.string().optional(), + host: z.string().optional(), port: z.string().optional(), - projectName: z.string().optional(), - redirectUrl: z.string().optional(), - region: z.string().optional(), - requireTls: z.boolean().optional(), - secretKey: z.string().optional(), - secretKeyRequestHeader: z.string().optional(), secure: z.boolean().optional(), + region: z.string().optional(), + accountSid: z.string().optional(), + messageProfileId: z.string().optional(), + token: z.string().optional(), + from: z.string().optional(), senderName: z.string().optional(), - serviceAccount: z.string().optional(), - state: z.string().optional(), - title: z.string().optional(), + projectName: z.string().optional(), + applicationId: z.string().optional(), + clientId: z.string().optional(), + requireTls: z.boolean().optional(), + ignoreTls: z.boolean().optional(), tlsOptions: z.lazy(() => TlsOptions$inboundSchema).optional(), - token: z.string().optional(), - user: z.string().optional(), + baseUrl: z.string().optional(), webhookUrl: z.string().optional(), + redirectUrl: z.string().optional(), + hmac: z.boolean().optional(), + serviceAccount: z.string().optional(), + ipPoolName: z.string().optional(), + apiKeyRequestHeader: z.string().optional(), + secretKeyRequestHeader: z.string().optional(), + idPath: z.string().optional(), + datePath: z.string().optional(), + apiToken: z.string().optional(), + authenticateByToken: z.boolean().optional(), + authenticationTokenKey: z.string().optional(), + instanceId: z.string().optional(), + alertUid: z.string().optional(), + title: z.string().optional(), + imageUrl: z.string().optional(), + state: z.string().optional(), + externalLink: z.string().optional(), + channelId: z.string().optional(), + phoneNumberIdentification: z.string().optional(), + accessKey: z.string().optional(), }); /** @internal */ export type CredentialsDto$Outbound = { - accessKey?: string | undefined; - accountSid?: string | undefined; - alertUid?: string | undefined; apiKey?: string | undefined; - apiKeyRequestHeader?: string | undefined; - apiToken?: string | undefined; - applicationId?: string | undefined; - authenticateByToken?: boolean | undefined; - authenticationTokenKey?: string | undefined; - baseUrl?: string | undefined; - channelId?: string | undefined; - clientId?: string | undefined; - datePath?: string | undefined; + user?: string | undefined; + secretKey?: string | undefined; domain?: string | undefined; - externalLink?: string | undefined; - from?: string | undefined; - hmac?: boolean | undefined; - host?: string | undefined; - idPath?: string | undefined; - ignoreTls?: boolean | undefined; - imageUrl?: string | undefined; - instanceId?: string | undefined; - ipPoolName?: string | undefined; - messageProfileId?: string | undefined; password?: string | undefined; - phoneNumberIdentification?: string | undefined; + host?: string | undefined; port?: string | undefined; - projectName?: string | undefined; - redirectUrl?: string | undefined; - region?: string | undefined; - requireTls?: boolean | undefined; - secretKey?: string | undefined; - secretKeyRequestHeader?: string | undefined; secure?: boolean | undefined; + region?: string | undefined; + accountSid?: string | undefined; + messageProfileId?: string | undefined; + token?: string | undefined; + from?: string | undefined; senderName?: string | undefined; - serviceAccount?: string | undefined; - state?: string | undefined; - title?: string | undefined; + projectName?: string | undefined; + applicationId?: string | undefined; + clientId?: string | undefined; + requireTls?: boolean | undefined; + ignoreTls?: boolean | undefined; tlsOptions?: TlsOptions$Outbound | undefined; - token?: string | undefined; - user?: string | undefined; + baseUrl?: string | undefined; webhookUrl?: string | undefined; + redirectUrl?: string | undefined; + hmac?: boolean | undefined; + serviceAccount?: string | undefined; + ipPoolName?: string | undefined; + apiKeyRequestHeader?: string | undefined; + secretKeyRequestHeader?: string | undefined; + idPath?: string | undefined; + datePath?: string | undefined; + apiToken?: string | undefined; + authenticateByToken?: boolean | undefined; + authenticationTokenKey?: string | undefined; + instanceId?: string | undefined; + alertUid?: string | undefined; + title?: string | undefined; + imageUrl?: string | undefined; + state?: string | undefined; + externalLink?: string | undefined; + channelId?: string | undefined; + phoneNumberIdentification?: string | undefined; + accessKey?: string | undefined; }; /** @internal */ @@ -183,48 +200,48 @@ export const CredentialsDto$outboundSchema: z.ZodType< z.ZodTypeDef, CredentialsDto > = z.object({ - accessKey: z.string().optional(), - accountSid: z.string().optional(), - alertUid: z.string().optional(), apiKey: z.string().optional(), - apiKeyRequestHeader: z.string().optional(), - apiToken: z.string().optional(), - applicationId: z.string().optional(), - authenticateByToken: z.boolean().optional(), - authenticationTokenKey: z.string().optional(), - baseUrl: z.string().optional(), - channelId: z.string().optional(), - clientId: z.string().optional(), - datePath: z.string().optional(), + user: z.string().optional(), + secretKey: z.string().optional(), domain: z.string().optional(), - externalLink: z.string().optional(), - from: z.string().optional(), - hmac: z.boolean().optional(), - host: z.string().optional(), - idPath: z.string().optional(), - ignoreTls: z.boolean().optional(), - imageUrl: z.string().optional(), - instanceId: z.string().optional(), - ipPoolName: z.string().optional(), - messageProfileId: z.string().optional(), password: z.string().optional(), - phoneNumberIdentification: z.string().optional(), + host: z.string().optional(), port: z.string().optional(), - projectName: z.string().optional(), - redirectUrl: z.string().optional(), - region: z.string().optional(), - requireTls: z.boolean().optional(), - secretKey: z.string().optional(), - secretKeyRequestHeader: z.string().optional(), secure: z.boolean().optional(), + region: z.string().optional(), + accountSid: z.string().optional(), + messageProfileId: z.string().optional(), + token: z.string().optional(), + from: z.string().optional(), senderName: z.string().optional(), - serviceAccount: z.string().optional(), - state: z.string().optional(), - title: z.string().optional(), + projectName: z.string().optional(), + applicationId: z.string().optional(), + clientId: z.string().optional(), + requireTls: z.boolean().optional(), + ignoreTls: z.boolean().optional(), tlsOptions: z.lazy(() => TlsOptions$outboundSchema).optional(), - token: z.string().optional(), - user: z.string().optional(), + baseUrl: z.string().optional(), webhookUrl: z.string().optional(), + redirectUrl: z.string().optional(), + hmac: z.boolean().optional(), + serviceAccount: z.string().optional(), + ipPoolName: z.string().optional(), + apiKeyRequestHeader: z.string().optional(), + secretKeyRequestHeader: z.string().optional(), + idPath: z.string().optional(), + datePath: z.string().optional(), + apiToken: z.string().optional(), + authenticateByToken: z.boolean().optional(), + authenticationTokenKey: z.string().optional(), + instanceId: z.string().optional(), + alertUid: z.string().optional(), + title: z.string().optional(), + imageUrl: z.string().optional(), + state: z.string().optional(), + externalLink: z.string().optional(), + channelId: z.string().optional(), + phoneNumberIdentification: z.string().optional(), + accessKey: z.string().optional(), }); /** @@ -239,3 +256,17 @@ export namespace CredentialsDto$ { /** @deprecated use `CredentialsDto$Outbound` instead. */ export type Outbound = CredentialsDto$Outbound; } + +export function credentialsDtoToJSON(credentialsDto: CredentialsDto): string { + return JSON.stringify(CredentialsDto$outboundSchema.parse(credentialsDto)); +} + +export function credentialsDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CredentialsDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CredentialsDto' from JSON`, + ); +} diff --git a/src/models/components/databooleandto.ts b/src/models/components/databooleandto.ts index 3d202f50..200fb5b0 100644 --- a/src/models/components/databooleandto.ts +++ b/src/models/components/databooleandto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type DataBooleanDto = { data: boolean; @@ -43,3 +46,17 @@ export namespace DataBooleanDto$ { /** @deprecated use `DataBooleanDto$Outbound` instead. */ export type Outbound = DataBooleanDto$Outbound; } + +export function dataBooleanDtoToJSON(dataBooleanDto: DataBooleanDto): string { + return JSON.stringify(DataBooleanDto$outboundSchema.parse(dataBooleanDto)); +} + +export function dataBooleanDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataBooleanDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataBooleanDto' from JSON`, + ); +} diff --git a/src/models/components/delayregularmetadata.ts b/src/models/components/delayregularmetadata.ts index fb7a6ef3..7c8631f4 100644 --- a/src/models/components/delayregularmetadata.ts +++ b/src/models/components/delayregularmetadata.ts @@ -3,16 +3,12 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export const DelayRegularMetadataType = { - Regular: "regular", -} as const; -export type DelayRegularMetadataType = ClosedEnum< - typeof DelayRegularMetadataType ->; - -export const Unit = { +export const DelayRegularMetadataUnit = { Seconds: "seconds", Minutes: "minutes", Hours: "hours", @@ -20,14 +16,44 @@ export const Unit = { Weeks: "weeks", Months: "months", } as const; -export type Unit = ClosedEnum; +export type DelayRegularMetadataUnit = ClosedEnum< + typeof DelayRegularMetadataUnit +>; + +export const DelayRegularMetadataType = { + Regular: "regular", +} as const; +export type DelayRegularMetadataType = ClosedEnum< + typeof DelayRegularMetadataType +>; export type DelayRegularMetadata = { amount?: number | undefined; + unit?: DelayRegularMetadataUnit | undefined; type: DelayRegularMetadataType; - unit?: Unit | undefined; }; +/** @internal */ +export const DelayRegularMetadataUnit$inboundSchema: z.ZodNativeEnum< + typeof DelayRegularMetadataUnit +> = z.nativeEnum(DelayRegularMetadataUnit); + +/** @internal */ +export const DelayRegularMetadataUnit$outboundSchema: z.ZodNativeEnum< + typeof DelayRegularMetadataUnit +> = DelayRegularMetadataUnit$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DelayRegularMetadataUnit$ { + /** @deprecated use `DelayRegularMetadataUnit$inboundSchema` instead. */ + export const inboundSchema = DelayRegularMetadataUnit$inboundSchema; + /** @deprecated use `DelayRegularMetadataUnit$outboundSchema` instead. */ + export const outboundSchema = DelayRegularMetadataUnit$outboundSchema; +} + /** @internal */ export const DelayRegularMetadataType$inboundSchema: z.ZodNativeEnum< typeof DelayRegularMetadataType @@ -49,26 +75,6 @@ export namespace DelayRegularMetadataType$ { export const outboundSchema = DelayRegularMetadataType$outboundSchema; } -/** @internal */ -export const Unit$inboundSchema: z.ZodNativeEnum = z.nativeEnum( - Unit, -); - -/** @internal */ -export const Unit$outboundSchema: z.ZodNativeEnum = - Unit$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Unit$ { - /** @deprecated use `Unit$inboundSchema` instead. */ - export const inboundSchema = Unit$inboundSchema; - /** @deprecated use `Unit$outboundSchema` instead. */ - export const outboundSchema = Unit$outboundSchema; -} - /** @internal */ export const DelayRegularMetadata$inboundSchema: z.ZodType< DelayRegularMetadata, @@ -76,15 +82,15 @@ export const DelayRegularMetadata$inboundSchema: z.ZodType< unknown > = z.object({ amount: z.number().optional(), + unit: DelayRegularMetadataUnit$inboundSchema.optional(), type: DelayRegularMetadataType$inboundSchema, - unit: Unit$inboundSchema.optional(), }); /** @internal */ export type DelayRegularMetadata$Outbound = { amount?: number | undefined; - type: string; unit?: string | undefined; + type: string; }; /** @internal */ @@ -94,8 +100,8 @@ export const DelayRegularMetadata$outboundSchema: z.ZodType< DelayRegularMetadata > = z.object({ amount: z.number().optional(), + unit: DelayRegularMetadataUnit$outboundSchema.optional(), type: DelayRegularMetadataType$outboundSchema, - unit: Unit$outboundSchema.optional(), }); /** @@ -110,3 +116,21 @@ export namespace DelayRegularMetadata$ { /** @deprecated use `DelayRegularMetadata$Outbound` instead. */ export type Outbound = DelayRegularMetadata$Outbound; } + +export function delayRegularMetadataToJSON( + delayRegularMetadata: DelayRegularMetadata, +): string { + return JSON.stringify( + DelayRegularMetadata$outboundSchema.parse(delayRegularMetadata), + ); +} + +export function delayRegularMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DelayRegularMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DelayRegularMetadata' from JSON`, + ); +} diff --git a/src/models/components/delayscheduledmetadata.ts b/src/models/components/delayscheduledmetadata.ts index 6c6797fa..cd26f256 100644 --- a/src/models/components/delayscheduledmetadata.ts +++ b/src/models/components/delayscheduledmetadata.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const DelayScheduledMetadataType = { Scheduled: "scheduled", @@ -13,8 +16,8 @@ export type DelayScheduledMetadataType = ClosedEnum< >; export type DelayScheduledMetadata = { - delayPath: string; type: DelayScheduledMetadataType; + delayPath: string; }; /** @internal */ @@ -44,14 +47,14 @@ export const DelayScheduledMetadata$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - delayPath: z.string(), type: DelayScheduledMetadataType$inboundSchema, + delayPath: z.string(), }); /** @internal */ export type DelayScheduledMetadata$Outbound = { - delayPath: string; type: string; + delayPath: string; }; /** @internal */ @@ -60,8 +63,8 @@ export const DelayScheduledMetadata$outboundSchema: z.ZodType< z.ZodTypeDef, DelayScheduledMetadata > = z.object({ - delayPath: z.string(), type: DelayScheduledMetadataType$outboundSchema, + delayPath: z.string(), }); /** @@ -76,3 +79,21 @@ export namespace DelayScheduledMetadata$ { /** @deprecated use `DelayScheduledMetadata$Outbound` instead. */ export type Outbound = DelayScheduledMetadata$Outbound; } + +export function delayScheduledMetadataToJSON( + delayScheduledMetadata: DelayScheduledMetadata, +): string { + return JSON.stringify( + DelayScheduledMetadata$outboundSchema.parse(delayScheduledMetadata), + ); +} + +export function delayScheduledMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DelayScheduledMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DelayScheduledMetadata' from JSON`, + ); +} diff --git a/src/models/components/deletemessageresponsedto.ts b/src/models/components/deletemessageresponsedto.ts index 1d567ae8..50e20aed 100644 --- a/src/models/components/deletemessageresponsedto.ts +++ b/src/models/components/deletemessageresponsedto.ts @@ -3,18 +3,23 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * The status enum for the performed action */ -export const Status = { +export const DeleteMessageResponseDtoStatus = { Deleted: "deleted", } as const; /** * The status enum for the performed action */ -export type Status = ClosedEnum; +export type DeleteMessageResponseDtoStatus = ClosedEnum< + typeof DeleteMessageResponseDtoStatus +>; export type DeleteMessageResponseDto = { /** @@ -24,26 +29,28 @@ export type DeleteMessageResponseDto = { /** * The status enum for the performed action */ - status: Status; + status: DeleteMessageResponseDtoStatus; }; /** @internal */ -export const Status$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Status); +export const DeleteMessageResponseDtoStatus$inboundSchema: z.ZodNativeEnum< + typeof DeleteMessageResponseDtoStatus +> = z.nativeEnum(DeleteMessageResponseDtoStatus); /** @internal */ -export const Status$outboundSchema: z.ZodNativeEnum = - Status$inboundSchema; +export const DeleteMessageResponseDtoStatus$outboundSchema: z.ZodNativeEnum< + typeof DeleteMessageResponseDtoStatus +> = DeleteMessageResponseDtoStatus$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Status$ { - /** @deprecated use `Status$inboundSchema` instead. */ - export const inboundSchema = Status$inboundSchema; - /** @deprecated use `Status$outboundSchema` instead. */ - export const outboundSchema = Status$outboundSchema; +export namespace DeleteMessageResponseDtoStatus$ { + /** @deprecated use `DeleteMessageResponseDtoStatus$inboundSchema` instead. */ + export const inboundSchema = DeleteMessageResponseDtoStatus$inboundSchema; + /** @deprecated use `DeleteMessageResponseDtoStatus$outboundSchema` instead. */ + export const outboundSchema = DeleteMessageResponseDtoStatus$outboundSchema; } /** @internal */ @@ -53,7 +60,7 @@ export const DeleteMessageResponseDto$inboundSchema: z.ZodType< unknown > = z.object({ acknowledged: z.boolean(), - status: Status$inboundSchema, + status: DeleteMessageResponseDtoStatus$inboundSchema, }); /** @internal */ @@ -69,7 +76,7 @@ export const DeleteMessageResponseDto$outboundSchema: z.ZodType< DeleteMessageResponseDto > = z.object({ acknowledged: z.boolean(), - status: Status$outboundSchema, + status: DeleteMessageResponseDtoStatus$outboundSchema, }); /** @@ -84,3 +91,21 @@ export namespace DeleteMessageResponseDto$ { /** @deprecated use `DeleteMessageResponseDto$Outbound` instead. */ export type Outbound = DeleteMessageResponseDto$Outbound; } + +export function deleteMessageResponseDtoToJSON( + deleteMessageResponseDto: DeleteMessageResponseDto, +): string { + return JSON.stringify( + DeleteMessageResponseDto$outboundSchema.parse(deleteMessageResponseDto), + ); +} + +export function deleteMessageResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeleteMessageResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeleteMessageResponseDto' from JSON`, + ); +} diff --git a/src/models/components/deletenotificationgroupresponsedto.ts b/src/models/components/deletenotificationgroupresponsedto.ts index 0ea940cf..b75b5c46 100644 --- a/src/models/components/deletenotificationgroupresponsedto.ts +++ b/src/models/components/deletenotificationgroupresponsedto.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * The status enum for the performed action @@ -91,3 +94,24 @@ export namespace DeleteNotificationGroupResponseDto$ { /** @deprecated use `DeleteNotificationGroupResponseDto$Outbound` instead. */ export type Outbound = DeleteNotificationGroupResponseDto$Outbound; } + +export function deleteNotificationGroupResponseDtoToJSON( + deleteNotificationGroupResponseDto: DeleteNotificationGroupResponseDto, +): string { + return JSON.stringify( + DeleteNotificationGroupResponseDto$outboundSchema.parse( + deleteNotificationGroupResponseDto, + ), + ); +} + +export function deleteNotificationGroupResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeleteNotificationGroupResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeleteNotificationGroupResponseDto' from JSON`, + ); +} diff --git a/src/models/components/deletesubscriberresponsedto.ts b/src/models/components/deletesubscriberresponsedto.ts index 00b98a0d..c23af1a8 100644 --- a/src/models/components/deletesubscriberresponsedto.ts +++ b/src/models/components/deletesubscriberresponsedto.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * The status enum for the performed action @@ -89,3 +92,23 @@ export namespace DeleteSubscriberResponseDto$ { /** @deprecated use `DeleteSubscriberResponseDto$Outbound` instead. */ export type Outbound = DeleteSubscriberResponseDto$Outbound; } + +export function deleteSubscriberResponseDtoToJSON( + deleteSubscriberResponseDto: DeleteSubscriberResponseDto, +): string { + return JSON.stringify( + DeleteSubscriberResponseDto$outboundSchema.parse( + deleteSubscriberResponseDto, + ), + ); +} + +export function deleteSubscriberResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeleteSubscriberResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeleteSubscriberResponseDto' from JSON`, + ); +} diff --git a/src/models/components/digestregularmetadata.ts b/src/models/components/digestregularmetadata.ts index 67c8f1f4..f59bcbc9 100644 --- a/src/models/components/digestregularmetadata.ts +++ b/src/models/components/digestregularmetadata.ts @@ -3,9 +3,12 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export const BackoffUnit = { +export const Unit = { Seconds: "seconds", Minutes: "minutes", Hours: "hours", @@ -13,7 +16,7 @@ export const BackoffUnit = { Weeks: "weeks", Months: "months", } as const; -export type BackoffUnit = ClosedEnum; +export type Unit = ClosedEnum; export const DigestRegularMetadataType = { Regular: "regular", @@ -23,7 +26,7 @@ export type DigestRegularMetadataType = ClosedEnum< typeof DigestRegularMetadataType >; -export const DigestRegularMetadataUnit = { +export const BackoffUnit = { Seconds: "seconds", Minutes: "minutes", Hours: "hours", @@ -31,38 +34,37 @@ export const DigestRegularMetadataUnit = { Weeks: "weeks", Months: "months", } as const; -export type DigestRegularMetadataUnit = ClosedEnum< - typeof DigestRegularMetadataUnit ->; +export type BackoffUnit = ClosedEnum; export type DigestRegularMetadata = { amount?: number | undefined; + unit?: Unit | undefined; + digestKey?: string | undefined; + type: DigestRegularMetadataType; backoff?: boolean | undefined; backoffAmount?: number | undefined; backoffUnit?: BackoffUnit | undefined; - digestKey?: string | undefined; - type: DigestRegularMetadataType; - unit?: DigestRegularMetadataUnit | undefined; updateMode?: boolean | undefined; }; /** @internal */ -export const BackoffUnit$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(BackoffUnit); +export const Unit$inboundSchema: z.ZodNativeEnum = z.nativeEnum( + Unit, +); /** @internal */ -export const BackoffUnit$outboundSchema: z.ZodNativeEnum = - BackoffUnit$inboundSchema; +export const Unit$outboundSchema: z.ZodNativeEnum = + Unit$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace BackoffUnit$ { - /** @deprecated use `BackoffUnit$inboundSchema` instead. */ - export const inboundSchema = BackoffUnit$inboundSchema; - /** @deprecated use `BackoffUnit$outboundSchema` instead. */ - export const outboundSchema = BackoffUnit$outboundSchema; +export namespace Unit$ { + /** @deprecated use `Unit$inboundSchema` instead. */ + export const inboundSchema = Unit$inboundSchema; + /** @deprecated use `Unit$outboundSchema` instead. */ + export const outboundSchema = Unit$outboundSchema; } /** @internal */ @@ -87,24 +89,22 @@ export namespace DigestRegularMetadataType$ { } /** @internal */ -export const DigestRegularMetadataUnit$inboundSchema: z.ZodNativeEnum< - typeof DigestRegularMetadataUnit -> = z.nativeEnum(DigestRegularMetadataUnit); +export const BackoffUnit$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(BackoffUnit); /** @internal */ -export const DigestRegularMetadataUnit$outboundSchema: z.ZodNativeEnum< - typeof DigestRegularMetadataUnit -> = DigestRegularMetadataUnit$inboundSchema; +export const BackoffUnit$outboundSchema: z.ZodNativeEnum = + BackoffUnit$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace DigestRegularMetadataUnit$ { - /** @deprecated use `DigestRegularMetadataUnit$inboundSchema` instead. */ - export const inboundSchema = DigestRegularMetadataUnit$inboundSchema; - /** @deprecated use `DigestRegularMetadataUnit$outboundSchema` instead. */ - export const outboundSchema = DigestRegularMetadataUnit$outboundSchema; +export namespace BackoffUnit$ { + /** @deprecated use `BackoffUnit$inboundSchema` instead. */ + export const inboundSchema = BackoffUnit$inboundSchema; + /** @deprecated use `BackoffUnit$outboundSchema` instead. */ + export const outboundSchema = BackoffUnit$outboundSchema; } /** @internal */ @@ -114,24 +114,24 @@ export const DigestRegularMetadata$inboundSchema: z.ZodType< unknown > = z.object({ amount: z.number().optional(), + unit: Unit$inboundSchema.optional(), + digestKey: z.string().optional(), + type: DigestRegularMetadataType$inboundSchema, backoff: z.boolean().optional(), backoffAmount: z.number().optional(), backoffUnit: BackoffUnit$inboundSchema.optional(), - digestKey: z.string().optional(), - type: DigestRegularMetadataType$inboundSchema, - unit: DigestRegularMetadataUnit$inboundSchema.optional(), updateMode: z.boolean().optional(), }); /** @internal */ export type DigestRegularMetadata$Outbound = { amount?: number | undefined; + unit?: string | undefined; + digestKey?: string | undefined; + type: string; backoff?: boolean | undefined; backoffAmount?: number | undefined; backoffUnit?: string | undefined; - digestKey?: string | undefined; - type: string; - unit?: string | undefined; updateMode?: boolean | undefined; }; @@ -142,12 +142,12 @@ export const DigestRegularMetadata$outboundSchema: z.ZodType< DigestRegularMetadata > = z.object({ amount: z.number().optional(), + unit: Unit$outboundSchema.optional(), + digestKey: z.string().optional(), + type: DigestRegularMetadataType$outboundSchema, backoff: z.boolean().optional(), backoffAmount: z.number().optional(), backoffUnit: BackoffUnit$outboundSchema.optional(), - digestKey: z.string().optional(), - type: DigestRegularMetadataType$outboundSchema, - unit: DigestRegularMetadataUnit$outboundSchema.optional(), updateMode: z.boolean().optional(), }); @@ -163,3 +163,21 @@ export namespace DigestRegularMetadata$ { /** @deprecated use `DigestRegularMetadata$Outbound` instead. */ export type Outbound = DigestRegularMetadata$Outbound; } + +export function digestRegularMetadataToJSON( + digestRegularMetadata: DigestRegularMetadata, +): string { + return JSON.stringify( + DigestRegularMetadata$outboundSchema.parse(digestRegularMetadata), + ); +} + +export function digestRegularMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DigestRegularMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DigestRegularMetadata' from JSON`, + ); +} diff --git a/src/models/components/digesttimedmetadata.ts b/src/models/components/digesttimedmetadata.ts index 789d20cc..05b25a8c 100644 --- a/src/models/components/digesttimedmetadata.ts +++ b/src/models/components/digesttimedmetadata.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { TimedConfig, TimedConfig$inboundSchema, @@ -11,13 +14,6 @@ import { TimedConfig$outboundSchema, } from "./timedconfig.js"; -export const DigestTimedMetadataType = { - Timed: "timed", -} as const; -export type DigestTimedMetadataType = ClosedEnum< - typeof DigestTimedMetadataType ->; - export const DigestTimedMetadataUnit = { Seconds: "seconds", Minutes: "minutes", @@ -30,35 +26,21 @@ export type DigestTimedMetadataUnit = ClosedEnum< typeof DigestTimedMetadataUnit >; +export const DigestTimedMetadataType = { + Timed: "timed", +} as const; +export type DigestTimedMetadataType = ClosedEnum< + typeof DigestTimedMetadataType +>; + export type DigestTimedMetadata = { amount?: number | undefined; + unit?: DigestTimedMetadataUnit | undefined; digestKey?: string | undefined; - timed?: TimedConfig | undefined; type: DigestTimedMetadataType; - unit?: DigestTimedMetadataUnit | undefined; + timed?: TimedConfig | undefined; }; -/** @internal */ -export const DigestTimedMetadataType$inboundSchema: z.ZodNativeEnum< - typeof DigestTimedMetadataType -> = z.nativeEnum(DigestTimedMetadataType); - -/** @internal */ -export const DigestTimedMetadataType$outboundSchema: z.ZodNativeEnum< - typeof DigestTimedMetadataType -> = DigestTimedMetadataType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DigestTimedMetadataType$ { - /** @deprecated use `DigestTimedMetadataType$inboundSchema` instead. */ - export const inboundSchema = DigestTimedMetadataType$inboundSchema; - /** @deprecated use `DigestTimedMetadataType$outboundSchema` instead. */ - export const outboundSchema = DigestTimedMetadataType$outboundSchema; -} - /** @internal */ export const DigestTimedMetadataUnit$inboundSchema: z.ZodNativeEnum< typeof DigestTimedMetadataUnit @@ -80,6 +62,27 @@ export namespace DigestTimedMetadataUnit$ { export const outboundSchema = DigestTimedMetadataUnit$outboundSchema; } +/** @internal */ +export const DigestTimedMetadataType$inboundSchema: z.ZodNativeEnum< + typeof DigestTimedMetadataType +> = z.nativeEnum(DigestTimedMetadataType); + +/** @internal */ +export const DigestTimedMetadataType$outboundSchema: z.ZodNativeEnum< + typeof DigestTimedMetadataType +> = DigestTimedMetadataType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DigestTimedMetadataType$ { + /** @deprecated use `DigestTimedMetadataType$inboundSchema` instead. */ + export const inboundSchema = DigestTimedMetadataType$inboundSchema; + /** @deprecated use `DigestTimedMetadataType$outboundSchema` instead. */ + export const outboundSchema = DigestTimedMetadataType$outboundSchema; +} + /** @internal */ export const DigestTimedMetadata$inboundSchema: z.ZodType< DigestTimedMetadata, @@ -87,19 +90,19 @@ export const DigestTimedMetadata$inboundSchema: z.ZodType< unknown > = z.object({ amount: z.number().optional(), + unit: DigestTimedMetadataUnit$inboundSchema.optional(), digestKey: z.string().optional(), - timed: TimedConfig$inboundSchema.optional(), type: DigestTimedMetadataType$inboundSchema, - unit: DigestTimedMetadataUnit$inboundSchema.optional(), + timed: TimedConfig$inboundSchema.optional(), }); /** @internal */ export type DigestTimedMetadata$Outbound = { amount?: number | undefined; + unit?: string | undefined; digestKey?: string | undefined; - timed?: TimedConfig$Outbound | undefined; type: string; - unit?: string | undefined; + timed?: TimedConfig$Outbound | undefined; }; /** @internal */ @@ -109,10 +112,10 @@ export const DigestTimedMetadata$outboundSchema: z.ZodType< DigestTimedMetadata > = z.object({ amount: z.number().optional(), + unit: DigestTimedMetadataUnit$outboundSchema.optional(), digestKey: z.string().optional(), - timed: TimedConfig$outboundSchema.optional(), type: DigestTimedMetadataType$outboundSchema, - unit: DigestTimedMetadataUnit$outboundSchema.optional(), + timed: TimedConfig$outboundSchema.optional(), }); /** @@ -127,3 +130,21 @@ export namespace DigestTimedMetadata$ { /** @deprecated use `DigestTimedMetadata$Outbound` instead. */ export type Outbound = DigestTimedMetadata$Outbound; } + +export function digestTimedMetadataToJSON( + digestTimedMetadata: DigestTimedMetadata, +): string { + return JSON.stringify( + DigestTimedMetadata$outboundSchema.parse(digestTimedMetadata), + ); +} + +export function digestTimedMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DigestTimedMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DigestTimedMetadata' from JSON`, + ); +} diff --git a/src/models/components/emailblock.ts b/src/models/components/emailblock.ts index b8da5de8..1f59f8be 100644 --- a/src/models/components/emailblock.ts +++ b/src/models/components/emailblock.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { EmailBlockStyles, EmailBlockStyles$inboundSchema, @@ -18,10 +21,10 @@ export const EmailBlockType = { export type EmailBlockType = ClosedEnum; export type EmailBlock = { - content: string; - styles?: EmailBlockStyles | undefined; type: EmailBlockType; + content: string; url?: string | undefined; + styles?: EmailBlockStyles | undefined; }; /** @internal */ @@ -51,18 +54,18 @@ export const EmailBlock$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - content: z.string(), - styles: EmailBlockStyles$inboundSchema.optional(), type: EmailBlockType$inboundSchema, + content: z.string(), url: z.string().optional(), + styles: EmailBlockStyles$inboundSchema.optional(), }); /** @internal */ export type EmailBlock$Outbound = { - content: string; - styles?: EmailBlockStyles$Outbound | undefined; type: string; + content: string; url?: string | undefined; + styles?: EmailBlockStyles$Outbound | undefined; }; /** @internal */ @@ -71,10 +74,10 @@ export const EmailBlock$outboundSchema: z.ZodType< z.ZodTypeDef, EmailBlock > = z.object({ - content: z.string(), - styles: EmailBlockStyles$outboundSchema.optional(), type: EmailBlockType$outboundSchema, + content: z.string(), url: z.string().optional(), + styles: EmailBlockStyles$outboundSchema.optional(), }); /** @@ -89,3 +92,17 @@ export namespace EmailBlock$ { /** @deprecated use `EmailBlock$Outbound` instead. */ export type Outbound = EmailBlock$Outbound; } + +export function emailBlockToJSON(emailBlock: EmailBlock): string { + return JSON.stringify(EmailBlock$outboundSchema.parse(emailBlock)); +} + +export function emailBlockFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EmailBlock$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EmailBlock' from JSON`, + ); +} diff --git a/src/models/components/emailblockstyles.ts b/src/models/components/emailblockstyles.ts index 9416a9b5..7771a9ba 100644 --- a/src/models/components/emailblockstyles.ts +++ b/src/models/components/emailblockstyles.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const TextAlign = { Center: "center", @@ -70,3 +73,21 @@ export namespace EmailBlockStyles$ { /** @deprecated use `EmailBlockStyles$Outbound` instead. */ export type Outbound = EmailBlockStyles$Outbound; } + +export function emailBlockStylesToJSON( + emailBlockStyles: EmailBlockStyles, +): string { + return JSON.stringify( + EmailBlockStyles$outboundSchema.parse(emailBlockStyles), + ); +} + +export function emailBlockStylesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EmailBlockStyles$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EmailBlockStyles' from JSON`, + ); +} diff --git a/src/models/components/environmentresponsedto.ts b/src/models/components/environmentresponsedto.ts index dd6faae2..34a022ea 100644 --- a/src/models/components/environmentresponsedto.ts +++ b/src/models/components/environmentresponsedto.ts @@ -4,14 +4,18 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type EnvironmentResponseDto = { id?: string | undefined; + name: string; organizationId: string; - parentId: string; - apiKeys?: Array | undefined; identifier: string; - name: string; + apiKeys?: Array | undefined; + parentId: string; + slug?: string | undefined; }; /** @internal */ @@ -21,11 +25,12 @@ export const EnvironmentResponseDto$inboundSchema: z.ZodType< unknown > = z.object({ _id: z.string().optional(), + name: z.string(), _organizationId: z.string(), - _parentId: z.string(), - apiKeys: z.array(z.string()).optional(), identifier: z.string(), - name: z.string(), + apiKeys: z.array(z.string()).optional(), + _parentId: z.string(), + slug: z.string().optional(), }).transform((v) => { return remap$(v, { "_id": "id", @@ -37,11 +42,12 @@ export const EnvironmentResponseDto$inboundSchema: z.ZodType< /** @internal */ export type EnvironmentResponseDto$Outbound = { _id?: string | undefined; + name: string; _organizationId: string; - _parentId: string; - apiKeys?: Array | undefined; identifier: string; - name: string; + apiKeys?: Array | undefined; + _parentId: string; + slug?: string | undefined; }; /** @internal */ @@ -51,11 +57,12 @@ export const EnvironmentResponseDto$outboundSchema: z.ZodType< EnvironmentResponseDto > = z.object({ id: z.string().optional(), + name: z.string(), organizationId: z.string(), - parentId: z.string(), - apiKeys: z.array(z.string()).optional(), identifier: z.string(), - name: z.string(), + apiKeys: z.array(z.string()).optional(), + parentId: z.string(), + slug: z.string().optional(), }).transform((v) => { return remap$(v, { id: "_id", @@ -76,3 +83,21 @@ export namespace EnvironmentResponseDto$ { /** @deprecated use `EnvironmentResponseDto$Outbound` instead. */ export type Outbound = EnvironmentResponseDto$Outbound; } + +export function environmentResponseDtoToJSON( + environmentResponseDto: EnvironmentResponseDto, +): string { + return JSON.stringify( + EnvironmentResponseDto$outboundSchema.parse(environmentResponseDto), + ); +} + +export function environmentResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EnvironmentResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EnvironmentResponseDto' from JSON`, + ); +} diff --git a/src/models/components/executiondetailsresponsedto.ts b/src/models/components/executiondetailsresponsedto.ts index fcd14bbb..4f9059c9 100644 --- a/src/models/components/executiondetailsresponsedto.ts +++ b/src/models/components/executiondetailsresponsedto.ts @@ -4,9 +4,12 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export const ExecutionDetailsResponseDtoChannel = { +export const Channel = { InApp: "in_app", Email: "email", Sms: "sms", @@ -17,9 +20,7 @@ export const ExecutionDetailsResponseDtoChannel = { Delay: "delay", Custom: "custom", } as const; -export type ExecutionDetailsResponseDtoChannel = ClosedEnum< - typeof ExecutionDetailsResponseDtoChannel ->; +export type Channel = ClosedEnum; export const Source = { Credentials: "Credentials", @@ -29,7 +30,7 @@ export const Source = { } as const; export type Source = ClosedEnum; -export const ExecutionDetailsResponseDtoStatus = { +export const Status = { Success: "Success", Warning: "Warning", Failed: "Failed", @@ -37,50 +38,45 @@ export const ExecutionDetailsResponseDtoStatus = { Queued: "Queued", ReadConfirmation: "ReadConfirmation", } as const; -export type ExecutionDetailsResponseDtoStatus = ClosedEnum< - typeof ExecutionDetailsResponseDtoStatus ->; +export type Status = ClosedEnum; export type ExecutionDetailsResponseDto = { - environmentId: string; id?: string | undefined; + organizationId: string; jobId: string; - messageId?: string | undefined; + environmentId: string; notificationId: string; notificationTemplateId: string; - organizationId: string; subscriberId: string; - channel: ExecutionDetailsResponseDtoChannel; - createdAt?: string | undefined; - detail: string; - isRetry: boolean; - isTest: boolean; + messageId?: string | undefined; providerId?: string | undefined; - source: Source; - status: ExecutionDetailsResponseDtoStatus; transactionId: string; + channel: Channel; + detail: string; + source: Source; + status: Status; + isTest: boolean; + isRetry: boolean; + createdAt?: string | undefined; }; /** @internal */ -export const ExecutionDetailsResponseDtoChannel$inboundSchema: z.ZodNativeEnum< - typeof ExecutionDetailsResponseDtoChannel -> = z.nativeEnum(ExecutionDetailsResponseDtoChannel); +export const Channel$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Channel); /** @internal */ -export const ExecutionDetailsResponseDtoChannel$outboundSchema: z.ZodNativeEnum< - typeof ExecutionDetailsResponseDtoChannel -> = ExecutionDetailsResponseDtoChannel$inboundSchema; +export const Channel$outboundSchema: z.ZodNativeEnum = + Channel$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace ExecutionDetailsResponseDtoChannel$ { - /** @deprecated use `ExecutionDetailsResponseDtoChannel$inboundSchema` instead. */ - export const inboundSchema = ExecutionDetailsResponseDtoChannel$inboundSchema; - /** @deprecated use `ExecutionDetailsResponseDtoChannel$outboundSchema` instead. */ - export const outboundSchema = - ExecutionDetailsResponseDtoChannel$outboundSchema; +export namespace Channel$ { + /** @deprecated use `Channel$inboundSchema` instead. */ + export const inboundSchema = Channel$inboundSchema; + /** @deprecated use `Channel$outboundSchema` instead. */ + export const outboundSchema = Channel$outboundSchema; } /** @internal */ @@ -103,25 +99,22 @@ export namespace Source$ { } /** @internal */ -export const ExecutionDetailsResponseDtoStatus$inboundSchema: z.ZodNativeEnum< - typeof ExecutionDetailsResponseDtoStatus -> = z.nativeEnum(ExecutionDetailsResponseDtoStatus); +export const Status$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Status); /** @internal */ -export const ExecutionDetailsResponseDtoStatus$outboundSchema: z.ZodNativeEnum< - typeof ExecutionDetailsResponseDtoStatus -> = ExecutionDetailsResponseDtoStatus$inboundSchema; +export const Status$outboundSchema: z.ZodNativeEnum = + Status$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace ExecutionDetailsResponseDtoStatus$ { - /** @deprecated use `ExecutionDetailsResponseDtoStatus$inboundSchema` instead. */ - export const inboundSchema = ExecutionDetailsResponseDtoStatus$inboundSchema; - /** @deprecated use `ExecutionDetailsResponseDtoStatus$outboundSchema` instead. */ - export const outboundSchema = - ExecutionDetailsResponseDtoStatus$outboundSchema; +export namespace Status$ { + /** @deprecated use `Status$inboundSchema` instead. */ + export const inboundSchema = Status$inboundSchema; + /** @deprecated use `Status$outboundSchema` instead. */ + export const outboundSchema = Status$outboundSchema; } /** @internal */ @@ -130,55 +123,55 @@ export const ExecutionDetailsResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), + _organizationId: z.string(), _jobId: z.string(), - _messageId: z.string().optional(), + _environmentId: z.string(), _notificationId: z.string(), _notificationTemplateId: z.string(), - _organizationId: z.string(), _subscriberId: z.string(), - channel: ExecutionDetailsResponseDtoChannel$inboundSchema, - createdAt: z.string().optional(), - detail: z.string(), - isRetry: z.boolean(), - isTest: z.boolean(), + _messageId: z.string().optional(), providerId: z.string().optional(), - source: Source$inboundSchema, - status: ExecutionDetailsResponseDtoStatus$inboundSchema, transactionId: z.string(), + channel: Channel$inboundSchema, + detail: z.string(), + source: Source$inboundSchema, + status: Status$inboundSchema, + isTest: z.boolean(), + isRetry: z.boolean(), + createdAt: z.string().optional(), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", + "_organizationId": "organizationId", "_jobId": "jobId", - "_messageId": "messageId", + "_environmentId": "environmentId", "_notificationId": "notificationId", "_notificationTemplateId": "notificationTemplateId", - "_organizationId": "organizationId", "_subscriberId": "subscriberId", + "_messageId": "messageId", }); }); /** @internal */ export type ExecutionDetailsResponseDto$Outbound = { - _environmentId: string; _id?: string | undefined; + _organizationId: string; _jobId: string; - _messageId?: string | undefined; + _environmentId: string; _notificationId: string; _notificationTemplateId: string; - _organizationId: string; _subscriberId: string; + _messageId?: string | undefined; + providerId?: string | undefined; + transactionId: string; channel: string; - createdAt?: string | undefined; detail: string; - isRetry: boolean; - isTest: boolean; - providerId?: string | undefined; source: string; status: string; - transactionId: string; + isTest: boolean; + isRetry: boolean; + createdAt?: string | undefined; }; /** @internal */ @@ -187,33 +180,33 @@ export const ExecutionDetailsResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, ExecutionDetailsResponseDto > = z.object({ - environmentId: z.string(), id: z.string().optional(), + organizationId: z.string(), jobId: z.string(), - messageId: z.string().optional(), + environmentId: z.string(), notificationId: z.string(), notificationTemplateId: z.string(), - organizationId: z.string(), subscriberId: z.string(), - channel: ExecutionDetailsResponseDtoChannel$outboundSchema, - createdAt: z.string().optional(), - detail: z.string(), - isRetry: z.boolean(), - isTest: z.boolean(), + messageId: z.string().optional(), providerId: z.string().optional(), - source: Source$outboundSchema, - status: ExecutionDetailsResponseDtoStatus$outboundSchema, transactionId: z.string(), + channel: Channel$outboundSchema, + detail: z.string(), + source: Source$outboundSchema, + status: Status$outboundSchema, + isTest: z.boolean(), + isRetry: z.boolean(), + createdAt: z.string().optional(), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", + organizationId: "_organizationId", jobId: "_jobId", - messageId: "_messageId", + environmentId: "_environmentId", notificationId: "_notificationId", notificationTemplateId: "_notificationTemplateId", - organizationId: "_organizationId", subscriberId: "_subscriberId", + messageId: "_messageId", }); }); @@ -229,3 +222,23 @@ export namespace ExecutionDetailsResponseDto$ { /** @deprecated use `ExecutionDetailsResponseDto$Outbound` instead. */ export type Outbound = ExecutionDetailsResponseDto$Outbound; } + +export function executionDetailsResponseDtoToJSON( + executionDetailsResponseDto: ExecutionDetailsResponseDto, +): string { + return JSON.stringify( + ExecutionDetailsResponseDto$outboundSchema.parse( + executionDetailsResponseDto, + ), + ); +} + +export function executionDetailsResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ExecutionDetailsResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ExecutionDetailsResponseDto' from JSON`, + ); +} diff --git a/src/models/components/feedresponsedto.ts b/src/models/components/feedresponsedto.ts index 3f09d4e1..dd231d97 100644 --- a/src/models/components/feedresponsedto.ts +++ b/src/models/components/feedresponsedto.ts @@ -3,13 +3,16 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type FeedResponseDto = { - data: Array; + totalCount?: number | undefined; hasMore: boolean; - page: number; + data: Array; pageSize: number; - totalCount?: number | undefined; + page: number; }; /** @internal */ @@ -18,20 +21,20 @@ export const FeedResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - data: z.array(z.string()), + totalCount: z.number().optional(), hasMore: z.boolean(), - page: z.number(), + data: z.array(z.string()), pageSize: z.number(), - totalCount: z.number().optional(), + page: z.number(), }); /** @internal */ export type FeedResponseDto$Outbound = { - data: Array; + totalCount?: number | undefined; hasMore: boolean; - page: number; + data: Array; pageSize: number; - totalCount?: number | undefined; + page: number; }; /** @internal */ @@ -40,11 +43,11 @@ export const FeedResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, FeedResponseDto > = z.object({ - data: z.array(z.string()), + totalCount: z.number().optional(), hasMore: z.boolean(), - page: z.number(), + data: z.array(z.string()), pageSize: z.number(), - totalCount: z.number().optional(), + page: z.number(), }); /** @@ -59,3 +62,19 @@ export namespace FeedResponseDto$ { /** @deprecated use `FeedResponseDto$Outbound` instead. */ export type Outbound = FeedResponseDto$Outbound; } + +export function feedResponseDtoToJSON( + feedResponseDto: FeedResponseDto, +): string { + return JSON.stringify(FeedResponseDto$outboundSchema.parse(feedResponseDto)); +} + +export function feedResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FeedResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FeedResponseDto' from JSON`, + ); +} diff --git a/src/models/components/fieldfilterpart.ts b/src/models/components/fieldfilterpart.ts index 6bdd95c5..80796872 100644 --- a/src/models/components/fieldfilterpart.ts +++ b/src/models/components/fieldfilterpart.ts @@ -3,13 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; - -export const On = { - Subscriber: "subscriber", - Payload: "payload", -} as const; -export type On = ClosedEnum; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const Operator = { Larger: "LARGER", @@ -29,47 +26,53 @@ export const Operator = { } as const; export type Operator = ClosedEnum; +export const On = { + Subscriber: "subscriber", + Payload: "payload", +} as const; +export type On = ClosedEnum; + export type FieldFilterPart = { field: string; - on: On; - operator: Operator; value: string; + operator: Operator; + on: On; }; /** @internal */ -export const On$inboundSchema: z.ZodNativeEnum = z.nativeEnum(On); +export const Operator$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Operator); /** @internal */ -export const On$outboundSchema: z.ZodNativeEnum = On$inboundSchema; +export const Operator$outboundSchema: z.ZodNativeEnum = + Operator$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace On$ { - /** @deprecated use `On$inboundSchema` instead. */ - export const inboundSchema = On$inboundSchema; - /** @deprecated use `On$outboundSchema` instead. */ - export const outboundSchema = On$outboundSchema; +export namespace Operator$ { + /** @deprecated use `Operator$inboundSchema` instead. */ + export const inboundSchema = Operator$inboundSchema; + /** @deprecated use `Operator$outboundSchema` instead. */ + export const outboundSchema = Operator$outboundSchema; } /** @internal */ -export const Operator$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Operator); +export const On$inboundSchema: z.ZodNativeEnum = z.nativeEnum(On); /** @internal */ -export const Operator$outboundSchema: z.ZodNativeEnum = - Operator$inboundSchema; +export const On$outboundSchema: z.ZodNativeEnum = On$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Operator$ { - /** @deprecated use `Operator$inboundSchema` instead. */ - export const inboundSchema = Operator$inboundSchema; - /** @deprecated use `Operator$outboundSchema` instead. */ - export const outboundSchema = Operator$outboundSchema; +export namespace On$ { + /** @deprecated use `On$inboundSchema` instead. */ + export const inboundSchema = On$inboundSchema; + /** @deprecated use `On$outboundSchema` instead. */ + export const outboundSchema = On$outboundSchema; } /** @internal */ @@ -79,17 +82,17 @@ export const FieldFilterPart$inboundSchema: z.ZodType< unknown > = z.object({ field: z.string(), - on: On$inboundSchema, - operator: Operator$inboundSchema, value: z.string(), + operator: Operator$inboundSchema, + on: On$inboundSchema, }); /** @internal */ export type FieldFilterPart$Outbound = { field: string; - on: string; - operator: string; value: string; + operator: string; + on: string; }; /** @internal */ @@ -99,9 +102,9 @@ export const FieldFilterPart$outboundSchema: z.ZodType< FieldFilterPart > = z.object({ field: z.string(), - on: On$outboundSchema, - operator: Operator$outboundSchema, value: z.string(), + operator: Operator$outboundSchema, + on: On$outboundSchema, }); /** @@ -116,3 +119,19 @@ export namespace FieldFilterPart$ { /** @deprecated use `FieldFilterPart$Outbound` instead. */ export type Outbound = FieldFilterPart$Outbound; } + +export function fieldFilterPartToJSON( + fieldFilterPart: FieldFilterPart, +): string { + return JSON.stringify(FieldFilterPart$outboundSchema.parse(fieldFilterPart)); +} + +export function fieldFilterPartFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FieldFilterPart$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FieldFilterPart' from JSON`, + ); +} diff --git a/src/models/components/filtertopicsresponsedto.ts b/src/models/components/filtertopicsresponsedto.ts index 58eed1ba..ca44b57f 100644 --- a/src/models/components/filtertopicsresponsedto.ts +++ b/src/models/components/filtertopicsresponsedto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { TopicDto, TopicDto$inboundSchema, @@ -61,3 +64,21 @@ export namespace FilterTopicsResponseDto$ { /** @deprecated use `FilterTopicsResponseDto$Outbound` instead. */ export type Outbound = FilterTopicsResponseDto$Outbound; } + +export function filterTopicsResponseDtoToJSON( + filterTopicsResponseDto: FilterTopicsResponseDto, +): string { + return JSON.stringify( + FilterTopicsResponseDto$outboundSchema.parse(filterTopicsResponseDto), + ); +} + +export function filterTopicsResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FilterTopicsResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FilterTopicsResponseDto' from JSON`, + ); +} diff --git a/src/models/components/getsubscriberpreferencesresponsedto.ts b/src/models/components/getsubscriberpreferencesresponsedto.ts index da059c82..23eaa71f 100644 --- a/src/models/components/getsubscriberpreferencesresponsedto.ts +++ b/src/models/components/getsubscriberpreferencesresponsedto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { Preference, Preference$inboundSchema, @@ -17,14 +20,14 @@ import { } from "./templateresponse.js"; export type GetSubscriberPreferencesResponseDto = { - /** - * The preferences of the subscriber regarding the related workflow - */ - preference: Preference; /** * The workflow information and if it is critical or not */ template?: TemplateResponse | undefined; + /** + * The preferences of the subscriber regarding the related workflow + */ + preference: Preference; }; /** @internal */ @@ -33,14 +36,14 @@ export const GetSubscriberPreferencesResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - preference: Preference$inboundSchema, template: TemplateResponse$inboundSchema.optional(), + preference: Preference$inboundSchema, }); /** @internal */ export type GetSubscriberPreferencesResponseDto$Outbound = { - preference: Preference$Outbound; template?: TemplateResponse$Outbound | undefined; + preference: Preference$Outbound; }; /** @internal */ @@ -49,8 +52,8 @@ export const GetSubscriberPreferencesResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, GetSubscriberPreferencesResponseDto > = z.object({ - preference: Preference$outboundSchema, template: TemplateResponse$outboundSchema.optional(), + preference: Preference$outboundSchema, }); /** @@ -67,3 +70,24 @@ export namespace GetSubscriberPreferencesResponseDto$ { /** @deprecated use `GetSubscriberPreferencesResponseDto$Outbound` instead. */ export type Outbound = GetSubscriberPreferencesResponseDto$Outbound; } + +export function getSubscriberPreferencesResponseDtoToJSON( + getSubscriberPreferencesResponseDto: GetSubscriberPreferencesResponseDto, +): string { + return JSON.stringify( + GetSubscriberPreferencesResponseDto$outboundSchema.parse( + getSubscriberPreferencesResponseDto, + ), + ); +} + +export function getSubscriberPreferencesResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + GetSubscriberPreferencesResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetSubscriberPreferencesResponseDto' from JSON`, + ); +} diff --git a/src/models/components/gettopicresponsedto.ts b/src/models/components/gettopicresponsedto.ts index 37f92c66..d99b61c4 100644 --- a/src/models/components/gettopicresponsedto.ts +++ b/src/models/components/gettopicresponsedto.ts @@ -4,11 +4,14 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type GetTopicResponseDto = { - environmentId: string; id?: string | undefined; organizationId: string; + environmentId: string; key: string; name: string; subscribers: Array; @@ -20,25 +23,25 @@ export const GetTopicResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), _organizationId: z.string(), + _environmentId: z.string(), key: z.string(), name: z.string(), subscribers: z.array(z.string()), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", "_organizationId": "organizationId", + "_environmentId": "environmentId", }); }); /** @internal */ export type GetTopicResponseDto$Outbound = { - _environmentId: string; _id?: string | undefined; _organizationId: string; + _environmentId: string; key: string; name: string; subscribers: Array; @@ -50,17 +53,17 @@ export const GetTopicResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, GetTopicResponseDto > = z.object({ - environmentId: z.string(), id: z.string().optional(), organizationId: z.string(), + environmentId: z.string(), key: z.string(), name: z.string(), subscribers: z.array(z.string()), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", organizationId: "_organizationId", + environmentId: "_environmentId", }); }); @@ -76,3 +79,21 @@ export namespace GetTopicResponseDto$ { /** @deprecated use `GetTopicResponseDto$Outbound` instead. */ export type Outbound = GetTopicResponseDto$Outbound; } + +export function getTopicResponseDtoToJSON( + getTopicResponseDto: GetTopicResponseDto, +): string { + return JSON.stringify( + GetTopicResponseDto$outboundSchema.parse(getTopicResponseDto), + ); +} + +export function getTopicResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetTopicResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetTopicResponseDto' from JSON`, + ); +} diff --git a/src/models/components/index.ts b/src/models/components/index.ts index 74ba9aa3..9d1489e2 100644 --- a/src/models/components/index.ts +++ b/src/models/components/index.ts @@ -10,28 +10,18 @@ export * from "./activitynotificationtemplateresponsedto.js"; export * from "./activitystatsresponsedto.js"; export * from "./addsubscribersrequestdto.js"; export * from "./apikey.js"; -export * from "./bulkapplychangedto.js"; export * from "./bulksubscribercreatedto.js"; export * from "./bulktriggereventdto.js"; -export * from "./changeresponsedto.js"; -export * from "./changesresponsedto.js"; -export * from "./changeworkflowstatusrequestdto.js"; export * from "./channelcredentials.js"; export * from "./channelpreference.js"; export * from "./channelsettings.js"; -export * from "./createfeedrequestdto.js"; export * from "./createintegrationrequestdto.js"; -export * from "./createlayoutresponsedto.js"; export * from "./createnotificationgrouprequestdto.js"; export * from "./createsubscriberrequestdto.js"; -export * from "./createtenantrequestdto.js"; -export * from "./createtenantresponsedto.js"; export * from "./createtopicrequestdto.js"; export * from "./createtopicresponsedto.js"; -export * from "./createworkflowrequestdto.js"; export * from "./credentialsdto.js"; export * from "./databooleandto.js"; -export * from "./datanumberdto.js"; export * from "./delayregularmetadata.js"; export * from "./delayscheduledmetadata.js"; export * from "./deletemessageresponsedto.js"; @@ -46,9 +36,7 @@ export * from "./executiondetailsresponsedto.js"; export * from "./feedresponsedto.js"; export * from "./fieldfilterpart.js"; export * from "./filtertopicsresponsedto.js"; -export * from "./getlayoutresponsedto.js"; export * from "./getsubscriberpreferencesresponsedto.js"; -export * from "./gettenantresponsedto.js"; export * from "./gettopicresponsedto.js"; export * from "./integrationresponsedto.js"; export * from "./markallmessageasrequestdto.js"; @@ -68,12 +56,9 @@ export * from "./notificationstep.js"; export * from "./notificationstepvariant.js"; export * from "./notificationtrigger.js"; export * from "./notificationtriggervariable.js"; -export * from "./organizationbrandingresponsedto.js"; -export * from "./organizationresponsedto.js"; export * from "./preference.js"; export * from "./preferencechannels.js"; export * from "./removesubscribersrequestdto.js"; -export * from "./renameorganizationdto.js"; export * from "./renametopicrequestdto.js"; export * from "./renametopicresponsedto.js"; export * from "./security.js"; @@ -90,19 +75,11 @@ export * from "./triggereventrequestdto.js"; export * from "./triggereventresponsedto.js"; export * from "./triggereventtoallrequestdto.js"; export * from "./unseencountresponse.js"; -export * from "./updatebrandingdetailsdto.js"; export * from "./updateintegrationrequestdto.js"; -export * from "./updatelayoutrequestdto.js"; -export * from "./updatelayoutresponsedto.js"; export * from "./updatesubscriberchannelrequestdto.js"; export * from "./updatesubscriberglobalpreferencesrequestdto.js"; export * from "./updatesubscriberonlineflagrequestdto.js"; export * from "./updatesubscriberpreferencerequestdto.js"; export * from "./updatesubscriberpreferenceresponsedto.js"; export * from "./updatesubscriberrequestdto.js"; -export * from "./updatetenantrequestdto.js"; -export * from "./updatetenantresponsedto.js"; -export * from "./updateworkflowrequestdto.js"; -export * from "./variablesresponsedto.js"; export * from "./workflowresponse.js"; -export * from "./workflowsresponsedto.js"; diff --git a/src/models/components/integrationresponsedto.ts b/src/models/components/integrationresponsedto.ts index 7bd5ab35..32f14192 100644 --- a/src/models/components/integrationresponsedto.ts +++ b/src/models/components/integrationresponsedto.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { CredentialsDto, CredentialsDto$inboundSchema, @@ -30,20 +33,20 @@ export type IntegrationResponseDtoChannel = ClosedEnum< >; export type IntegrationResponseDto = { - environmentId: string; id?: string | undefined; + environmentId: string; organizationId: string; - active: boolean; + name: string; + identifier: string; + providerId: string; channel: IntegrationResponseDtoChannel; - conditions?: Array | undefined; credentials: CredentialsDto; + active: boolean; deleted: boolean; deletedAt: string; deletedBy: string; - identifier: string; - name: string; primary: boolean; - providerId: string; + conditions?: Array | undefined; }; /** @internal */ @@ -73,44 +76,44 @@ export const IntegrationResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), + _environmentId: z.string(), _organizationId: z.string(), - active: z.boolean(), + name: z.string(), + identifier: z.string(), + providerId: z.string(), channel: IntegrationResponseDtoChannel$inboundSchema, - conditions: z.array(StepFilter$inboundSchema).optional(), credentials: CredentialsDto$inboundSchema, + active: z.boolean(), deleted: z.boolean(), deletedAt: z.string(), deletedBy: z.string(), - identifier: z.string(), - name: z.string(), primary: z.boolean(), - providerId: z.string(), + conditions: z.array(StepFilter$inboundSchema).optional(), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", + "_environmentId": "environmentId", "_organizationId": "organizationId", }); }); /** @internal */ export type IntegrationResponseDto$Outbound = { - _environmentId: string; _id?: string | undefined; + _environmentId: string; _organizationId: string; - active: boolean; + name: string; + identifier: string; + providerId: string; channel: string; - conditions?: Array | undefined; credentials: CredentialsDto$Outbound; + active: boolean; deleted: boolean; deletedAt: string; deletedBy: string; - identifier: string; - name: string; primary: boolean; - providerId: string; + conditions?: Array | undefined; }; /** @internal */ @@ -119,24 +122,24 @@ export const IntegrationResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, IntegrationResponseDto > = z.object({ - environmentId: z.string(), id: z.string().optional(), + environmentId: z.string(), organizationId: z.string(), - active: z.boolean(), + name: z.string(), + identifier: z.string(), + providerId: z.string(), channel: IntegrationResponseDtoChannel$outboundSchema, - conditions: z.array(StepFilter$outboundSchema).optional(), credentials: CredentialsDto$outboundSchema, + active: z.boolean(), deleted: z.boolean(), deletedAt: z.string(), deletedBy: z.string(), - identifier: z.string(), - name: z.string(), primary: z.boolean(), - providerId: z.string(), + conditions: z.array(StepFilter$outboundSchema).optional(), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", + environmentId: "_environmentId", organizationId: "_organizationId", }); }); @@ -153,3 +156,21 @@ export namespace IntegrationResponseDto$ { /** @deprecated use `IntegrationResponseDto$Outbound` instead. */ export type Outbound = IntegrationResponseDto$Outbound; } + +export function integrationResponseDtoToJSON( + integrationResponseDto: IntegrationResponseDto, +): string { + return JSON.stringify( + IntegrationResponseDto$outboundSchema.parse(integrationResponseDto), + ); +} + +export function integrationResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => IntegrationResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'IntegrationResponseDto' from JSON`, + ); +} diff --git a/src/models/components/markallmessageasrequestdto.ts b/src/models/components/markallmessageasrequestdto.ts index 6c0956e1..1258d034 100644 --- a/src/models/components/markallmessageasrequestdto.ts +++ b/src/models/components/markallmessageasrequestdto.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Optional feed identifier or array of feed identifiers @@ -13,7 +16,7 @@ export type FeedIdentifier = string | Array; /** * Mark all subscriber messages as read, unread, seen or unseen */ -export const MarkAs = { +export const MarkAllMessageAsRequestDtoMarkAs = { Read: "read", Seen: "seen", Unread: "unread", @@ -22,7 +25,9 @@ export const MarkAs = { /** * Mark all subscriber messages as read, unread, seen or unseen */ -export type MarkAs = ClosedEnum; +export type MarkAllMessageAsRequestDtoMarkAs = ClosedEnum< + typeof MarkAllMessageAsRequestDtoMarkAs +>; export type MarkAllMessageAsRequestDto = { /** @@ -32,7 +37,7 @@ export type MarkAllMessageAsRequestDto = { /** * Mark all subscriber messages as read, unread, seen or unseen */ - markAs: MarkAs; + markAs: MarkAllMessageAsRequestDtoMarkAs; }; /** @internal */ @@ -65,23 +70,39 @@ export namespace FeedIdentifier$ { export type Outbound = FeedIdentifier$Outbound; } +export function feedIdentifierToJSON(feedIdentifier: FeedIdentifier): string { + return JSON.stringify(FeedIdentifier$outboundSchema.parse(feedIdentifier)); +} + +export function feedIdentifierFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FeedIdentifier$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FeedIdentifier' from JSON`, + ); +} + /** @internal */ -export const MarkAs$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(MarkAs); +export const MarkAllMessageAsRequestDtoMarkAs$inboundSchema: z.ZodNativeEnum< + typeof MarkAllMessageAsRequestDtoMarkAs +> = z.nativeEnum(MarkAllMessageAsRequestDtoMarkAs); /** @internal */ -export const MarkAs$outboundSchema: z.ZodNativeEnum = - MarkAs$inboundSchema; +export const MarkAllMessageAsRequestDtoMarkAs$outboundSchema: z.ZodNativeEnum< + typeof MarkAllMessageAsRequestDtoMarkAs +> = MarkAllMessageAsRequestDtoMarkAs$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace MarkAs$ { - /** @deprecated use `MarkAs$inboundSchema` instead. */ - export const inboundSchema = MarkAs$inboundSchema; - /** @deprecated use `MarkAs$outboundSchema` instead. */ - export const outboundSchema = MarkAs$outboundSchema; +export namespace MarkAllMessageAsRequestDtoMarkAs$ { + /** @deprecated use `MarkAllMessageAsRequestDtoMarkAs$inboundSchema` instead. */ + export const inboundSchema = MarkAllMessageAsRequestDtoMarkAs$inboundSchema; + /** @deprecated use `MarkAllMessageAsRequestDtoMarkAs$outboundSchema` instead. */ + export const outboundSchema = MarkAllMessageAsRequestDtoMarkAs$outboundSchema; } /** @internal */ @@ -91,7 +112,7 @@ export const MarkAllMessageAsRequestDto$inboundSchema: z.ZodType< unknown > = z.object({ feedIdentifier: z.union([z.string(), z.array(z.string())]).optional(), - markAs: MarkAs$inboundSchema, + markAs: MarkAllMessageAsRequestDtoMarkAs$inboundSchema, }); /** @internal */ @@ -107,7 +128,7 @@ export const MarkAllMessageAsRequestDto$outboundSchema: z.ZodType< MarkAllMessageAsRequestDto > = z.object({ feedIdentifier: z.union([z.string(), z.array(z.string())]).optional(), - markAs: MarkAs$outboundSchema, + markAs: MarkAllMessageAsRequestDtoMarkAs$outboundSchema, }); /** @@ -122,3 +143,21 @@ export namespace MarkAllMessageAsRequestDto$ { /** @deprecated use `MarkAllMessageAsRequestDto$Outbound` instead. */ export type Outbound = MarkAllMessageAsRequestDto$Outbound; } + +export function markAllMessageAsRequestDtoToJSON( + markAllMessageAsRequestDto: MarkAllMessageAsRequestDto, +): string { + return JSON.stringify( + MarkAllMessageAsRequestDto$outboundSchema.parse(markAllMessageAsRequestDto), + ); +} + +export function markAllMessageAsRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MarkAllMessageAsRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MarkAllMessageAsRequestDto' from JSON`, + ); +} diff --git a/src/models/components/markmessageactionasseendto.ts b/src/models/components/markmessageactionasseendto.ts index 65444aa2..4476a8f5 100644 --- a/src/models/components/markmessageactionasseendto.ts +++ b/src/models/components/markmessageactionasseendto.ts @@ -3,12 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; - -/** - * Message action payload - */ -export type Payload = {}; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Message action status @@ -24,44 +22,22 @@ export type MarkMessageActionAsSeenDtoStatus = ClosedEnum< typeof MarkMessageActionAsSeenDtoStatus >; +/** + * Message action payload + */ +export type MarkMessageActionAsSeenDtoPayload = {}; + export type MarkMessageActionAsSeenDto = { - /** - * Message action payload - */ - payload?: Payload | undefined; /** * Message action status */ status: MarkMessageActionAsSeenDtoStatus; + /** + * Message action payload + */ + payload?: MarkMessageActionAsSeenDtoPayload | undefined; }; -/** @internal */ -export const Payload$inboundSchema: z.ZodType = - z.object({}); - -/** @internal */ -export type Payload$Outbound = {}; - -/** @internal */ -export const Payload$outboundSchema: z.ZodType< - Payload$Outbound, - z.ZodTypeDef, - Payload -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Payload$ { - /** @deprecated use `Payload$inboundSchema` instead. */ - export const inboundSchema = Payload$inboundSchema; - /** @deprecated use `Payload$outboundSchema` instead. */ - export const outboundSchema = Payload$outboundSchema; - /** @deprecated use `Payload$Outbound` instead. */ - export type Outbound = Payload$Outbound; -} - /** @internal */ export const MarkMessageActionAsSeenDtoStatus$inboundSchema: z.ZodNativeEnum< typeof MarkMessageActionAsSeenDtoStatus @@ -83,20 +59,72 @@ export namespace MarkMessageActionAsSeenDtoStatus$ { export const outboundSchema = MarkMessageActionAsSeenDtoStatus$outboundSchema; } +/** @internal */ +export const MarkMessageActionAsSeenDtoPayload$inboundSchema: z.ZodType< + MarkMessageActionAsSeenDtoPayload, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type MarkMessageActionAsSeenDtoPayload$Outbound = {}; + +/** @internal */ +export const MarkMessageActionAsSeenDtoPayload$outboundSchema: z.ZodType< + MarkMessageActionAsSeenDtoPayload$Outbound, + z.ZodTypeDef, + MarkMessageActionAsSeenDtoPayload +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkMessageActionAsSeenDtoPayload$ { + /** @deprecated use `MarkMessageActionAsSeenDtoPayload$inboundSchema` instead. */ + export const inboundSchema = MarkMessageActionAsSeenDtoPayload$inboundSchema; + /** @deprecated use `MarkMessageActionAsSeenDtoPayload$outboundSchema` instead. */ + export const outboundSchema = + MarkMessageActionAsSeenDtoPayload$outboundSchema; + /** @deprecated use `MarkMessageActionAsSeenDtoPayload$Outbound` instead. */ + export type Outbound = MarkMessageActionAsSeenDtoPayload$Outbound; +} + +export function markMessageActionAsSeenDtoPayloadToJSON( + markMessageActionAsSeenDtoPayload: MarkMessageActionAsSeenDtoPayload, +): string { + return JSON.stringify( + MarkMessageActionAsSeenDtoPayload$outboundSchema.parse( + markMessageActionAsSeenDtoPayload, + ), + ); +} + +export function markMessageActionAsSeenDtoPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MarkMessageActionAsSeenDtoPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MarkMessageActionAsSeenDtoPayload' from JSON`, + ); +} + /** @internal */ export const MarkMessageActionAsSeenDto$inboundSchema: z.ZodType< MarkMessageActionAsSeenDto, z.ZodTypeDef, unknown > = z.object({ - payload: z.lazy(() => Payload$inboundSchema).optional(), status: MarkMessageActionAsSeenDtoStatus$inboundSchema, + payload: z.lazy(() => MarkMessageActionAsSeenDtoPayload$inboundSchema) + .optional(), }); /** @internal */ export type MarkMessageActionAsSeenDto$Outbound = { - payload?: Payload$Outbound | undefined; status: string; + payload?: MarkMessageActionAsSeenDtoPayload$Outbound | undefined; }; /** @internal */ @@ -105,8 +133,9 @@ export const MarkMessageActionAsSeenDto$outboundSchema: z.ZodType< z.ZodTypeDef, MarkMessageActionAsSeenDto > = z.object({ - payload: z.lazy(() => Payload$outboundSchema).optional(), status: MarkMessageActionAsSeenDtoStatus$outboundSchema, + payload: z.lazy(() => MarkMessageActionAsSeenDtoPayload$outboundSchema) + .optional(), }); /** @@ -121,3 +150,21 @@ export namespace MarkMessageActionAsSeenDto$ { /** @deprecated use `MarkMessageActionAsSeenDto$Outbound` instead. */ export type Outbound = MarkMessageActionAsSeenDto$Outbound; } + +export function markMessageActionAsSeenDtoToJSON( + markMessageActionAsSeenDto: MarkMessageActionAsSeenDto, +): string { + return JSON.stringify( + MarkMessageActionAsSeenDto$outboundSchema.parse(markMessageActionAsSeenDto), + ); +} + +export function markMessageActionAsSeenDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MarkMessageActionAsSeenDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MarkMessageActionAsSeenDto' from JSON`, + ); +} diff --git a/src/models/components/messageaction.ts b/src/models/components/messageaction.ts index 5fc17bca..9b865fc7 100644 --- a/src/models/components/messageaction.ts +++ b/src/models/components/messageaction.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { MessageActionResult, MessageActionResult$inboundSchema, @@ -24,9 +27,9 @@ export const MessageActionStatus = { export type MessageActionStatus = ClosedEnum; export type MessageAction = { + status?: MessageActionStatus | undefined; buttons?: Array | undefined; result?: MessageActionResult | undefined; - status?: MessageActionStatus | undefined; }; /** @internal */ @@ -56,16 +59,16 @@ export const MessageAction$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ + status: MessageActionStatus$inboundSchema.optional(), buttons: z.array(MessageButton$inboundSchema).optional(), result: MessageActionResult$inboundSchema.optional(), - status: MessageActionStatus$inboundSchema.optional(), }); /** @internal */ export type MessageAction$Outbound = { + status?: string | undefined; buttons?: Array | undefined; result?: MessageActionResult$Outbound | undefined; - status?: string | undefined; }; /** @internal */ @@ -74,9 +77,9 @@ export const MessageAction$outboundSchema: z.ZodType< z.ZodTypeDef, MessageAction > = z.object({ + status: MessageActionStatus$outboundSchema.optional(), buttons: z.array(MessageButton$outboundSchema).optional(), result: MessageActionResult$outboundSchema.optional(), - status: MessageActionStatus$outboundSchema.optional(), }); /** @@ -91,3 +94,17 @@ export namespace MessageAction$ { /** @deprecated use `MessageAction$Outbound` instead. */ export type Outbound = MessageAction$Outbound; } + +export function messageActionToJSON(messageAction: MessageAction): string { + return JSON.stringify(MessageAction$outboundSchema.parse(messageAction)); +} + +export function messageActionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageAction$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageAction' from JSON`, + ); +} diff --git a/src/models/components/messageactionresult.ts b/src/models/components/messageactionresult.ts index f4372eb7..7a147d51 100644 --- a/src/models/components/messageactionresult.ts +++ b/src/models/components/messageactionresult.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type MessageActionResultPayload = {}; @@ -50,6 +53,24 @@ export namespace MessageActionResultPayload$ { export type Outbound = MessageActionResultPayload$Outbound; } +export function messageActionResultPayloadToJSON( + messageActionResultPayload: MessageActionResultPayload, +): string { + return JSON.stringify( + MessageActionResultPayload$outboundSchema.parse(messageActionResultPayload), + ); +} + +export function messageActionResultPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageActionResultPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageActionResultPayload' from JSON`, + ); +} + /** @internal */ export const MessageActionResultType$inboundSchema: z.ZodNativeEnum< typeof MessageActionResultType @@ -109,3 +130,21 @@ export namespace MessageActionResult$ { /** @deprecated use `MessageActionResult$Outbound` instead. */ export type Outbound = MessageActionResult$Outbound; } + +export function messageActionResultToJSON( + messageActionResult: MessageActionResult, +): string { + return JSON.stringify( + MessageActionResult$outboundSchema.parse(messageActionResult), + ); +} + +export function messageActionResultFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageActionResult$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageActionResult' from JSON`, + ); +} diff --git a/src/models/components/messagebutton.ts b/src/models/components/messagebutton.ts index 1b7e42a5..443f8b3f 100644 --- a/src/models/components/messagebutton.ts +++ b/src/models/components/messagebutton.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const MessageButtonType = { Primary: "primary", @@ -12,9 +15,9 @@ export const MessageButtonType = { export type MessageButtonType = ClosedEnum; export type MessageButton = { + type: MessageButtonType; content: string; resultContent?: string | undefined; - type: MessageButtonType; }; /** @internal */ @@ -44,16 +47,16 @@ export const MessageButton$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ + type: MessageButtonType$inboundSchema, content: z.string(), resultContent: z.string().optional(), - type: MessageButtonType$inboundSchema, }); /** @internal */ export type MessageButton$Outbound = { + type: string; content: string; resultContent?: string | undefined; - type: string; }; /** @internal */ @@ -62,9 +65,9 @@ export const MessageButton$outboundSchema: z.ZodType< z.ZodTypeDef, MessageButton > = z.object({ + type: MessageButtonType$outboundSchema, content: z.string(), resultContent: z.string().optional(), - type: MessageButtonType$outboundSchema, }); /** @@ -79,3 +82,17 @@ export namespace MessageButton$ { /** @deprecated use `MessageButton$Outbound` instead. */ export type Outbound = MessageButton$Outbound; } + +export function messageButtonToJSON(messageButton: MessageButton): string { + return JSON.stringify(MessageButton$outboundSchema.parse(messageButton)); +} + +export function messageButtonFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageButton$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageButton' from JSON`, + ); +} diff --git a/src/models/components/messagecta.ts b/src/models/components/messagecta.ts index 9ec5d267..6560ba6d 100644 --- a/src/models/components/messagecta.ts +++ b/src/models/components/messagecta.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { MessageAction, MessageAction$inboundSchema, @@ -23,9 +26,9 @@ export const MessageCTAType = { export type MessageCTAType = ClosedEnum; export type MessageCTA = { - action?: MessageAction | undefined; - data: MessageCTAData; type?: MessageCTAType | undefined; + data: MessageCTAData; + action?: MessageAction | undefined; }; /** @internal */ @@ -55,16 +58,16 @@ export const MessageCTA$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - action: MessageAction$inboundSchema.optional(), - data: MessageCTAData$inboundSchema, type: MessageCTAType$inboundSchema.optional(), + data: MessageCTAData$inboundSchema, + action: MessageAction$inboundSchema.optional(), }); /** @internal */ export type MessageCTA$Outbound = { - action?: MessageAction$Outbound | undefined; - data: MessageCTAData$Outbound; type?: string | undefined; + data: MessageCTAData$Outbound; + action?: MessageAction$Outbound | undefined; }; /** @internal */ @@ -73,9 +76,9 @@ export const MessageCTA$outboundSchema: z.ZodType< z.ZodTypeDef, MessageCTA > = z.object({ - action: MessageAction$outboundSchema.optional(), - data: MessageCTAData$outboundSchema, type: MessageCTAType$outboundSchema.optional(), + data: MessageCTAData$outboundSchema, + action: MessageAction$outboundSchema.optional(), }); /** @@ -90,3 +93,17 @@ export namespace MessageCTA$ { /** @deprecated use `MessageCTA$Outbound` instead. */ export type Outbound = MessageCTA$Outbound; } + +export function messageCTAToJSON(messageCTA: MessageCTA): string { + return JSON.stringify(MessageCTA$outboundSchema.parse(messageCTA)); +} + +export function messageCTAFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageCTA$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageCTA' from JSON`, + ); +} diff --git a/src/models/components/messagectadata.ts b/src/models/components/messagectadata.ts index 0bfe4685..a5fef65a 100644 --- a/src/models/components/messagectadata.ts +++ b/src/models/components/messagectadata.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type MessageCTAData = { url?: string | undefined; @@ -43,3 +46,17 @@ export namespace MessageCTAData$ { /** @deprecated use `MessageCTAData$Outbound` instead. */ export type Outbound = MessageCTAData$Outbound; } + +export function messageCTADataToJSON(messageCTAData: MessageCTAData): string { + return JSON.stringify(MessageCTAData$outboundSchema.parse(messageCTAData)); +} + +export function messageCTADataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageCTAData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageCTAData' from JSON`, + ); +} diff --git a/src/models/components/messageentity.ts b/src/models/components/messageentity.ts index 173bd921..d65bebd2 100644 --- a/src/models/components/messageentity.ts +++ b/src/models/components/messageentity.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type MessageEntity = {}; @@ -35,3 +38,17 @@ export namespace MessageEntity$ { /** @deprecated use `MessageEntity$Outbound` instead. */ export type Outbound = MessageEntity$Outbound; } + +export function messageEntityToJSON(messageEntity: MessageEntity): string { + return JSON.stringify(MessageEntity$outboundSchema.parse(messageEntity)); +} + +export function messageEntityFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageEntity$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageEntity' from JSON`, + ); +} diff --git a/src/models/components/messagemarkasrequestdto.ts b/src/models/components/messagemarkasrequestdto.ts index 99f9bdad..22b8a38a 100644 --- a/src/models/components/messagemarkasrequestdto.ts +++ b/src/models/components/messagemarkasrequestdto.ts @@ -3,46 +3,26 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export const MessageMarkAsRequestDtoMarkAs = { +export type MessageId = string | Array; + +export const MarkAs = { Read: "read", Seen: "seen", Unread: "unread", Unseen: "unseen", } as const; -export type MessageMarkAsRequestDtoMarkAs = ClosedEnum< - typeof MessageMarkAsRequestDtoMarkAs ->; - -export type MessageId = string | Array; +export type MarkAs = ClosedEnum; export type MessageMarkAsRequestDto = { - markAs: MessageMarkAsRequestDtoMarkAs; messageId: string | Array; + markAs: MarkAs; }; -/** @internal */ -export const MessageMarkAsRequestDtoMarkAs$inboundSchema: z.ZodNativeEnum< - typeof MessageMarkAsRequestDtoMarkAs -> = z.nativeEnum(MessageMarkAsRequestDtoMarkAs); - -/** @internal */ -export const MessageMarkAsRequestDtoMarkAs$outboundSchema: z.ZodNativeEnum< - typeof MessageMarkAsRequestDtoMarkAs -> = MessageMarkAsRequestDtoMarkAs$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageMarkAsRequestDtoMarkAs$ { - /** @deprecated use `MessageMarkAsRequestDtoMarkAs$inboundSchema` instead. */ - export const inboundSchema = MessageMarkAsRequestDtoMarkAs$inboundSchema; - /** @deprecated use `MessageMarkAsRequestDtoMarkAs$outboundSchema` instead. */ - export const outboundSchema = MessageMarkAsRequestDtoMarkAs$outboundSchema; -} - /** @internal */ export const MessageId$inboundSchema: z.ZodType< MessageId, @@ -73,20 +53,53 @@ export namespace MessageId$ { export type Outbound = MessageId$Outbound; } +export function messageIdToJSON(messageId: MessageId): string { + return JSON.stringify(MessageId$outboundSchema.parse(messageId)); +} + +export function messageIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageId' from JSON`, + ); +} + +/** @internal */ +export const MarkAs$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(MarkAs); + +/** @internal */ +export const MarkAs$outboundSchema: z.ZodNativeEnum = + MarkAs$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkAs$ { + /** @deprecated use `MarkAs$inboundSchema` instead. */ + export const inboundSchema = MarkAs$inboundSchema; + /** @deprecated use `MarkAs$outboundSchema` instead. */ + export const outboundSchema = MarkAs$outboundSchema; +} + /** @internal */ export const MessageMarkAsRequestDto$inboundSchema: z.ZodType< MessageMarkAsRequestDto, z.ZodTypeDef, unknown > = z.object({ - markAs: MessageMarkAsRequestDtoMarkAs$inboundSchema, messageId: z.union([z.string(), z.array(z.string())]), + markAs: MarkAs$inboundSchema, }); /** @internal */ export type MessageMarkAsRequestDto$Outbound = { - markAs: string; messageId: string | Array; + markAs: string; }; /** @internal */ @@ -95,8 +108,8 @@ export const MessageMarkAsRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, MessageMarkAsRequestDto > = z.object({ - markAs: MessageMarkAsRequestDtoMarkAs$outboundSchema, messageId: z.union([z.string(), z.array(z.string())]), + markAs: MarkAs$outboundSchema, }); /** @@ -111,3 +124,21 @@ export namespace MessageMarkAsRequestDto$ { /** @deprecated use `MessageMarkAsRequestDto$Outbound` instead. */ export type Outbound = MessageMarkAsRequestDto$Outbound; } + +export function messageMarkAsRequestDtoToJSON( + messageMarkAsRequestDto: MessageMarkAsRequestDto, +): string { + return JSON.stringify( + MessageMarkAsRequestDto$outboundSchema.parse(messageMarkAsRequestDto), + ); +} + +export function messageMarkAsRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageMarkAsRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageMarkAsRequestDto' from JSON`, + ); +} diff --git a/src/models/components/messageresponsedto.ts b/src/models/components/messageresponsedto.ts index cbe22d8a..eae7e2c5 100644 --- a/src/models/components/messageresponsedto.ts +++ b/src/models/components/messageresponsedto.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { EmailBlock, EmailBlock$inboundSchema, @@ -30,7 +33,7 @@ import { WorkflowResponse$outboundSchema, } from "./workflowresponse.js"; -export type FeedId = {}; +export type Content = EmailBlock | string; export const MessageResponseDtoChannel = { InApp: "in_app", @@ -43,17 +46,7 @@ export type MessageResponseDtoChannel = ClosedEnum< typeof MessageResponseDtoChannel >; -export type Content = EmailBlock | string; - -/** - * Provider specific overrides used when triggering the notification - */ -export type Overrides = {}; - -/** - * The payload that was used to send the notification trigger - */ -export type MessageResponseDtoPayload = {}; +export type FeedId = {}; export const MessageResponseDtoStatus = { Sent: "sent", @@ -64,72 +57,96 @@ export type MessageResponseDtoStatus = ClosedEnum< typeof MessageResponseDtoStatus >; +/** + * The payload that was used to send the notification trigger + */ +export type MessageResponseDtoPayload = {}; + +/** + * Provider specific overrides used when triggering the notification + */ +export type MessageResponseDtoOverrides = {}; + export type MessageResponseDto = { - environmentId: string; - feedId?: FeedId | null | undefined; id?: string | undefined; + templateId: string; + environmentId: string; messageTemplateId: string; - notificationId: string; organizationId: string; + notificationId: string; subscriberId: string; - templateId: string; - channel: MessageResponseDtoChannel; - content: EmailBlock | string; + subscriber?: SubscriberResponseDto | undefined; + template?: WorkflowResponse | undefined; + templateIdentifier?: string | undefined; createdAt: string; - cta: MessageCTA; - deviceTokens?: Array | undefined; - directWebhookUrl?: string | undefined; + lastSeenDate?: string | undefined; + lastReadDate?: string | undefined; + content: EmailBlock | string; + transactionId: string; + subject?: string | undefined; + channel: MessageResponseDtoChannel; + read: boolean; + seen: boolean; email?: string | undefined; + phone?: string | undefined; + directWebhookUrl?: string | undefined; + providerId?: string | undefined; + deviceTokens?: Array | undefined; + title?: string | undefined; + cta: MessageCTA; + feedId?: FeedId | null | undefined; + status: MessageResponseDtoStatus; errorId: string; errorText: string; - lastReadDate?: string | undefined; - lastSeenDate?: string | undefined; - /** - * Provider specific overrides used when triggering the notification - */ - overrides: Overrides; /** * The payload that was used to send the notification trigger */ payload: MessageResponseDtoPayload; - phone?: string | undefined; - providerId?: string | undefined; - read: boolean; - seen: boolean; - status: MessageResponseDtoStatus; - subject?: string | undefined; - subscriber?: SubscriberResponseDto | undefined; - template?: WorkflowResponse | undefined; - templateIdentifier?: string | undefined; - title?: string | undefined; - transactionId: string; + /** + * Provider specific overrides used when triggering the notification + */ + overrides: MessageResponseDtoOverrides; }; /** @internal */ -export const FeedId$inboundSchema: z.ZodType = z - .object({}); +export const Content$inboundSchema: z.ZodType = + z.union([EmailBlock$inboundSchema, z.string()]); /** @internal */ -export type FeedId$Outbound = {}; +export type Content$Outbound = EmailBlock$Outbound | string; /** @internal */ -export const FeedId$outboundSchema: z.ZodType< - FeedId$Outbound, +export const Content$outboundSchema: z.ZodType< + Content$Outbound, z.ZodTypeDef, - FeedId -> = z.object({}); + Content +> = z.union([EmailBlock$outboundSchema, z.string()]); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace FeedId$ { - /** @deprecated use `FeedId$inboundSchema` instead. */ - export const inboundSchema = FeedId$inboundSchema; - /** @deprecated use `FeedId$outboundSchema` instead. */ - export const outboundSchema = FeedId$outboundSchema; - /** @deprecated use `FeedId$Outbound` instead. */ - export type Outbound = FeedId$Outbound; +export namespace Content$ { + /** @deprecated use `Content$inboundSchema` instead. */ + export const inboundSchema = Content$inboundSchema; + /** @deprecated use `Content$outboundSchema` instead. */ + export const outboundSchema = Content$outboundSchema; + /** @deprecated use `Content$Outbound` instead. */ + export type Outbound = Content$Outbound; +} + +export function contentToJSON(content: Content): string { + return JSON.stringify(Content$outboundSchema.parse(content)); +} + +export function contentFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Content$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Content' from JSON`, + ); } /** @internal */ @@ -154,60 +171,65 @@ export namespace MessageResponseDtoChannel$ { } /** @internal */ -export const Content$inboundSchema: z.ZodType = - z.union([EmailBlock$inboundSchema, z.string()]); +export const FeedId$inboundSchema: z.ZodType = z + .object({}); /** @internal */ -export type Content$Outbound = EmailBlock$Outbound | string; +export type FeedId$Outbound = {}; /** @internal */ -export const Content$outboundSchema: z.ZodType< - Content$Outbound, +export const FeedId$outboundSchema: z.ZodType< + FeedId$Outbound, z.ZodTypeDef, - Content -> = z.union([EmailBlock$outboundSchema, z.string()]); + FeedId +> = z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Content$ { - /** @deprecated use `Content$inboundSchema` instead. */ - export const inboundSchema = Content$inboundSchema; - /** @deprecated use `Content$outboundSchema` instead. */ - export const outboundSchema = Content$outboundSchema; - /** @deprecated use `Content$Outbound` instead. */ - export type Outbound = Content$Outbound; +export namespace FeedId$ { + /** @deprecated use `FeedId$inboundSchema` instead. */ + export const inboundSchema = FeedId$inboundSchema; + /** @deprecated use `FeedId$outboundSchema` instead. */ + export const outboundSchema = FeedId$outboundSchema; + /** @deprecated use `FeedId$Outbound` instead. */ + export type Outbound = FeedId$Outbound; } -/** @internal */ -export const Overrides$inboundSchema: z.ZodType< - Overrides, - z.ZodTypeDef, - unknown -> = z.object({}); +export function feedIdToJSON(feedId: FeedId): string { + return JSON.stringify(FeedId$outboundSchema.parse(feedId)); +} + +export function feedIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FeedId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FeedId' from JSON`, + ); +} /** @internal */ -export type Overrides$Outbound = {}; +export const MessageResponseDtoStatus$inboundSchema: z.ZodNativeEnum< + typeof MessageResponseDtoStatus +> = z.nativeEnum(MessageResponseDtoStatus); /** @internal */ -export const Overrides$outboundSchema: z.ZodType< - Overrides$Outbound, - z.ZodTypeDef, - Overrides -> = z.object({}); +export const MessageResponseDtoStatus$outboundSchema: z.ZodNativeEnum< + typeof MessageResponseDtoStatus +> = MessageResponseDtoStatus$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Overrides$ { - /** @deprecated use `Overrides$inboundSchema` instead. */ - export const inboundSchema = Overrides$inboundSchema; - /** @deprecated use `Overrides$outboundSchema` instead. */ - export const outboundSchema = Overrides$outboundSchema; - /** @deprecated use `Overrides$Outbound` instead. */ - export type Outbound = Overrides$Outbound; +export namespace MessageResponseDtoStatus$ { + /** @deprecated use `MessageResponseDtoStatus$inboundSchema` instead. */ + export const inboundSchema = MessageResponseDtoStatus$inboundSchema; + /** @deprecated use `MessageResponseDtoStatus$outboundSchema` instead. */ + export const outboundSchema = MessageResponseDtoStatus$outboundSchema; } /** @internal */ @@ -240,25 +262,72 @@ export namespace MessageResponseDtoPayload$ { export type Outbound = MessageResponseDtoPayload$Outbound; } +export function messageResponseDtoPayloadToJSON( + messageResponseDtoPayload: MessageResponseDtoPayload, +): string { + return JSON.stringify( + MessageResponseDtoPayload$outboundSchema.parse(messageResponseDtoPayload), + ); +} + +export function messageResponseDtoPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageResponseDtoPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageResponseDtoPayload' from JSON`, + ); +} + /** @internal */ -export const MessageResponseDtoStatus$inboundSchema: z.ZodNativeEnum< - typeof MessageResponseDtoStatus -> = z.nativeEnum(MessageResponseDtoStatus); +export const MessageResponseDtoOverrides$inboundSchema: z.ZodType< + MessageResponseDtoOverrides, + z.ZodTypeDef, + unknown +> = z.object({}); /** @internal */ -export const MessageResponseDtoStatus$outboundSchema: z.ZodNativeEnum< - typeof MessageResponseDtoStatus -> = MessageResponseDtoStatus$inboundSchema; +export type MessageResponseDtoOverrides$Outbound = {}; + +/** @internal */ +export const MessageResponseDtoOverrides$outboundSchema: z.ZodType< + MessageResponseDtoOverrides$Outbound, + z.ZodTypeDef, + MessageResponseDtoOverrides +> = z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace MessageResponseDtoStatus$ { - /** @deprecated use `MessageResponseDtoStatus$inboundSchema` instead. */ - export const inboundSchema = MessageResponseDtoStatus$inboundSchema; - /** @deprecated use `MessageResponseDtoStatus$outboundSchema` instead. */ - export const outboundSchema = MessageResponseDtoStatus$outboundSchema; +export namespace MessageResponseDtoOverrides$ { + /** @deprecated use `MessageResponseDtoOverrides$inboundSchema` instead. */ + export const inboundSchema = MessageResponseDtoOverrides$inboundSchema; + /** @deprecated use `MessageResponseDtoOverrides$outboundSchema` instead. */ + export const outboundSchema = MessageResponseDtoOverrides$outboundSchema; + /** @deprecated use `MessageResponseDtoOverrides$Outbound` instead. */ + export type Outbound = MessageResponseDtoOverrides$Outbound; +} + +export function messageResponseDtoOverridesToJSON( + messageResponseDtoOverrides: MessageResponseDtoOverrides, +): string { + return JSON.stringify( + MessageResponseDtoOverrides$outboundSchema.parse( + messageResponseDtoOverrides, + ), + ); +} + +export function messageResponseDtoOverridesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageResponseDtoOverrides$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageResponseDtoOverrides' from JSON`, + ); } /** @internal */ @@ -267,85 +336,85 @@ export const MessageResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), - _feedId: z.nullable(z.lazy(() => FeedId$inboundSchema)).optional(), _id: z.string().optional(), + _templateId: z.string(), + _environmentId: z.string(), _messageTemplateId: z.string(), - _notificationId: z.string(), _organizationId: z.string(), + _notificationId: z.string(), _subscriberId: z.string(), - _templateId: z.string(), - channel: MessageResponseDtoChannel$inboundSchema, - content: z.union([EmailBlock$inboundSchema, z.string()]), + subscriber: SubscriberResponseDto$inboundSchema.optional(), + template: WorkflowResponse$inboundSchema.optional(), + templateIdentifier: z.string().optional(), createdAt: z.string(), - cta: MessageCTA$inboundSchema, - deviceTokens: z.array(z.string()).optional(), - directWebhookUrl: z.string().optional(), - email: z.string().optional(), - errorId: z.string(), - errorText: z.string(), - lastReadDate: z.string().optional(), lastSeenDate: z.string().optional(), - overrides: z.lazy(() => Overrides$inboundSchema), - payload: z.lazy(() => MessageResponseDtoPayload$inboundSchema), - phone: z.string().optional(), - providerId: z.string().optional(), + lastReadDate: z.string().optional(), + content: z.union([EmailBlock$inboundSchema, z.string()]), + transactionId: z.string(), + subject: z.string().optional(), + channel: MessageResponseDtoChannel$inboundSchema, read: z.boolean(), seen: z.boolean(), - status: MessageResponseDtoStatus$inboundSchema, - subject: z.string().optional(), - subscriber: SubscriberResponseDto$inboundSchema.optional(), - template: WorkflowResponse$inboundSchema.optional(), - templateIdentifier: z.string().optional(), + email: z.string().optional(), + phone: z.string().optional(), + directWebhookUrl: z.string().optional(), + providerId: z.string().optional(), + deviceTokens: z.array(z.string()).optional(), title: z.string().optional(), - transactionId: z.string(), + cta: MessageCTA$inboundSchema, + _feedId: z.nullable(z.lazy(() => FeedId$inboundSchema)).optional(), + status: MessageResponseDtoStatus$inboundSchema, + errorId: z.string(), + errorText: z.string(), + payload: z.lazy(() => MessageResponseDtoPayload$inboundSchema), + overrides: z.lazy(() => MessageResponseDtoOverrides$inboundSchema), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", - "_feedId": "feedId", "_id": "id", + "_templateId": "templateId", + "_environmentId": "environmentId", "_messageTemplateId": "messageTemplateId", - "_notificationId": "notificationId", "_organizationId": "organizationId", + "_notificationId": "notificationId", "_subscriberId": "subscriberId", - "_templateId": "templateId", + "_feedId": "feedId", }); }); /** @internal */ export type MessageResponseDto$Outbound = { - _environmentId: string; - _feedId?: FeedId$Outbound | null | undefined; _id?: string | undefined; + _templateId: string; + _environmentId: string; _messageTemplateId: string; - _notificationId: string; _organizationId: string; + _notificationId: string; _subscriberId: string; - _templateId: string; - channel: string; - content: EmailBlock$Outbound | string; + subscriber?: SubscriberResponseDto$Outbound | undefined; + template?: WorkflowResponse$Outbound | undefined; + templateIdentifier?: string | undefined; createdAt: string; - cta: MessageCTA$Outbound; - deviceTokens?: Array | undefined; - directWebhookUrl?: string | undefined; - email?: string | undefined; - errorId: string; - errorText: string; - lastReadDate?: string | undefined; lastSeenDate?: string | undefined; - overrides: Overrides$Outbound; - payload: MessageResponseDtoPayload$Outbound; - phone?: string | undefined; - providerId?: string | undefined; + lastReadDate?: string | undefined; + content: EmailBlock$Outbound | string; + transactionId: string; + subject?: string | undefined; + channel: string; read: boolean; seen: boolean; - status: string; - subject?: string | undefined; - subscriber?: SubscriberResponseDto$Outbound | undefined; - template?: WorkflowResponse$Outbound | undefined; - templateIdentifier?: string | undefined; + email?: string | undefined; + phone?: string | undefined; + directWebhookUrl?: string | undefined; + providerId?: string | undefined; + deviceTokens?: Array | undefined; title?: string | undefined; - transactionId: string; + cta: MessageCTA$Outbound; + _feedId?: FeedId$Outbound | null | undefined; + status: string; + errorId: string; + errorText: string; + payload: MessageResponseDtoPayload$Outbound; + overrides: MessageResponseDtoOverrides$Outbound; }; /** @internal */ @@ -354,48 +423,48 @@ export const MessageResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, MessageResponseDto > = z.object({ - environmentId: z.string(), - feedId: z.nullable(z.lazy(() => FeedId$outboundSchema)).optional(), id: z.string().optional(), + templateId: z.string(), + environmentId: z.string(), messageTemplateId: z.string(), - notificationId: z.string(), organizationId: z.string(), + notificationId: z.string(), subscriberId: z.string(), - templateId: z.string(), - channel: MessageResponseDtoChannel$outboundSchema, - content: z.union([EmailBlock$outboundSchema, z.string()]), + subscriber: SubscriberResponseDto$outboundSchema.optional(), + template: WorkflowResponse$outboundSchema.optional(), + templateIdentifier: z.string().optional(), createdAt: z.string(), - cta: MessageCTA$outboundSchema, - deviceTokens: z.array(z.string()).optional(), - directWebhookUrl: z.string().optional(), - email: z.string().optional(), - errorId: z.string(), - errorText: z.string(), - lastReadDate: z.string().optional(), lastSeenDate: z.string().optional(), - overrides: z.lazy(() => Overrides$outboundSchema), - payload: z.lazy(() => MessageResponseDtoPayload$outboundSchema), - phone: z.string().optional(), - providerId: z.string().optional(), + lastReadDate: z.string().optional(), + content: z.union([EmailBlock$outboundSchema, z.string()]), + transactionId: z.string(), + subject: z.string().optional(), + channel: MessageResponseDtoChannel$outboundSchema, read: z.boolean(), seen: z.boolean(), - status: MessageResponseDtoStatus$outboundSchema, - subject: z.string().optional(), - subscriber: SubscriberResponseDto$outboundSchema.optional(), - template: WorkflowResponse$outboundSchema.optional(), - templateIdentifier: z.string().optional(), + email: z.string().optional(), + phone: z.string().optional(), + directWebhookUrl: z.string().optional(), + providerId: z.string().optional(), + deviceTokens: z.array(z.string()).optional(), title: z.string().optional(), - transactionId: z.string(), + cta: MessageCTA$outboundSchema, + feedId: z.nullable(z.lazy(() => FeedId$outboundSchema)).optional(), + status: MessageResponseDtoStatus$outboundSchema, + errorId: z.string(), + errorText: z.string(), + payload: z.lazy(() => MessageResponseDtoPayload$outboundSchema), + overrides: z.lazy(() => MessageResponseDtoOverrides$outboundSchema), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", - feedId: "_feedId", id: "_id", + templateId: "_templateId", + environmentId: "_environmentId", messageTemplateId: "_messageTemplateId", - notificationId: "_notificationId", organizationId: "_organizationId", + notificationId: "_notificationId", subscriberId: "_subscriberId", - templateId: "_templateId", + feedId: "_feedId", }); }); @@ -411,3 +480,21 @@ export namespace MessageResponseDto$ { /** @deprecated use `MessageResponseDto$Outbound` instead. */ export type Outbound = MessageResponseDto$Outbound; } + +export function messageResponseDtoToJSON( + messageResponseDto: MessageResponseDto, +): string { + return JSON.stringify( + MessageResponseDto$outboundSchema.parse(messageResponseDto), + ); +} + +export function messageResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageResponseDto' from JSON`, + ); +} diff --git a/src/models/components/messagetemplate.ts b/src/models/components/messagetemplate.ts index c4276ff1..eff05e96 100644 --- a/src/models/components/messagetemplate.ts +++ b/src/models/components/messagetemplate.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type MessageTemplate = {}; @@ -35,3 +38,19 @@ export namespace MessageTemplate$ { /** @deprecated use `MessageTemplate$Outbound` instead. */ export type Outbound = MessageTemplate$Outbound; } + +export function messageTemplateToJSON( + messageTemplate: MessageTemplate, +): string { + return JSON.stringify(MessageTemplate$outboundSchema.parse(messageTemplate)); +} + +export function messageTemplateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageTemplate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageTemplate' from JSON`, + ); +} diff --git a/src/models/components/notificationgroup.ts b/src/models/components/notificationgroup.ts index e7a2f74c..dfc602f5 100644 --- a/src/models/components/notificationgroup.ts +++ b/src/models/components/notificationgroup.ts @@ -4,13 +4,16 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationGroup = { - environmentId: string; id?: string | undefined; + name: string; + environmentId: string; organizationId: string; parentId?: string | undefined; - name: string; }; /** @internal */ @@ -19,15 +22,15 @@ export const NotificationGroup$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), + name: z.string(), + _environmentId: z.string(), _organizationId: z.string(), _parentId: z.string().optional(), - name: z.string(), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", + "_environmentId": "environmentId", "_organizationId": "organizationId", "_parentId": "parentId", }); @@ -35,11 +38,11 @@ export const NotificationGroup$inboundSchema: z.ZodType< /** @internal */ export type NotificationGroup$Outbound = { - _environmentId: string; _id?: string | undefined; + name: string; + _environmentId: string; _organizationId: string; _parentId?: string | undefined; - name: string; }; /** @internal */ @@ -48,15 +51,15 @@ export const NotificationGroup$outboundSchema: z.ZodType< z.ZodTypeDef, NotificationGroup > = z.object({ - environmentId: z.string(), id: z.string().optional(), + name: z.string(), + environmentId: z.string(), organizationId: z.string(), parentId: z.string().optional(), - name: z.string(), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", + environmentId: "_environmentId", organizationId: "_organizationId", parentId: "_parentId", }); @@ -74,3 +77,21 @@ export namespace NotificationGroup$ { /** @deprecated use `NotificationGroup$Outbound` instead. */ export type Outbound = NotificationGroup$Outbound; } + +export function notificationGroupToJSON( + notificationGroup: NotificationGroup, +): string { + return JSON.stringify( + NotificationGroup$outboundSchema.parse(notificationGroup), + ); +} + +export function notificationGroupFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationGroup$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationGroup' from JSON`, + ); +} diff --git a/src/models/components/notificationgroupresponsedto.ts b/src/models/components/notificationgroupresponsedto.ts index 679cb516..39dd84f4 100644 --- a/src/models/components/notificationgroupresponsedto.ts +++ b/src/models/components/notificationgroupresponsedto.ts @@ -4,13 +4,16 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationGroupResponseDto = { - environmentId: string; id?: string | undefined; + name: string; + environmentId: string; organizationId: string; parentId?: string | undefined; - name: string; }; /** @internal */ @@ -19,15 +22,15 @@ export const NotificationGroupResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), + name: z.string(), + _environmentId: z.string(), _organizationId: z.string(), _parentId: z.string().optional(), - name: z.string(), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", + "_environmentId": "environmentId", "_organizationId": "organizationId", "_parentId": "parentId", }); @@ -35,11 +38,11 @@ export const NotificationGroupResponseDto$inboundSchema: z.ZodType< /** @internal */ export type NotificationGroupResponseDto$Outbound = { - _environmentId: string; _id?: string | undefined; + name: string; + _environmentId: string; _organizationId: string; _parentId?: string | undefined; - name: string; }; /** @internal */ @@ -48,15 +51,15 @@ export const NotificationGroupResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, NotificationGroupResponseDto > = z.object({ - environmentId: z.string(), id: z.string().optional(), + name: z.string(), + environmentId: z.string(), organizationId: z.string(), parentId: z.string().optional(), - name: z.string(), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", + environmentId: "_environmentId", organizationId: "_organizationId", parentId: "_parentId", }); @@ -74,3 +77,23 @@ export namespace NotificationGroupResponseDto$ { /** @deprecated use `NotificationGroupResponseDto$Outbound` instead. */ export type Outbound = NotificationGroupResponseDto$Outbound; } + +export function notificationGroupResponseDtoToJSON( + notificationGroupResponseDto: NotificationGroupResponseDto, +): string { + return JSON.stringify( + NotificationGroupResponseDto$outboundSchema.parse( + notificationGroupResponseDto, + ), + ); +} + +export function notificationGroupResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationGroupResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupResponseDto' from JSON`, + ); +} diff --git a/src/models/components/notificationstep.ts b/src/models/components/notificationstep.ts index f5270483..701311fd 100644 --- a/src/models/components/notificationstep.ts +++ b/src/models/components/notificationstep.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { DelayRegularMetadata, DelayRegularMetadata$inboundSchema, @@ -59,21 +62,21 @@ export type ReplyCallback = {}; export type NotificationStep = { id?: string | undefined; - parentId?: ParentId | undefined; + uuid?: string | undefined; + name?: string | undefined; templateId?: string | undefined; active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate | undefined; filters?: Array | undefined; + parentId?: ParentId | undefined; metadata?: | DelayScheduledMetadata | DelayRegularMetadata | DigestTimedMetadata | DigestRegularMetadata | undefined; - name?: string | undefined; replyCallback?: ReplyCallback | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate | undefined; - uuid?: string | undefined; variants?: NotificationStepVariant | undefined; }; @@ -107,6 +110,20 @@ export namespace ParentId$ { export type Outbound = ParentId$Outbound; } +export function parentIdToJSON(parentId: ParentId): string { + return JSON.stringify(ParentId$outboundSchema.parse(parentId)); +} + +export function parentIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ParentId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ParentId' from JSON`, + ); +} + /** @internal */ export const Metadata$inboundSchema: z.ZodType< Metadata, @@ -151,6 +168,20 @@ export namespace Metadata$ { export type Outbound = Metadata$Outbound; } +export function metadataToJSON(metadata: Metadata): string { + return JSON.stringify(Metadata$outboundSchema.parse(metadata)); +} + +export function metadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Metadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Metadata' from JSON`, + ); +} + /** @internal */ export const ReplyCallback$inboundSchema: z.ZodType< ReplyCallback, @@ -181,6 +212,20 @@ export namespace ReplyCallback$ { export type Outbound = ReplyCallback$Outbound; } +export function replyCallbackToJSON(replyCallback: ReplyCallback): string { + return JSON.stringify(ReplyCallback$outboundSchema.parse(replyCallback)); +} + +export function replyCallbackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReplyCallback$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReplyCallback' from JSON`, + ); +} + /** @internal */ export const NotificationStep$inboundSchema: z.ZodType< NotificationStep, @@ -188,48 +233,48 @@ export const NotificationStep$inboundSchema: z.ZodType< unknown > = z.object({ _id: z.string().optional(), - _parentId: z.lazy(() => ParentId$inboundSchema).optional(), + uuid: z.string().optional(), + name: z.string().optional(), _templateId: z.string().optional(), active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$inboundSchema.optional(), filters: z.array(StepFilter$inboundSchema).optional(), + _parentId: z.lazy(() => ParentId$inboundSchema).optional(), metadata: z.union([ DelayScheduledMetadata$inboundSchema, DelayRegularMetadata$inboundSchema, DigestTimedMetadata$inboundSchema, DigestRegularMetadata$inboundSchema, ]).optional(), - name: z.string().optional(), replyCallback: z.lazy(() => ReplyCallback$inboundSchema).optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$inboundSchema.optional(), - uuid: z.string().optional(), variants: NotificationStepVariant$inboundSchema.optional(), }).transform((v) => { return remap$(v, { "_id": "id", - "_parentId": "parentId", "_templateId": "templateId", + "_parentId": "parentId", }); }); /** @internal */ export type NotificationStep$Outbound = { _id?: string | undefined; - _parentId?: ParentId$Outbound | undefined; + uuid?: string | undefined; + name?: string | undefined; _templateId?: string | undefined; active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate$Outbound | undefined; filters?: Array | undefined; + _parentId?: ParentId$Outbound | undefined; metadata?: | DelayScheduledMetadata$Outbound | DelayRegularMetadata$Outbound | DigestTimedMetadata$Outbound | DigestRegularMetadata$Outbound | undefined; - name?: string | undefined; replyCallback?: ReplyCallback$Outbound | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate$Outbound | undefined; - uuid?: string | undefined; variants?: NotificationStepVariant$Outbound | undefined; }; @@ -240,27 +285,27 @@ export const NotificationStep$outboundSchema: z.ZodType< NotificationStep > = z.object({ id: z.string().optional(), - parentId: z.lazy(() => ParentId$outboundSchema).optional(), + uuid: z.string().optional(), + name: z.string().optional(), templateId: z.string().optional(), active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$outboundSchema.optional(), filters: z.array(StepFilter$outboundSchema).optional(), + parentId: z.lazy(() => ParentId$outboundSchema).optional(), metadata: z.union([ DelayScheduledMetadata$outboundSchema, DelayRegularMetadata$outboundSchema, DigestTimedMetadata$outboundSchema, DigestRegularMetadata$outboundSchema, ]).optional(), - name: z.string().optional(), replyCallback: z.lazy(() => ReplyCallback$outboundSchema).optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$outboundSchema.optional(), - uuid: z.string().optional(), variants: NotificationStepVariant$outboundSchema.optional(), }).transform((v) => { return remap$(v, { id: "_id", - parentId: "_parentId", templateId: "_templateId", + parentId: "_parentId", }); }); @@ -276,3 +321,21 @@ export namespace NotificationStep$ { /** @deprecated use `NotificationStep$Outbound` instead. */ export type Outbound = NotificationStep$Outbound; } + +export function notificationStepToJSON( + notificationStep: NotificationStep, +): string { + return JSON.stringify( + NotificationStep$outboundSchema.parse(notificationStep), + ); +} + +export function notificationStepFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStep$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStep' from JSON`, + ); +} diff --git a/src/models/components/notificationstepvariant.ts b/src/models/components/notificationstepvariant.ts index 8308a013..630a6ba1 100644 --- a/src/models/components/notificationstepvariant.ts +++ b/src/models/components/notificationstepvariant.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { DelayRegularMetadata, DelayRegularMetadata$inboundSchema, @@ -53,21 +56,21 @@ export type NotificationStepVariantReplyCallback = {}; export type NotificationStepVariant = { id?: string | undefined; - parentId?: NotificationStepVariantParentId | undefined; + uuid?: string | undefined; + name?: string | undefined; templateId?: string | undefined; active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate | undefined; filters?: Array | undefined; + parentId?: NotificationStepVariantParentId | undefined; metadata?: | DelayScheduledMetadata | DelayRegularMetadata | DigestTimedMetadata | DigestRegularMetadata | undefined; - name?: string | undefined; replyCallback?: NotificationStepVariantReplyCallback | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate | undefined; - uuid?: string | undefined; }; /** @internal */ @@ -100,6 +103,26 @@ export namespace NotificationStepVariantParentId$ { export type Outbound = NotificationStepVariantParentId$Outbound; } +export function notificationStepVariantParentIdToJSON( + notificationStepVariantParentId: NotificationStepVariantParentId, +): string { + return JSON.stringify( + NotificationStepVariantParentId$outboundSchema.parse( + notificationStepVariantParentId, + ), + ); +} + +export function notificationStepVariantParentIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStepVariantParentId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariantParentId' from JSON`, + ); +} + /** @internal */ export const NotificationStepVariantMetadata$inboundSchema: z.ZodType< NotificationStepVariantMetadata, @@ -144,6 +167,26 @@ export namespace NotificationStepVariantMetadata$ { export type Outbound = NotificationStepVariantMetadata$Outbound; } +export function notificationStepVariantMetadataToJSON( + notificationStepVariantMetadata: NotificationStepVariantMetadata, +): string { + return JSON.stringify( + NotificationStepVariantMetadata$outboundSchema.parse( + notificationStepVariantMetadata, + ), + ); +} + +export function notificationStepVariantMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStepVariantMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariantMetadata' from JSON`, + ); +} + /** @internal */ export const NotificationStepVariantReplyCallback$inboundSchema: z.ZodType< NotificationStepVariantReplyCallback, @@ -176,6 +219,27 @@ export namespace NotificationStepVariantReplyCallback$ { export type Outbound = NotificationStepVariantReplyCallback$Outbound; } +export function notificationStepVariantReplyCallbackToJSON( + notificationStepVariantReplyCallback: NotificationStepVariantReplyCallback, +): string { + return JSON.stringify( + NotificationStepVariantReplyCallback$outboundSchema.parse( + notificationStepVariantReplyCallback, + ), + ); +} + +export function notificationStepVariantReplyCallbackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + NotificationStepVariantReplyCallback$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariantReplyCallback' from JSON`, + ); +} + /** @internal */ export const NotificationStepVariant$inboundSchema: z.ZodType< NotificationStepVariant, @@ -183,50 +247,50 @@ export const NotificationStepVariant$inboundSchema: z.ZodType< unknown > = z.object({ _id: z.string().optional(), - _parentId: z.lazy(() => NotificationStepVariantParentId$inboundSchema) - .optional(), + uuid: z.string().optional(), + name: z.string().optional(), _templateId: z.string().optional(), active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$inboundSchema.optional(), filters: z.array(StepFilter$inboundSchema).optional(), + _parentId: z.lazy(() => NotificationStepVariantParentId$inboundSchema) + .optional(), metadata: z.union([ DelayScheduledMetadata$inboundSchema, DelayRegularMetadata$inboundSchema, DigestTimedMetadata$inboundSchema, DigestRegularMetadata$inboundSchema, ]).optional(), - name: z.string().optional(), replyCallback: z.lazy(() => NotificationStepVariantReplyCallback$inboundSchema ).optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$inboundSchema.optional(), - uuid: z.string().optional(), }).transform((v) => { return remap$(v, { "_id": "id", - "_parentId": "parentId", "_templateId": "templateId", + "_parentId": "parentId", }); }); /** @internal */ export type NotificationStepVariant$Outbound = { _id?: string | undefined; - _parentId?: NotificationStepVariantParentId$Outbound | undefined; + uuid?: string | undefined; + name?: string | undefined; _templateId?: string | undefined; active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate$Outbound | undefined; filters?: Array | undefined; + _parentId?: NotificationStepVariantParentId$Outbound | undefined; metadata?: | DelayScheduledMetadata$Outbound | DelayRegularMetadata$Outbound | DigestTimedMetadata$Outbound | DigestRegularMetadata$Outbound | undefined; - name?: string | undefined; replyCallback?: NotificationStepVariantReplyCallback$Outbound | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate$Outbound | undefined; - uuid?: string | undefined; }; /** @internal */ @@ -236,29 +300,29 @@ export const NotificationStepVariant$outboundSchema: z.ZodType< NotificationStepVariant > = z.object({ id: z.string().optional(), - parentId: z.lazy(() => NotificationStepVariantParentId$outboundSchema) - .optional(), + uuid: z.string().optional(), + name: z.string().optional(), templateId: z.string().optional(), active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$outboundSchema.optional(), filters: z.array(StepFilter$outboundSchema).optional(), + parentId: z.lazy(() => NotificationStepVariantParentId$outboundSchema) + .optional(), metadata: z.union([ DelayScheduledMetadata$outboundSchema, DelayRegularMetadata$outboundSchema, DigestTimedMetadata$outboundSchema, DigestRegularMetadata$outboundSchema, ]).optional(), - name: z.string().optional(), replyCallback: z.lazy(() => NotificationStepVariantReplyCallback$outboundSchema ).optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$outboundSchema.optional(), - uuid: z.string().optional(), }).transform((v) => { return remap$(v, { id: "_id", - parentId: "_parentId", templateId: "_templateId", + parentId: "_parentId", }); }); @@ -274,3 +338,21 @@ export namespace NotificationStepVariant$ { /** @deprecated use `NotificationStepVariant$Outbound` instead. */ export type Outbound = NotificationStepVariant$Outbound; } + +export function notificationStepVariantToJSON( + notificationStepVariant: NotificationStepVariant, +): string { + return JSON.stringify( + NotificationStepVariant$outboundSchema.parse(notificationStepVariant), + ); +} + +export function notificationStepVariantFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStepVariant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariant' from JSON`, + ); +} diff --git a/src/models/components/notificationtrigger.ts b/src/models/components/notificationtrigger.ts index e9b8cc0e..60397393 100644 --- a/src/models/components/notificationtrigger.ts +++ b/src/models/components/notificationtrigger.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { NotificationTriggerVariable, NotificationTriggerVariable$inboundSchema, @@ -19,10 +22,10 @@ export type NotificationTriggerType = ClosedEnum< >; export type NotificationTrigger = { - identifier: string; - subscriberVariables?: Array | undefined; type: NotificationTriggerType; + identifier: string; variables: Array; + subscriberVariables?: Array | undefined; }; /** @internal */ @@ -52,19 +55,19 @@ export const NotificationTrigger$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ + type: NotificationTriggerType$inboundSchema, identifier: z.string(), + variables: z.array(NotificationTriggerVariable$inboundSchema), subscriberVariables: z.array(NotificationTriggerVariable$inboundSchema) .optional(), - type: NotificationTriggerType$inboundSchema, - variables: z.array(NotificationTriggerVariable$inboundSchema), }); /** @internal */ export type NotificationTrigger$Outbound = { - identifier: string; - subscriberVariables?: Array | undefined; type: string; + identifier: string; variables: Array; + subscriberVariables?: Array | undefined; }; /** @internal */ @@ -73,11 +76,11 @@ export const NotificationTrigger$outboundSchema: z.ZodType< z.ZodTypeDef, NotificationTrigger > = z.object({ + type: NotificationTriggerType$outboundSchema, identifier: z.string(), + variables: z.array(NotificationTriggerVariable$outboundSchema), subscriberVariables: z.array(NotificationTriggerVariable$outboundSchema) .optional(), - type: NotificationTriggerType$outboundSchema, - variables: z.array(NotificationTriggerVariable$outboundSchema), }); /** @@ -92,3 +95,21 @@ export namespace NotificationTrigger$ { /** @deprecated use `NotificationTrigger$Outbound` instead. */ export type Outbound = NotificationTrigger$Outbound; } + +export function notificationTriggerToJSON( + notificationTrigger: NotificationTrigger, +): string { + return JSON.stringify( + NotificationTrigger$outboundSchema.parse(notificationTrigger), + ); +} + +export function notificationTriggerFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationTrigger$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationTrigger' from JSON`, + ); +} diff --git a/src/models/components/notificationtriggervariable.ts b/src/models/components/notificationtriggervariable.ts index 273d454e..e8961c30 100644 --- a/src/models/components/notificationtriggervariable.ts +++ b/src/models/components/notificationtriggervariable.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationTriggerVariable = { name: string; @@ -43,3 +46,23 @@ export namespace NotificationTriggerVariable$ { /** @deprecated use `NotificationTriggerVariable$Outbound` instead. */ export type Outbound = NotificationTriggerVariable$Outbound; } + +export function notificationTriggerVariableToJSON( + notificationTriggerVariable: NotificationTriggerVariable, +): string { + return JSON.stringify( + NotificationTriggerVariable$outboundSchema.parse( + notificationTriggerVariable, + ), + ); +} + +export function notificationTriggerVariableFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationTriggerVariable$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationTriggerVariable' from JSON`, + ); +} diff --git a/src/models/components/preference.ts b/src/models/components/preference.ts index 6b66833a..bdee77a4 100644 --- a/src/models/components/preference.ts +++ b/src/models/components/preference.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { PreferenceChannels, PreferenceChannels$inboundSchema, @@ -11,14 +14,14 @@ import { } from "./preferencechannels.js"; export type Preference = { - /** - * Subscriber preferences for the different channels regarding this workflow - */ - channels: PreferenceChannels; /** * Sets if the workflow is fully enabled for all channels or not for the subscriber. */ enabled: boolean; + /** + * Subscriber preferences for the different channels regarding this workflow + */ + channels: PreferenceChannels; }; /** @internal */ @@ -27,14 +30,14 @@ export const Preference$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - channels: PreferenceChannels$inboundSchema, enabled: z.boolean(), + channels: PreferenceChannels$inboundSchema, }); /** @internal */ export type Preference$Outbound = { - channels: PreferenceChannels$Outbound; enabled: boolean; + channels: PreferenceChannels$Outbound; }; /** @internal */ @@ -43,8 +46,8 @@ export const Preference$outboundSchema: z.ZodType< z.ZodTypeDef, Preference > = z.object({ - channels: PreferenceChannels$outboundSchema, enabled: z.boolean(), + channels: PreferenceChannels$outboundSchema, }); /** @@ -59,3 +62,17 @@ export namespace Preference$ { /** @deprecated use `Preference$Outbound` instead. */ export type Outbound = Preference$Outbound; } + +export function preferenceToJSON(preference: Preference): string { + return JSON.stringify(Preference$outboundSchema.parse(preference)); +} + +export function preferenceFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Preference$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Preference' from JSON`, + ); +} diff --git a/src/models/components/preferencechannels.ts b/src/models/components/preferencechannels.ts index a0c356c6..b4022c33 100644 --- a/src/models/components/preferencechannels.ts +++ b/src/models/components/preferencechannels.ts @@ -4,13 +4,16 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type PreferenceChannels = { - chat?: boolean | undefined; email?: boolean | undefined; + sms?: boolean | undefined; inApp?: boolean | undefined; + chat?: boolean | undefined; push?: boolean | undefined; - sms?: boolean | undefined; }; /** @internal */ @@ -19,11 +22,11 @@ export const PreferenceChannels$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - chat: z.boolean().optional(), email: z.boolean().optional(), + sms: z.boolean().optional(), in_app: z.boolean().optional(), + chat: z.boolean().optional(), push: z.boolean().optional(), - sms: z.boolean().optional(), }).transform((v) => { return remap$(v, { "in_app": "inApp", @@ -32,11 +35,11 @@ export const PreferenceChannels$inboundSchema: z.ZodType< /** @internal */ export type PreferenceChannels$Outbound = { - chat?: boolean | undefined; email?: boolean | undefined; + sms?: boolean | undefined; in_app?: boolean | undefined; + chat?: boolean | undefined; push?: boolean | undefined; - sms?: boolean | undefined; }; /** @internal */ @@ -45,11 +48,11 @@ export const PreferenceChannels$outboundSchema: z.ZodType< z.ZodTypeDef, PreferenceChannels > = z.object({ - chat: z.boolean().optional(), email: z.boolean().optional(), + sms: z.boolean().optional(), inApp: z.boolean().optional(), + chat: z.boolean().optional(), push: z.boolean().optional(), - sms: z.boolean().optional(), }).transform((v) => { return remap$(v, { inApp: "in_app", @@ -68,3 +71,21 @@ export namespace PreferenceChannels$ { /** @deprecated use `PreferenceChannels$Outbound` instead. */ export type Outbound = PreferenceChannels$Outbound; } + +export function preferenceChannelsToJSON( + preferenceChannels: PreferenceChannels, +): string { + return JSON.stringify( + PreferenceChannels$outboundSchema.parse(preferenceChannels), + ); +} + +export function preferenceChannelsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PreferenceChannels$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PreferenceChannels' from JSON`, + ); +} diff --git a/src/models/components/removesubscribersrequestdto.ts b/src/models/components/removesubscribersrequestdto.ts index 6fb22794..963a2092 100644 --- a/src/models/components/removesubscribersrequestdto.ts +++ b/src/models/components/removesubscribersrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type RemoveSubscribersRequestDto = { /** @@ -46,3 +49,23 @@ export namespace RemoveSubscribersRequestDto$ { /** @deprecated use `RemoveSubscribersRequestDto$Outbound` instead. */ export type Outbound = RemoveSubscribersRequestDto$Outbound; } + +export function removeSubscribersRequestDtoToJSON( + removeSubscribersRequestDto: RemoveSubscribersRequestDto, +): string { + return JSON.stringify( + RemoveSubscribersRequestDto$outboundSchema.parse( + removeSubscribersRequestDto, + ), + ); +} + +export function removeSubscribersRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => RemoveSubscribersRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'RemoveSubscribersRequestDto' from JSON`, + ); +} diff --git a/src/models/components/renametopicrequestdto.ts b/src/models/components/renametopicrequestdto.ts index 794dd1e6..fd03c301 100644 --- a/src/models/components/renametopicrequestdto.ts +++ b/src/models/components/renametopicrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type RenameTopicRequestDto = { /** @@ -46,3 +49,21 @@ export namespace RenameTopicRequestDto$ { /** @deprecated use `RenameTopicRequestDto$Outbound` instead. */ export type Outbound = RenameTopicRequestDto$Outbound; } + +export function renameTopicRequestDtoToJSON( + renameTopicRequestDto: RenameTopicRequestDto, +): string { + return JSON.stringify( + RenameTopicRequestDto$outboundSchema.parse(renameTopicRequestDto), + ); +} + +export function renameTopicRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => RenameTopicRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'RenameTopicRequestDto' from JSON`, + ); +} diff --git a/src/models/components/renametopicresponsedto.ts b/src/models/components/renametopicresponsedto.ts index cbebc2e0..b993443b 100644 --- a/src/models/components/renametopicresponsedto.ts +++ b/src/models/components/renametopicresponsedto.ts @@ -4,11 +4,14 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type RenameTopicResponseDto = { - environmentId: string; id?: string | undefined; organizationId: string; + environmentId: string; key: string; name: string; subscribers: Array; @@ -20,25 +23,25 @@ export const RenameTopicResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), _organizationId: z.string(), + _environmentId: z.string(), key: z.string(), name: z.string(), subscribers: z.array(z.string()), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", "_organizationId": "organizationId", + "_environmentId": "environmentId", }); }); /** @internal */ export type RenameTopicResponseDto$Outbound = { - _environmentId: string; _id?: string | undefined; _organizationId: string; + _environmentId: string; key: string; name: string; subscribers: Array; @@ -50,17 +53,17 @@ export const RenameTopicResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, RenameTopicResponseDto > = z.object({ - environmentId: z.string(), id: z.string().optional(), organizationId: z.string(), + environmentId: z.string(), key: z.string(), name: z.string(), subscribers: z.array(z.string()), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", organizationId: "_organizationId", + environmentId: "_environmentId", }); }); @@ -76,3 +79,21 @@ export namespace RenameTopicResponseDto$ { /** @deprecated use `RenameTopicResponseDto$Outbound` instead. */ export type Outbound = RenameTopicResponseDto$Outbound; } + +export function renameTopicResponseDtoToJSON( + renameTopicResponseDto: RenameTopicResponseDto, +): string { + return JSON.stringify( + RenameTopicResponseDto$outboundSchema.parse(renameTopicResponseDto), + ); +} + +export function renameTopicResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => RenameTopicResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'RenameTopicResponseDto' from JSON`, + ); +} diff --git a/src/models/components/security.ts b/src/models/components/security.ts index 7d21f891..8000a90c 100644 --- a/src/models/components/security.ts +++ b/src/models/components/security.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type Security = { apiKey: string; @@ -52,3 +55,17 @@ export namespace Security$ { /** @deprecated use `Security$Outbound` instead. */ export type Outbound = Security$Outbound; } + +export function securityToJSON(security: Security): string { + return JSON.stringify(Security$outboundSchema.parse(security)); +} + +export function securityFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Security$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Security' from JSON`, + ); +} diff --git a/src/models/components/stepfilter.ts b/src/models/components/stepfilter.ts index 2d1c702f..4ad0efc6 100644 --- a/src/models/components/stepfilter.ts +++ b/src/models/components/stepfilter.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { FieldFilterPart, FieldFilterPart$inboundSchema, @@ -30,10 +33,10 @@ export const Value = { export type Value = ClosedEnum; export type StepFilter = { - children: Array; isNegated: boolean; type: StepFilterType; value: Value; + children: Array; }; /** @internal */ @@ -83,18 +86,18 @@ export const StepFilter$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - children: z.array(FieldFilterPart$inboundSchema), isNegated: z.boolean(), type: StepFilterType$inboundSchema, value: Value$inboundSchema, + children: z.array(FieldFilterPart$inboundSchema), }); /** @internal */ export type StepFilter$Outbound = { - children: Array; isNegated: boolean; type: string; value: string; + children: Array; }; /** @internal */ @@ -103,10 +106,10 @@ export const StepFilter$outboundSchema: z.ZodType< z.ZodTypeDef, StepFilter > = z.object({ - children: z.array(FieldFilterPart$outboundSchema), isNegated: z.boolean(), type: StepFilterType$outboundSchema, value: Value$outboundSchema, + children: z.array(FieldFilterPart$outboundSchema), }); /** @@ -121,3 +124,17 @@ export namespace StepFilter$ { /** @deprecated use `StepFilter$Outbound` instead. */ export type Outbound = StepFilter$Outbound; } + +export function stepFilterToJSON(stepFilter: StepFilter): string { + return JSON.stringify(StepFilter$outboundSchema.parse(stepFilter)); +} + +export function stepFilterFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => StepFilter$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'StepFilter' from JSON`, + ); +} diff --git a/src/models/components/subscriberpayloaddto.ts b/src/models/components/subscriberpayloaddto.ts index 74e1ffe1..da926aad 100644 --- a/src/models/components/subscriberpayloaddto.ts +++ b/src/models/components/subscriberpayloaddto.ts @@ -3,55 +3,66 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export type SubscriberPayloadDtoData = {}; +export type Data = {}; export type SubscriberPayloadDto = { /** - * An http url to the profile image of your subscriber + * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems */ - avatar?: string | undefined; - channels?: Array | undefined; - data?: SubscriberPayloadDtoData | undefined; + subscriberId: string; email?: string | undefined; firstName?: string | undefined; lastName?: string | undefined; - locale?: string | undefined; phone?: string | undefined; /** - * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + * An http url to the profile image of your subscriber */ - subscriberId: string; + avatar?: string | undefined; + locale?: string | undefined; + data?: Data | undefined; + channels?: Array | undefined; }; /** @internal */ -export const SubscriberPayloadDtoData$inboundSchema: z.ZodType< - SubscriberPayloadDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); +export const Data$inboundSchema: z.ZodType = z + .object({}); /** @internal */ -export type SubscriberPayloadDtoData$Outbound = {}; +export type Data$Outbound = {}; /** @internal */ -export const SubscriberPayloadDtoData$outboundSchema: z.ZodType< - SubscriberPayloadDtoData$Outbound, - z.ZodTypeDef, - SubscriberPayloadDtoData -> = z.object({}); +export const Data$outboundSchema: z.ZodType = + z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace SubscriberPayloadDtoData$ { - /** @deprecated use `SubscriberPayloadDtoData$inboundSchema` instead. */ - export const inboundSchema = SubscriberPayloadDtoData$inboundSchema; - /** @deprecated use `SubscriberPayloadDtoData$outboundSchema` instead. */ - export const outboundSchema = SubscriberPayloadDtoData$outboundSchema; - /** @deprecated use `SubscriberPayloadDtoData$Outbound` instead. */ - export type Outbound = SubscriberPayloadDtoData$Outbound; +export namespace Data$ { + /** @deprecated use `Data$inboundSchema` instead. */ + export const inboundSchema = Data$inboundSchema; + /** @deprecated use `Data$outboundSchema` instead. */ + export const outboundSchema = Data$outboundSchema; + /** @deprecated use `Data$Outbound` instead. */ + export type Outbound = Data$Outbound; +} + +export function dataToJSON(data: Data): string { + return JSON.stringify(Data$outboundSchema.parse(data)); +} + +export function dataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Data$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Data' from JSON`, + ); } /** @internal */ @@ -60,28 +71,28 @@ export const SubscriberPayloadDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - avatar: z.string().optional(), - channels: z.array(z.string()).optional(), - data: z.lazy(() => SubscriberPayloadDtoData$inboundSchema).optional(), + subscriberId: z.string(), email: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), - locale: z.string().optional(), phone: z.string().optional(), - subscriberId: z.string(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => Data$inboundSchema).optional(), + channels: z.array(z.string()).optional(), }); /** @internal */ export type SubscriberPayloadDto$Outbound = { - avatar?: string | undefined; - channels?: Array | undefined; - data?: SubscriberPayloadDtoData$Outbound | undefined; + subscriberId: string; email?: string | undefined; firstName?: string | undefined; lastName?: string | undefined; - locale?: string | undefined; phone?: string | undefined; - subscriberId: string; + avatar?: string | undefined; + locale?: string | undefined; + data?: Data$Outbound | undefined; + channels?: Array | undefined; }; /** @internal */ @@ -90,15 +101,15 @@ export const SubscriberPayloadDto$outboundSchema: z.ZodType< z.ZodTypeDef, SubscriberPayloadDto > = z.object({ - avatar: z.string().optional(), - channels: z.array(z.string()).optional(), - data: z.lazy(() => SubscriberPayloadDtoData$outboundSchema).optional(), + subscriberId: z.string(), email: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), - locale: z.string().optional(), phone: z.string().optional(), - subscriberId: z.string(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => Data$outboundSchema).optional(), + channels: z.array(z.string()).optional(), }); /** @@ -113,3 +124,21 @@ export namespace SubscriberPayloadDto$ { /** @deprecated use `SubscriberPayloadDto$Outbound` instead. */ export type Outbound = SubscriberPayloadDto$Outbound; } + +export function subscriberPayloadDtoToJSON( + subscriberPayloadDto: SubscriberPayloadDto, +): string { + return JSON.stringify( + SubscriberPayloadDto$outboundSchema.parse(subscriberPayloadDto), + ); +} + +export function subscriberPayloadDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SubscriberPayloadDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SubscriberPayloadDto' from JSON`, + ); +} diff --git a/src/models/components/subscriberresponsedto.ts b/src/models/components/subscriberresponsedto.ts index 200f0616..24f069d6 100644 --- a/src/models/components/subscriberresponsedto.ts +++ b/src/models/components/subscriberresponsedto.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ChannelSettings, ChannelSettings$inboundSchema, @@ -12,32 +15,36 @@ import { } from "./channelsettings.js"; export type SubscriberResponseDto = { - v?: number | undefined; - environmentId: string; /** * The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that */ id?: string | undefined; - organizationId: string; - avatar?: string | undefined; - /** - * Channels settings for subscriber - */ - channels?: Array | undefined; - createdAt: string; - deleted: boolean; - email?: string | undefined; firstName?: string | undefined; - isOnline?: boolean | undefined; lastName?: string | undefined; - lastOnlineAt?: string | undefined; - locale?: string | undefined; + email?: string | undefined; phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; /** * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems */ subscriberId: string; + /** + * Channels settings for subscriber + */ + channels?: Array | undefined; + /** + * Topics that subscriber belongs to + */ + topics?: Array | undefined; + isOnline?: boolean | undefined; + lastOnlineAt?: string | undefined; + organizationId: string; + environmentId: string; + deleted: boolean; + createdAt: string; updatedAt: string; + v?: number | undefined; }; /** @internal */ @@ -46,51 +53,53 @@ export const SubscriberResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - __v: z.number().optional(), - _environmentId: z.string(), _id: z.string().optional(), - _organizationId: z.string(), - avatar: z.string().optional(), - channels: z.array(ChannelSettings$inboundSchema).optional(), - createdAt: z.string(), - deleted: z.boolean(), - email: z.string().optional(), firstName: z.string().optional(), - isOnline: z.boolean().optional(), lastName: z.string().optional(), - lastOnlineAt: z.string().optional(), - locale: z.string().optional(), + email: z.string().optional(), phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), subscriberId: z.string(), + channels: z.array(ChannelSettings$inboundSchema).optional(), + topics: z.array(z.string()).optional(), + isOnline: z.boolean().optional(), + lastOnlineAt: z.string().optional(), + _organizationId: z.string(), + _environmentId: z.string(), + deleted: z.boolean(), + createdAt: z.string(), updatedAt: z.string(), + __v: z.number().optional(), }).transform((v) => { return remap$(v, { - "__v": "v", - "_environmentId": "environmentId", "_id": "id", "_organizationId": "organizationId", + "_environmentId": "environmentId", + "__v": "v", }); }); /** @internal */ export type SubscriberResponseDto$Outbound = { - __v?: number | undefined; - _environmentId: string; _id?: string | undefined; - _organizationId: string; - avatar?: string | undefined; - channels?: Array | undefined; - createdAt: string; - deleted: boolean; - email?: string | undefined; firstName?: string | undefined; - isOnline?: boolean | undefined; lastName?: string | undefined; - lastOnlineAt?: string | undefined; - locale?: string | undefined; + email?: string | undefined; phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; subscriberId: string; + channels?: Array | undefined; + topics?: Array | undefined; + isOnline?: boolean | undefined; + lastOnlineAt?: string | undefined; + _organizationId: string; + _environmentId: string; + deleted: boolean; + createdAt: string; updatedAt: string; + __v?: number | undefined; }; /** @internal */ @@ -99,29 +108,30 @@ export const SubscriberResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, SubscriberResponseDto > = z.object({ - v: z.number().optional(), - environmentId: z.string(), id: z.string().optional(), - organizationId: z.string(), - avatar: z.string().optional(), - channels: z.array(ChannelSettings$outboundSchema).optional(), - createdAt: z.string(), - deleted: z.boolean(), - email: z.string().optional(), firstName: z.string().optional(), - isOnline: z.boolean().optional(), lastName: z.string().optional(), - lastOnlineAt: z.string().optional(), - locale: z.string().optional(), + email: z.string().optional(), phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), subscriberId: z.string(), + channels: z.array(ChannelSettings$outboundSchema).optional(), + topics: z.array(z.string()).optional(), + isOnline: z.boolean().optional(), + lastOnlineAt: z.string().optional(), + organizationId: z.string(), + environmentId: z.string(), + deleted: z.boolean(), + createdAt: z.string(), updatedAt: z.string(), + v: z.number().optional(), }).transform((v) => { return remap$(v, { - v: "__v", - environmentId: "_environmentId", id: "_id", organizationId: "_organizationId", + environmentId: "_environmentId", + v: "__v", }); }); @@ -137,3 +147,21 @@ export namespace SubscriberResponseDto$ { /** @deprecated use `SubscriberResponseDto$Outbound` instead. */ export type Outbound = SubscriberResponseDto$Outbound; } + +export function subscriberResponseDtoToJSON( + subscriberResponseDto: SubscriberResponseDto, +): string { + return JSON.stringify( + SubscriberResponseDto$outboundSchema.parse(subscriberResponseDto), + ); +} + +export function subscriberResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SubscriberResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SubscriberResponseDto' from JSON`, + ); +} diff --git a/src/models/components/templateresponse.ts b/src/models/components/templateresponse.ts index 042b992b..04894f27 100644 --- a/src/models/components/templateresponse.ts +++ b/src/models/components/templateresponse.ts @@ -4,20 +4,23 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TemplateResponse = { /** * Unique identifier of the workflow */ id: string; - /** - * Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - */ - critical: boolean; /** * Name of the workflow */ name: string; + /** + * Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + */ + critical: boolean; /** * Triggers are the events that will trigger the workflow. */ @@ -31,8 +34,8 @@ export const TemplateResponse$inboundSchema: z.ZodType< unknown > = z.object({ _id: z.string(), - critical: z.boolean(), name: z.string(), + critical: z.boolean(), triggers: z.array(z.string()), }).transform((v) => { return remap$(v, { @@ -43,8 +46,8 @@ export const TemplateResponse$inboundSchema: z.ZodType< /** @internal */ export type TemplateResponse$Outbound = { _id: string; - critical: boolean; name: string; + critical: boolean; triggers: Array; }; @@ -55,8 +58,8 @@ export const TemplateResponse$outboundSchema: z.ZodType< TemplateResponse > = z.object({ id: z.string(), - critical: z.boolean(), name: z.string(), + critical: z.boolean(), triggers: z.array(z.string()), }).transform((v) => { return remap$(v, { @@ -76,3 +79,21 @@ export namespace TemplateResponse$ { /** @deprecated use `TemplateResponse$Outbound` instead. */ export type Outbound = TemplateResponse$Outbound; } + +export function templateResponseToJSON( + templateResponse: TemplateResponse, +): string { + return JSON.stringify( + TemplateResponse$outboundSchema.parse(templateResponse), + ); +} + +export function templateResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TemplateResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TemplateResponse' from JSON`, + ); +} diff --git a/src/models/components/tenantpayloaddto.ts b/src/models/components/tenantpayloaddto.ts index 146daada..25a1ac9d 100644 --- a/src/models/components/tenantpayloaddto.ts +++ b/src/models/components/tenantpayloaddto.ts @@ -3,13 +3,16 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TenantPayloadDtoData = {}; export type TenantPayloadDto = { - data?: TenantPayloadDtoData | undefined; identifier?: string | undefined; name?: string | undefined; + data?: TenantPayloadDtoData | undefined; }; /** @internal */ @@ -42,22 +45,40 @@ export namespace TenantPayloadDtoData$ { export type Outbound = TenantPayloadDtoData$Outbound; } +export function tenantPayloadDtoDataToJSON( + tenantPayloadDtoData: TenantPayloadDtoData, +): string { + return JSON.stringify( + TenantPayloadDtoData$outboundSchema.parse(tenantPayloadDtoData), + ); +} + +export function tenantPayloadDtoDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TenantPayloadDtoData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TenantPayloadDtoData' from JSON`, + ); +} + /** @internal */ export const TenantPayloadDto$inboundSchema: z.ZodType< TenantPayloadDto, z.ZodTypeDef, unknown > = z.object({ - data: z.lazy(() => TenantPayloadDtoData$inboundSchema).optional(), identifier: z.string().optional(), name: z.string().optional(), + data: z.lazy(() => TenantPayloadDtoData$inboundSchema).optional(), }); /** @internal */ export type TenantPayloadDto$Outbound = { - data?: TenantPayloadDtoData$Outbound | undefined; identifier?: string | undefined; name?: string | undefined; + data?: TenantPayloadDtoData$Outbound | undefined; }; /** @internal */ @@ -66,9 +87,9 @@ export const TenantPayloadDto$outboundSchema: z.ZodType< z.ZodTypeDef, TenantPayloadDto > = z.object({ - data: z.lazy(() => TenantPayloadDtoData$outboundSchema).optional(), identifier: z.string().optional(), name: z.string().optional(), + data: z.lazy(() => TenantPayloadDtoData$outboundSchema).optional(), }); /** @@ -83,3 +104,21 @@ export namespace TenantPayloadDto$ { /** @deprecated use `TenantPayloadDto$Outbound` instead. */ export type Outbound = TenantPayloadDto$Outbound; } + +export function tenantPayloadDtoToJSON( + tenantPayloadDto: TenantPayloadDto, +): string { + return JSON.stringify( + TenantPayloadDto$outboundSchema.parse(tenantPayloadDto), + ); +} + +export function tenantPayloadDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TenantPayloadDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TenantPayloadDto' from JSON`, + ); +} diff --git a/src/models/components/timedconfig.ts b/src/models/components/timedconfig.ts index b9cb534d..15330964 100644 --- a/src/models/components/timedconfig.ts +++ b/src/models/components/timedconfig.ts @@ -3,13 +3,21 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export const MonthlyType = { - Each: "each", - On: "on", +export const WeekDays = { + Monday: "monday", + Tuesday: "tuesday", + Wednesday: "wednesday", + Thursday: "thursday", + Friday: "friday", + Saturday: "saturday", + Sunday: "sunday", } as const; -export type MonthlyType = ClosedEnum; +export type WeekDays = ClosedEnum; export const Ordinal = { One: "1", @@ -35,43 +43,38 @@ export const OrdinalValue = { } as const; export type OrdinalValue = ClosedEnum; -export const WeekDays = { - Monday: "monday", - Tuesday: "tuesday", - Wednesday: "wednesday", - Thursday: "thursday", - Friday: "friday", - Saturday: "saturday", - Sunday: "sunday", +export const MonthlyType = { + Each: "each", + On: "on", } as const; -export type WeekDays = ClosedEnum; +export type MonthlyType = ClosedEnum; export type TimedConfig = { atTime?: string | undefined; + weekDays?: Array | undefined; monthDays?: Array | undefined; - monthlyType?: MonthlyType | undefined; ordinal?: Ordinal | undefined; ordinalValue?: OrdinalValue | undefined; - weekDays?: Array | undefined; + monthlyType?: MonthlyType | undefined; }; /** @internal */ -export const MonthlyType$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(MonthlyType); +export const WeekDays$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(WeekDays); /** @internal */ -export const MonthlyType$outboundSchema: z.ZodNativeEnum = - MonthlyType$inboundSchema; +export const WeekDays$outboundSchema: z.ZodNativeEnum = + WeekDays$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace MonthlyType$ { - /** @deprecated use `MonthlyType$inboundSchema` instead. */ - export const inboundSchema = MonthlyType$inboundSchema; - /** @deprecated use `MonthlyType$outboundSchema` instead. */ - export const outboundSchema = MonthlyType$outboundSchema; +export namespace WeekDays$ { + /** @deprecated use `WeekDays$inboundSchema` instead. */ + export const inboundSchema = WeekDays$inboundSchema; + /** @deprecated use `WeekDays$outboundSchema` instead. */ + export const outboundSchema = WeekDays$outboundSchema; } /** @internal */ @@ -113,22 +116,22 @@ export namespace OrdinalValue$ { } /** @internal */ -export const WeekDays$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(WeekDays); +export const MonthlyType$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(MonthlyType); /** @internal */ -export const WeekDays$outboundSchema: z.ZodNativeEnum = - WeekDays$inboundSchema; +export const MonthlyType$outboundSchema: z.ZodNativeEnum = + MonthlyType$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace WeekDays$ { - /** @deprecated use `WeekDays$inboundSchema` instead. */ - export const inboundSchema = WeekDays$inboundSchema; - /** @deprecated use `WeekDays$outboundSchema` instead. */ - export const outboundSchema = WeekDays$outboundSchema; +export namespace MonthlyType$ { + /** @deprecated use `MonthlyType$inboundSchema` instead. */ + export const inboundSchema = MonthlyType$inboundSchema; + /** @deprecated use `MonthlyType$outboundSchema` instead. */ + export const outboundSchema = MonthlyType$outboundSchema; } /** @internal */ @@ -138,21 +141,21 @@ export const TimedConfig$inboundSchema: z.ZodType< unknown > = z.object({ atTime: z.string().optional(), + weekDays: z.array(WeekDays$inboundSchema).optional(), monthDays: z.array(z.string()).optional(), - monthlyType: MonthlyType$inboundSchema.optional(), ordinal: Ordinal$inboundSchema.optional(), ordinalValue: OrdinalValue$inboundSchema.optional(), - weekDays: z.array(WeekDays$inboundSchema).optional(), + monthlyType: MonthlyType$inboundSchema.optional(), }); /** @internal */ export type TimedConfig$Outbound = { atTime?: string | undefined; + weekDays?: Array | undefined; monthDays?: Array | undefined; - monthlyType?: string | undefined; ordinal?: string | undefined; ordinalValue?: string | undefined; - weekDays?: Array | undefined; + monthlyType?: string | undefined; }; /** @internal */ @@ -162,11 +165,11 @@ export const TimedConfig$outboundSchema: z.ZodType< TimedConfig > = z.object({ atTime: z.string().optional(), + weekDays: z.array(WeekDays$outboundSchema).optional(), monthDays: z.array(z.string()).optional(), - monthlyType: MonthlyType$outboundSchema.optional(), ordinal: Ordinal$outboundSchema.optional(), ordinalValue: OrdinalValue$outboundSchema.optional(), - weekDays: z.array(WeekDays$outboundSchema).optional(), + monthlyType: MonthlyType$outboundSchema.optional(), }); /** @@ -181,3 +184,17 @@ export namespace TimedConfig$ { /** @deprecated use `TimedConfig$Outbound` instead. */ export type Outbound = TimedConfig$Outbound; } + +export function timedConfigToJSON(timedConfig: TimedConfig): string { + return JSON.stringify(TimedConfig$outboundSchema.parse(timedConfig)); +} + +export function timedConfigFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TimedConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TimedConfig' from JSON`, + ); +} diff --git a/src/models/components/topicdto.ts b/src/models/components/topicdto.ts index 0ba8c552..277aa072 100644 --- a/src/models/components/topicdto.ts +++ b/src/models/components/topicdto.ts @@ -4,11 +4,14 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicDto = { - environmentId: string; id?: string | undefined; organizationId: string; + environmentId: string; key: string; name: string; subscribers: Array; @@ -20,25 +23,25 @@ export const TopicDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _id: z.string().optional(), _organizationId: z.string(), + _environmentId: z.string(), key: z.string(), name: z.string(), subscribers: z.array(z.string()), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_id": "id", "_organizationId": "organizationId", + "_environmentId": "environmentId", }); }); /** @internal */ export type TopicDto$Outbound = { - _environmentId: string; _id?: string | undefined; _organizationId: string; + _environmentId: string; key: string; name: string; subscribers: Array; @@ -50,17 +53,17 @@ export const TopicDto$outboundSchema: z.ZodType< z.ZodTypeDef, TopicDto > = z.object({ - environmentId: z.string(), id: z.string().optional(), organizationId: z.string(), + environmentId: z.string(), key: z.string(), name: z.string(), subscribers: z.array(z.string()), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", id: "_id", organizationId: "_organizationId", + environmentId: "_environmentId", }); }); @@ -76,3 +79,17 @@ export namespace TopicDto$ { /** @deprecated use `TopicDto$Outbound` instead. */ export type Outbound = TopicDto$Outbound; } + +export function topicDtoToJSON(topicDto: TopicDto): string { + return JSON.stringify(TopicDto$outboundSchema.parse(topicDto)); +} + +export function topicDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicDto' from JSON`, + ); +} diff --git a/src/models/components/topicpayloaddto.ts b/src/models/components/topicpayloaddto.ts index b1bc59c8..e23a509b 100644 --- a/src/models/components/topicpayloaddto.ts +++ b/src/models/components/topicpayloaddto.ts @@ -3,38 +3,40 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export const TopicPayloadDtoType = { +export const Type = { Subscriber: "Subscriber", Topic: "Topic", } as const; -export type TopicPayloadDtoType = ClosedEnum; +export type Type = ClosedEnum; export type TopicPayloadDto = { topicKey: string; - type: TopicPayloadDtoType; + type: Type; }; /** @internal */ -export const TopicPayloadDtoType$inboundSchema: z.ZodNativeEnum< - typeof TopicPayloadDtoType -> = z.nativeEnum(TopicPayloadDtoType); +export const Type$inboundSchema: z.ZodNativeEnum = z.nativeEnum( + Type, +); /** @internal */ -export const TopicPayloadDtoType$outboundSchema: z.ZodNativeEnum< - typeof TopicPayloadDtoType -> = TopicPayloadDtoType$inboundSchema; +export const Type$outboundSchema: z.ZodNativeEnum = + Type$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace TopicPayloadDtoType$ { - /** @deprecated use `TopicPayloadDtoType$inboundSchema` instead. */ - export const inboundSchema = TopicPayloadDtoType$inboundSchema; - /** @deprecated use `TopicPayloadDtoType$outboundSchema` instead. */ - export const outboundSchema = TopicPayloadDtoType$outboundSchema; +export namespace Type$ { + /** @deprecated use `Type$inboundSchema` instead. */ + export const inboundSchema = Type$inboundSchema; + /** @deprecated use `Type$outboundSchema` instead. */ + export const outboundSchema = Type$outboundSchema; } /** @internal */ @@ -44,7 +46,7 @@ export const TopicPayloadDto$inboundSchema: z.ZodType< unknown > = z.object({ topicKey: z.string(), - type: TopicPayloadDtoType$inboundSchema, + type: Type$inboundSchema, }); /** @internal */ @@ -60,7 +62,7 @@ export const TopicPayloadDto$outboundSchema: z.ZodType< TopicPayloadDto > = z.object({ topicKey: z.string(), - type: TopicPayloadDtoType$outboundSchema, + type: Type$outboundSchema, }); /** @@ -75,3 +77,19 @@ export namespace TopicPayloadDto$ { /** @deprecated use `TopicPayloadDto$Outbound` instead. */ export type Outbound = TopicPayloadDto$Outbound; } + +export function topicPayloadDtoToJSON( + topicPayloadDto: TopicPayloadDto, +): string { + return JSON.stringify(TopicPayloadDto$outboundSchema.parse(topicPayloadDto)); +} + +export function topicPayloadDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicPayloadDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicPayloadDto' from JSON`, + ); +} diff --git a/src/models/components/topicsubscriberdto.ts b/src/models/components/topicsubscriberdto.ts index 72a16f4a..974296fb 100644 --- a/src/models/components/topicsubscriberdto.ts +++ b/src/models/components/topicsubscriberdto.ts @@ -4,14 +4,17 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicSubscriberDto = { - environmentId: string; organizationId: string; + environmentId: string; subscriberId: string; topicId: string; - externalSubscriberId: string; topicKey: string; + externalSubscriberId: string; }; /** @internal */ @@ -20,16 +23,16 @@ export const TopicSubscriberDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - _environmentId: z.string(), _organizationId: z.string(), + _environmentId: z.string(), _subscriberId: z.string(), _topicId: z.string(), - externalSubscriberId: z.string(), topicKey: z.string(), + externalSubscriberId: z.string(), }).transform((v) => { return remap$(v, { - "_environmentId": "environmentId", "_organizationId": "organizationId", + "_environmentId": "environmentId", "_subscriberId": "subscriberId", "_topicId": "topicId", }); @@ -37,12 +40,12 @@ export const TopicSubscriberDto$inboundSchema: z.ZodType< /** @internal */ export type TopicSubscriberDto$Outbound = { - _environmentId: string; _organizationId: string; + _environmentId: string; _subscriberId: string; _topicId: string; - externalSubscriberId: string; topicKey: string; + externalSubscriberId: string; }; /** @internal */ @@ -51,16 +54,16 @@ export const TopicSubscriberDto$outboundSchema: z.ZodType< z.ZodTypeDef, TopicSubscriberDto > = z.object({ - environmentId: z.string(), organizationId: z.string(), + environmentId: z.string(), subscriberId: z.string(), topicId: z.string(), - externalSubscriberId: z.string(), topicKey: z.string(), + externalSubscriberId: z.string(), }).transform((v) => { return remap$(v, { - environmentId: "_environmentId", organizationId: "_organizationId", + environmentId: "_environmentId", subscriberId: "_subscriberId", topicId: "_topicId", }); @@ -78,3 +81,21 @@ export namespace TopicSubscriberDto$ { /** @deprecated use `TopicSubscriberDto$Outbound` instead. */ export type Outbound = TopicSubscriberDto$Outbound; } + +export function topicSubscriberDtoToJSON( + topicSubscriberDto: TopicSubscriberDto, +): string { + return JSON.stringify( + TopicSubscriberDto$outboundSchema.parse(topicSubscriberDto), + ); +} + +export function topicSubscriberDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicSubscriberDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicSubscriberDto' from JSON`, + ); +} diff --git a/src/models/components/triggereventrequestdto.ts b/src/models/components/triggereventrequestdto.ts index 608ff75e..6409a61a 100644 --- a/src/models/components/triggereventrequestdto.ts +++ b/src/models/components/triggereventrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { SubscriberPayloadDto, SubscriberPayloadDto$inboundSchema, @@ -23,27 +26,27 @@ import { } from "./topicpayloaddto.js"; /** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. + * The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. * * @remarks - * If a new actor object is provided, we will create a new subscriber in our system + * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. */ -export type Actor = SubscriberPayloadDto | string; - -export type Controls = {}; +export type Payload = {}; /** * This could be used to override provider specific configurations */ -export type TriggerEventRequestDtoOverrides = {}; +export type Overrides = {}; + +export type To = TopicPayloadDto | SubscriberPayloadDto | string; /** - * The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. + * It is used to display the Avatar of the provided actor's subscriber id or actor object. * * @remarks - * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + * If a new actor object is provided, we will create a new subscriber in our system */ -export type TriggerEventRequestDtoPayload = {}; +export type Actor = SubscriberPayloadDto | string; /** * It is used to specify a tenant context during trigger event. @@ -53,40 +56,24 @@ export type TriggerEventRequestDtoPayload = {}; */ export type Tenant = TenantPayloadDto | string; -export type To = TopicPayloadDto | SubscriberPayloadDto | string; +export type Controls = {}; export type TriggerEventRequestDto = { - /** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. - * - * @remarks - * If a new actor object is provided, we will create a new subscriber in our system - */ - actor?: SubscriberPayloadDto | string | undefined; - bridgeUrl?: string | undefined; - controls?: Controls | undefined; /** * The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. */ name: string; - /** - * This could be used to override provider specific configurations - */ - overrides?: TriggerEventRequestDtoOverrides | undefined; /** * The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. * * @remarks * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. */ - payload?: TriggerEventRequestDtoPayload | undefined; + payload?: Payload | undefined; /** - * It is used to specify a tenant context during trigger event. - * - * @remarks - * Existing tenants will be updated with the provided details. + * This could be used to override provider specific configurations */ - tenant?: TenantPayloadDto | string | undefined; + overrides?: Overrides | undefined; /** * The recipients list of people who will receive the notification. */ @@ -95,123 +82,196 @@ export type TriggerEventRequestDto = { * A unique identifier for this transaction, we will generated a UUID if not provided. */ transactionId?: string | undefined; + /** + * It is used to display the Avatar of the provided actor's subscriber id or actor object. + * + * @remarks + * If a new actor object is provided, we will create a new subscriber in our system + */ + actor?: SubscriberPayloadDto | string | undefined; + /** + * It is used to specify a tenant context during trigger event. + * + * @remarks + * Existing tenants will be updated with the provided details. + */ + tenant?: TenantPayloadDto | string | undefined; + bridgeUrl?: string | undefined; + controls?: Controls | undefined; }; /** @internal */ -export const Actor$inboundSchema: z.ZodType = z - .union([SubscriberPayloadDto$inboundSchema, z.string()]); +export const Payload$inboundSchema: z.ZodType = + z.object({}); /** @internal */ -export type Actor$Outbound = SubscriberPayloadDto$Outbound | string; +export type Payload$Outbound = {}; /** @internal */ -export const Actor$outboundSchema: z.ZodType< - Actor$Outbound, +export const Payload$outboundSchema: z.ZodType< + Payload$Outbound, z.ZodTypeDef, - Actor -> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); + Payload +> = z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Actor$ { - /** @deprecated use `Actor$inboundSchema` instead. */ - export const inboundSchema = Actor$inboundSchema; - /** @deprecated use `Actor$outboundSchema` instead. */ - export const outboundSchema = Actor$outboundSchema; - /** @deprecated use `Actor$Outbound` instead. */ - export type Outbound = Actor$Outbound; +export namespace Payload$ { + /** @deprecated use `Payload$inboundSchema` instead. */ + export const inboundSchema = Payload$inboundSchema; + /** @deprecated use `Payload$outboundSchema` instead. */ + export const outboundSchema = Payload$outboundSchema; + /** @deprecated use `Payload$Outbound` instead. */ + export type Outbound = Payload$Outbound; +} + +export function payloadToJSON(payload: Payload): string { + return JSON.stringify(Payload$outboundSchema.parse(payload)); +} + +export function payloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Payload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Payload' from JSON`, + ); } /** @internal */ -export const Controls$inboundSchema: z.ZodType< - Controls, +export const Overrides$inboundSchema: z.ZodType< + Overrides, z.ZodTypeDef, unknown > = z.object({}); /** @internal */ -export type Controls$Outbound = {}; +export type Overrides$Outbound = {}; /** @internal */ -export const Controls$outboundSchema: z.ZodType< - Controls$Outbound, +export const Overrides$outboundSchema: z.ZodType< + Overrides$Outbound, z.ZodTypeDef, - Controls + Overrides > = z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Controls$ { - /** @deprecated use `Controls$inboundSchema` instead. */ - export const inboundSchema = Controls$inboundSchema; - /** @deprecated use `Controls$outboundSchema` instead. */ - export const outboundSchema = Controls$outboundSchema; - /** @deprecated use `Controls$Outbound` instead. */ - export type Outbound = Controls$Outbound; +export namespace Overrides$ { + /** @deprecated use `Overrides$inboundSchema` instead. */ + export const inboundSchema = Overrides$inboundSchema; + /** @deprecated use `Overrides$outboundSchema` instead. */ + export const outboundSchema = Overrides$outboundSchema; + /** @deprecated use `Overrides$Outbound` instead. */ + export type Outbound = Overrides$Outbound; +} + +export function overridesToJSON(overrides: Overrides): string { + return JSON.stringify(Overrides$outboundSchema.parse(overrides)); +} + +export function overridesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Overrides$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Overrides' from JSON`, + ); } /** @internal */ -export const TriggerEventRequestDtoOverrides$inboundSchema: z.ZodType< - TriggerEventRequestDtoOverrides, - z.ZodTypeDef, - unknown -> = z.object({}); +export const To$inboundSchema: z.ZodType = z.union([ + TopicPayloadDto$inboundSchema, + SubscriberPayloadDto$inboundSchema, + z.string(), +]); /** @internal */ -export type TriggerEventRequestDtoOverrides$Outbound = {}; +export type To$Outbound = + | TopicPayloadDto$Outbound + | SubscriberPayloadDto$Outbound + | string; /** @internal */ -export const TriggerEventRequestDtoOverrides$outboundSchema: z.ZodType< - TriggerEventRequestDtoOverrides$Outbound, - z.ZodTypeDef, - TriggerEventRequestDtoOverrides -> = z.object({}); +export const To$outboundSchema: z.ZodType = z + .union([ + TopicPayloadDto$outboundSchema, + SubscriberPayloadDto$outboundSchema, + z.string(), + ]); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace TriggerEventRequestDtoOverrides$ { - /** @deprecated use `TriggerEventRequestDtoOverrides$inboundSchema` instead. */ - export const inboundSchema = TriggerEventRequestDtoOverrides$inboundSchema; - /** @deprecated use `TriggerEventRequestDtoOverrides$outboundSchema` instead. */ - export const outboundSchema = TriggerEventRequestDtoOverrides$outboundSchema; - /** @deprecated use `TriggerEventRequestDtoOverrides$Outbound` instead. */ - export type Outbound = TriggerEventRequestDtoOverrides$Outbound; +export namespace To$ { + /** @deprecated use `To$inboundSchema` instead. */ + export const inboundSchema = To$inboundSchema; + /** @deprecated use `To$outboundSchema` instead. */ + export const outboundSchema = To$outboundSchema; + /** @deprecated use `To$Outbound` instead. */ + export type Outbound = To$Outbound; +} + +export function toToJSON(to: To): string { + return JSON.stringify(To$outboundSchema.parse(to)); +} + +export function toFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => To$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'To' from JSON`, + ); } /** @internal */ -export const TriggerEventRequestDtoPayload$inboundSchema: z.ZodType< - TriggerEventRequestDtoPayload, - z.ZodTypeDef, - unknown -> = z.object({}); +export const Actor$inboundSchema: z.ZodType = z + .union([SubscriberPayloadDto$inboundSchema, z.string()]); /** @internal */ -export type TriggerEventRequestDtoPayload$Outbound = {}; +export type Actor$Outbound = SubscriberPayloadDto$Outbound | string; /** @internal */ -export const TriggerEventRequestDtoPayload$outboundSchema: z.ZodType< - TriggerEventRequestDtoPayload$Outbound, +export const Actor$outboundSchema: z.ZodType< + Actor$Outbound, z.ZodTypeDef, - TriggerEventRequestDtoPayload -> = z.object({}); + Actor +> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace TriggerEventRequestDtoPayload$ { - /** @deprecated use `TriggerEventRequestDtoPayload$inboundSchema` instead. */ - export const inboundSchema = TriggerEventRequestDtoPayload$inboundSchema; - /** @deprecated use `TriggerEventRequestDtoPayload$outboundSchema` instead. */ - export const outboundSchema = TriggerEventRequestDtoPayload$outboundSchema; - /** @deprecated use `TriggerEventRequestDtoPayload$Outbound` instead. */ - export type Outbound = TriggerEventRequestDtoPayload$Outbound; +export namespace Actor$ { + /** @deprecated use `Actor$inboundSchema` instead. */ + export const inboundSchema = Actor$inboundSchema; + /** @deprecated use `Actor$outboundSchema` instead. */ + export const outboundSchema = Actor$outboundSchema; + /** @deprecated use `Actor$Outbound` instead. */ + export type Outbound = Actor$Outbound; +} + +export function actorToJSON(actor: Actor): string { + return JSON.stringify(Actor$outboundSchema.parse(actor)); +} + +export function actorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Actor$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Actor' from JSON`, + ); } /** @internal */ @@ -241,38 +301,62 @@ export namespace Tenant$ { export type Outbound = Tenant$Outbound; } +export function tenantToJSON(tenant: Tenant): string { + return JSON.stringify(Tenant$outboundSchema.parse(tenant)); +} + +export function tenantFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Tenant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Tenant' from JSON`, + ); +} + /** @internal */ -export const To$inboundSchema: z.ZodType = z.union([ - TopicPayloadDto$inboundSchema, - SubscriberPayloadDto$inboundSchema, - z.string(), -]); +export const Controls$inboundSchema: z.ZodType< + Controls, + z.ZodTypeDef, + unknown +> = z.object({}); /** @internal */ -export type To$Outbound = - | TopicPayloadDto$Outbound - | SubscriberPayloadDto$Outbound - | string; +export type Controls$Outbound = {}; /** @internal */ -export const To$outboundSchema: z.ZodType = z - .union([ - TopicPayloadDto$outboundSchema, - SubscriberPayloadDto$outboundSchema, - z.string(), - ]); +export const Controls$outboundSchema: z.ZodType< + Controls$Outbound, + z.ZodTypeDef, + Controls +> = z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace To$ { - /** @deprecated use `To$inboundSchema` instead. */ - export const inboundSchema = To$inboundSchema; - /** @deprecated use `To$outboundSchema` instead. */ - export const outboundSchema = To$outboundSchema; - /** @deprecated use `To$Outbound` instead. */ - export type Outbound = To$Outbound; +export namespace Controls$ { + /** @deprecated use `Controls$inboundSchema` instead. */ + export const inboundSchema = Controls$inboundSchema; + /** @deprecated use `Controls$outboundSchema` instead. */ + export const outboundSchema = Controls$outboundSchema; + /** @deprecated use `Controls$Outbound` instead. */ + export type Outbound = Controls$Outbound; +} + +export function controlsToJSON(controls: Controls): string { + return JSON.stringify(Controls$outboundSchema.parse(controls)); +} + +export function controlsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Controls$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Controls' from JSON`, + ); } /** @internal */ @@ -281,14 +365,9 @@ export const TriggerEventRequestDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), - bridgeUrl: z.string().optional(), - controls: z.lazy(() => Controls$inboundSchema).optional(), name: z.string(), - overrides: z.lazy(() => TriggerEventRequestDtoOverrides$inboundSchema) - .optional(), - payload: z.lazy(() => TriggerEventRequestDtoPayload$inboundSchema).optional(), - tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), + payload: z.lazy(() => Payload$inboundSchema).optional(), + overrides: z.lazy(() => Overrides$inboundSchema).optional(), to: z.array( z.union([ TopicPayloadDto$inboundSchema, @@ -297,19 +376,23 @@ export const TriggerEventRequestDto$inboundSchema: z.ZodType< ]), ), transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), + bridgeUrl: z.string().optional(), + controls: z.lazy(() => Controls$inboundSchema).optional(), }); /** @internal */ export type TriggerEventRequestDto$Outbound = { - actor?: SubscriberPayloadDto$Outbound | string | undefined; - bridgeUrl?: string | undefined; - controls?: Controls$Outbound | undefined; name: string; - overrides?: TriggerEventRequestDtoOverrides$Outbound | undefined; - payload?: TriggerEventRequestDtoPayload$Outbound | undefined; - tenant?: TenantPayloadDto$Outbound | string | undefined; + payload?: Payload$Outbound | undefined; + overrides?: Overrides$Outbound | undefined; to: Array; transactionId?: string | undefined; + actor?: SubscriberPayloadDto$Outbound | string | undefined; + tenant?: TenantPayloadDto$Outbound | string | undefined; + bridgeUrl?: string | undefined; + controls?: Controls$Outbound | undefined; }; /** @internal */ @@ -318,15 +401,9 @@ export const TriggerEventRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, TriggerEventRequestDto > = z.object({ - actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), - bridgeUrl: z.string().optional(), - controls: z.lazy(() => Controls$outboundSchema).optional(), name: z.string(), - overrides: z.lazy(() => TriggerEventRequestDtoOverrides$outboundSchema) - .optional(), - payload: z.lazy(() => TriggerEventRequestDtoPayload$outboundSchema) - .optional(), - tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), + payload: z.lazy(() => Payload$outboundSchema).optional(), + overrides: z.lazy(() => Overrides$outboundSchema).optional(), to: z.array( z.union([ TopicPayloadDto$outboundSchema, @@ -335,6 +412,10 @@ export const TriggerEventRequestDto$outboundSchema: z.ZodType< ]), ), transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), + bridgeUrl: z.string().optional(), + controls: z.lazy(() => Controls$outboundSchema).optional(), }); /** @@ -349,3 +430,21 @@ export namespace TriggerEventRequestDto$ { /** @deprecated use `TriggerEventRequestDto$Outbound` instead. */ export type Outbound = TriggerEventRequestDto$Outbound; } + +export function triggerEventRequestDtoToJSON( + triggerEventRequestDto: TriggerEventRequestDto, +): string { + return JSON.stringify( + TriggerEventRequestDto$outboundSchema.parse(triggerEventRequestDto), + ); +} + +export function triggerEventRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventRequestDto' from JSON`, + ); +} diff --git a/src/models/components/triggereventresponsedto.ts b/src/models/components/triggereventresponsedto.ts index 5192c411..e29dd9df 100644 --- a/src/models/components/triggereventresponsedto.ts +++ b/src/models/components/triggereventresponsedto.ts @@ -3,7 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Status for trigger @@ -29,14 +32,14 @@ export type TriggerEventResponseDto = { * If trigger was acknowledged or not */ acknowledged: boolean; - /** - * In case of an error, this field will contain the error message - */ - error?: Array | undefined; /** * Status for trigger */ status: TriggerEventResponseDtoStatus; + /** + * In case of an error, this field will contain the error message + */ + error?: Array | undefined; /** * Transaction id for trigger */ @@ -71,16 +74,16 @@ export const TriggerEventResponseDto$inboundSchema: z.ZodType< unknown > = z.object({ acknowledged: z.boolean(), - error: z.array(z.string()).optional(), status: TriggerEventResponseDtoStatus$inboundSchema, + error: z.array(z.string()).optional(), transactionId: z.string().optional(), }); /** @internal */ export type TriggerEventResponseDto$Outbound = { acknowledged: boolean; - error?: Array | undefined; status: string; + error?: Array | undefined; transactionId?: string | undefined; }; @@ -91,8 +94,8 @@ export const TriggerEventResponseDto$outboundSchema: z.ZodType< TriggerEventResponseDto > = z.object({ acknowledged: z.boolean(), - error: z.array(z.string()).optional(), status: TriggerEventResponseDtoStatus$outboundSchema, + error: z.array(z.string()).optional(), transactionId: z.string().optional(), }); @@ -108,3 +111,21 @@ export namespace TriggerEventResponseDto$ { /** @deprecated use `TriggerEventResponseDto$Outbound` instead. */ export type Outbound = TriggerEventResponseDto$Outbound; } + +export function triggerEventResponseDtoToJSON( + triggerEventResponseDto: TriggerEventResponseDto, +): string { + return JSON.stringify( + TriggerEventResponseDto$outboundSchema.parse(triggerEventResponseDto), + ); +} + +export function triggerEventResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventResponseDto' from JSON`, + ); +} diff --git a/src/models/components/triggereventtoallrequestdto.ts b/src/models/components/triggereventtoallrequestdto.ts index 37525eed..991659bb 100644 --- a/src/models/components/triggereventtoallrequestdto.ts +++ b/src/models/components/triggereventtoallrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { SubscriberPayloadDto, SubscriberPayloadDto$inboundSchema, @@ -17,12 +20,12 @@ import { } from "./tenantpayloaddto.js"; /** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. + * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. * * @remarks - * If a new actor object is provided, we will create a new subscriber in our system + * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. */ -export type TriggerEventToAllRequestDtoActor = SubscriberPayloadDto | string; +export type TriggerEventToAllRequestDtoPayload = {}; /** * This could be used to override provider specific configurations @@ -30,12 +33,12 @@ export type TriggerEventToAllRequestDtoActor = SubscriberPayloadDto | string; export type TriggerEventToAllRequestDtoOverrides = {}; /** - * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. + * It is used to display the Avatar of the provided actor's subscriber id or actor object. * * @remarks - * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + * If a new actor object is provided, we will create a new subscriber in our system */ -export type TriggerEventToAllRequestDtoPayload = {}; +export type TriggerEventToAllRequestDtoActor = SubscriberPayloadDto | string; /** * It is used to specify a tenant context during trigger event. @@ -46,28 +49,32 @@ export type TriggerEventToAllRequestDtoPayload = {}; export type TriggerEventToAllRequestDtoTenant = TenantPayloadDto | string; export type TriggerEventToAllRequestDto = { - /** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. - * - * @remarks - * If a new actor object is provided, we will create a new subscriber in our system - */ - actor?: SubscriberPayloadDto | string | undefined; /** * The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. */ name: string; + /** + * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. + * + * @remarks + * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + */ + payload: TriggerEventToAllRequestDtoPayload; /** * This could be used to override provider specific configurations */ overrides?: TriggerEventToAllRequestDtoOverrides | undefined; /** - * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. + * A unique identifier for this transaction, we will generated a UUID if not provided. + */ + transactionId?: string | undefined; + /** + * It is used to display the Avatar of the provided actor's subscriber id or actor object. * * @remarks - * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + * If a new actor object is provided, we will create a new subscriber in our system */ - payload: TriggerEventToAllRequestDtoPayload; + actor?: SubscriberPayloadDto | string | undefined; /** * It is used to specify a tenant context during trigger event. * @@ -75,42 +82,58 @@ export type TriggerEventToAllRequestDto = { * If a new tenant object is provided, we will create a new tenant. */ tenant?: TenantPayloadDto | string | undefined; - /** - * A unique identifier for this transaction, we will generated a UUID if not provided. - */ - transactionId?: string | undefined; }; /** @internal */ -export const TriggerEventToAllRequestDtoActor$inboundSchema: z.ZodType< - TriggerEventToAllRequestDtoActor, +export const TriggerEventToAllRequestDtoPayload$inboundSchema: z.ZodType< + TriggerEventToAllRequestDtoPayload, z.ZodTypeDef, unknown -> = z.union([SubscriberPayloadDto$inboundSchema, z.string()]); +> = z.object({}); /** @internal */ -export type TriggerEventToAllRequestDtoActor$Outbound = - | SubscriberPayloadDto$Outbound - | string; +export type TriggerEventToAllRequestDtoPayload$Outbound = {}; /** @internal */ -export const TriggerEventToAllRequestDtoActor$outboundSchema: z.ZodType< - TriggerEventToAllRequestDtoActor$Outbound, +export const TriggerEventToAllRequestDtoPayload$outboundSchema: z.ZodType< + TriggerEventToAllRequestDtoPayload$Outbound, z.ZodTypeDef, - TriggerEventToAllRequestDtoActor -> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); + TriggerEventToAllRequestDtoPayload +> = z.object({}); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace TriggerEventToAllRequestDtoActor$ { - /** @deprecated use `TriggerEventToAllRequestDtoActor$inboundSchema` instead. */ - export const inboundSchema = TriggerEventToAllRequestDtoActor$inboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoActor$outboundSchema` instead. */ - export const outboundSchema = TriggerEventToAllRequestDtoActor$outboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoActor$Outbound` instead. */ - export type Outbound = TriggerEventToAllRequestDtoActor$Outbound; +export namespace TriggerEventToAllRequestDtoPayload$ { + /** @deprecated use `TriggerEventToAllRequestDtoPayload$inboundSchema` instead. */ + export const inboundSchema = TriggerEventToAllRequestDtoPayload$inboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoPayload$outboundSchema` instead. */ + export const outboundSchema = + TriggerEventToAllRequestDtoPayload$outboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoPayload$Outbound` instead. */ + export type Outbound = TriggerEventToAllRequestDtoPayload$Outbound; +} + +export function triggerEventToAllRequestDtoPayloadToJSON( + triggerEventToAllRequestDtoPayload: TriggerEventToAllRequestDtoPayload, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoPayload$outboundSchema.parse( + triggerEventToAllRequestDtoPayload, + ), + ); +} + +export function triggerEventToAllRequestDtoPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TriggerEventToAllRequestDtoPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoPayload' from JSON`, + ); } /** @internal */ @@ -145,35 +168,77 @@ export namespace TriggerEventToAllRequestDtoOverrides$ { export type Outbound = TriggerEventToAllRequestDtoOverrides$Outbound; } +export function triggerEventToAllRequestDtoOverridesToJSON( + triggerEventToAllRequestDtoOverrides: TriggerEventToAllRequestDtoOverrides, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoOverrides$outboundSchema.parse( + triggerEventToAllRequestDtoOverrides, + ), + ); +} + +export function triggerEventToAllRequestDtoOverridesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TriggerEventToAllRequestDtoOverrides$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoOverrides' from JSON`, + ); +} + /** @internal */ -export const TriggerEventToAllRequestDtoPayload$inboundSchema: z.ZodType< - TriggerEventToAllRequestDtoPayload, +export const TriggerEventToAllRequestDtoActor$inboundSchema: z.ZodType< + TriggerEventToAllRequestDtoActor, z.ZodTypeDef, unknown -> = z.object({}); +> = z.union([SubscriberPayloadDto$inboundSchema, z.string()]); /** @internal */ -export type TriggerEventToAllRequestDtoPayload$Outbound = {}; +export type TriggerEventToAllRequestDtoActor$Outbound = + | SubscriberPayloadDto$Outbound + | string; /** @internal */ -export const TriggerEventToAllRequestDtoPayload$outboundSchema: z.ZodType< - TriggerEventToAllRequestDtoPayload$Outbound, +export const TriggerEventToAllRequestDtoActor$outboundSchema: z.ZodType< + TriggerEventToAllRequestDtoActor$Outbound, z.ZodTypeDef, - TriggerEventToAllRequestDtoPayload -> = z.object({}); + TriggerEventToAllRequestDtoActor +> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace TriggerEventToAllRequestDtoPayload$ { - /** @deprecated use `TriggerEventToAllRequestDtoPayload$inboundSchema` instead. */ - export const inboundSchema = TriggerEventToAllRequestDtoPayload$inboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoPayload$outboundSchema` instead. */ - export const outboundSchema = - TriggerEventToAllRequestDtoPayload$outboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoPayload$Outbound` instead. */ - export type Outbound = TriggerEventToAllRequestDtoPayload$Outbound; +export namespace TriggerEventToAllRequestDtoActor$ { + /** @deprecated use `TriggerEventToAllRequestDtoActor$inboundSchema` instead. */ + export const inboundSchema = TriggerEventToAllRequestDtoActor$inboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoActor$outboundSchema` instead. */ + export const outboundSchema = TriggerEventToAllRequestDtoActor$outboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoActor$Outbound` instead. */ + export type Outbound = TriggerEventToAllRequestDtoActor$Outbound; +} + +export function triggerEventToAllRequestDtoActorToJSON( + triggerEventToAllRequestDtoActor: TriggerEventToAllRequestDtoActor, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoActor$outboundSchema.parse( + triggerEventToAllRequestDtoActor, + ), + ); +} + +export function triggerEventToAllRequestDtoActorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventToAllRequestDtoActor$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoActor' from JSON`, + ); } /** @internal */ @@ -209,29 +274,49 @@ export namespace TriggerEventToAllRequestDtoTenant$ { export type Outbound = TriggerEventToAllRequestDtoTenant$Outbound; } +export function triggerEventToAllRequestDtoTenantToJSON( + triggerEventToAllRequestDtoTenant: TriggerEventToAllRequestDtoTenant, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoTenant$outboundSchema.parse( + triggerEventToAllRequestDtoTenant, + ), + ); +} + +export function triggerEventToAllRequestDtoTenantFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventToAllRequestDtoTenant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoTenant' from JSON`, + ); +} + /** @internal */ export const TriggerEventToAllRequestDto$inboundSchema: z.ZodType< TriggerEventToAllRequestDto, z.ZodTypeDef, unknown > = z.object({ - actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), name: z.string(), + payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$inboundSchema), overrides: z.lazy(() => TriggerEventToAllRequestDtoOverrides$inboundSchema) .optional(), - payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$inboundSchema), - tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), }); /** @internal */ export type TriggerEventToAllRequestDto$Outbound = { - actor?: SubscriberPayloadDto$Outbound | string | undefined; name: string; - overrides?: TriggerEventToAllRequestDtoOverrides$Outbound | undefined; payload: TriggerEventToAllRequestDtoPayload$Outbound; - tenant?: TenantPayloadDto$Outbound | string | undefined; + overrides?: TriggerEventToAllRequestDtoOverrides$Outbound | undefined; transactionId?: string | undefined; + actor?: SubscriberPayloadDto$Outbound | string | undefined; + tenant?: TenantPayloadDto$Outbound | string | undefined; }; /** @internal */ @@ -240,13 +325,13 @@ export const TriggerEventToAllRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, TriggerEventToAllRequestDto > = z.object({ - actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), name: z.string(), + payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$outboundSchema), overrides: z.lazy(() => TriggerEventToAllRequestDtoOverrides$outboundSchema) .optional(), - payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$outboundSchema), - tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), }); /** @@ -261,3 +346,23 @@ export namespace TriggerEventToAllRequestDto$ { /** @deprecated use `TriggerEventToAllRequestDto$Outbound` instead. */ export type Outbound = TriggerEventToAllRequestDto$Outbound; } + +export function triggerEventToAllRequestDtoToJSON( + triggerEventToAllRequestDto: TriggerEventToAllRequestDto, +): string { + return JSON.stringify( + TriggerEventToAllRequestDto$outboundSchema.parse( + triggerEventToAllRequestDto, + ), + ); +} + +export function triggerEventToAllRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventToAllRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDto' from JSON`, + ); +} diff --git a/src/models/components/unseencountresponse.ts b/src/models/components/unseencountresponse.ts index 23ee2b60..9964517e 100644 --- a/src/models/components/unseencountresponse.ts +++ b/src/models/components/unseencountresponse.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type UnseenCountResponse = { count: number; @@ -43,3 +46,21 @@ export namespace UnseenCountResponse$ { /** @deprecated use `UnseenCountResponse$Outbound` instead. */ export type Outbound = UnseenCountResponse$Outbound; } + +export function unseenCountResponseToJSON( + unseenCountResponse: UnseenCountResponse, +): string { + return JSON.stringify( + UnseenCountResponse$outboundSchema.parse(unseenCountResponse), + ); +} + +export function unseenCountResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UnseenCountResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UnseenCountResponse' from JSON`, + ); +} diff --git a/src/models/components/updateintegrationrequestdto.ts b/src/models/components/updateintegrationrequestdto.ts index f26e006f..690ac742 100644 --- a/src/models/components/updateintegrationrequestdto.ts +++ b/src/models/components/updateintegrationrequestdto.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { CredentialsDto, CredentialsDto$inboundSchema, @@ -18,20 +21,20 @@ import { } from "./stepfilter.js"; export type UpdateIntegrationRequestDto = { + name?: string | undefined; + identifier?: string | undefined; environmentId?: string | undefined; /** * If the integration is active the validation on the credentials field will run */ active?: boolean | undefined; - check?: boolean | undefined; - conditions?: Array | undefined; credentials?: CredentialsDto | undefined; - identifier?: string | undefined; - name?: string | undefined; /** * If true, the Novu branding will be removed from the Inbox component */ removeNovuBranding?: boolean | undefined; + check?: boolean | undefined; + conditions?: Array | undefined; }; /** @internal */ @@ -40,14 +43,14 @@ export const UpdateIntegrationRequestDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), _environmentId: z.string().optional(), active: z.boolean().optional(), - check: z.boolean().optional(), - conditions: z.array(StepFilter$inboundSchema).optional(), credentials: CredentialsDto$inboundSchema.optional(), - identifier: z.string().optional(), - name: z.string().optional(), removeNovuBranding: z.boolean().optional(), + check: z.boolean().optional(), + conditions: z.array(StepFilter$inboundSchema).optional(), }).transform((v) => { return remap$(v, { "_environmentId": "environmentId", @@ -56,14 +59,14 @@ export const UpdateIntegrationRequestDto$inboundSchema: z.ZodType< /** @internal */ export type UpdateIntegrationRequestDto$Outbound = { + name?: string | undefined; + identifier?: string | undefined; _environmentId?: string | undefined; active?: boolean | undefined; - check?: boolean | undefined; - conditions?: Array | undefined; credentials?: CredentialsDto$Outbound | undefined; - identifier?: string | undefined; - name?: string | undefined; removeNovuBranding?: boolean | undefined; + check?: boolean | undefined; + conditions?: Array | undefined; }; /** @internal */ @@ -72,14 +75,14 @@ export const UpdateIntegrationRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, UpdateIntegrationRequestDto > = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), environmentId: z.string().optional(), active: z.boolean().optional(), - check: z.boolean().optional(), - conditions: z.array(StepFilter$outboundSchema).optional(), credentials: CredentialsDto$outboundSchema.optional(), - identifier: z.string().optional(), - name: z.string().optional(), removeNovuBranding: z.boolean().optional(), + check: z.boolean().optional(), + conditions: z.array(StepFilter$outboundSchema).optional(), }).transform((v) => { return remap$(v, { environmentId: "_environmentId", @@ -98,3 +101,23 @@ export namespace UpdateIntegrationRequestDto$ { /** @deprecated use `UpdateIntegrationRequestDto$Outbound` instead. */ export type Outbound = UpdateIntegrationRequestDto$Outbound; } + +export function updateIntegrationRequestDtoToJSON( + updateIntegrationRequestDto: UpdateIntegrationRequestDto, +): string { + return JSON.stringify( + UpdateIntegrationRequestDto$outboundSchema.parse( + updateIntegrationRequestDto, + ), + ); +} + +export function updateIntegrationRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateIntegrationRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateIntegrationRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberchannelrequestdto.ts b/src/models/components/updatesubscriberchannelrequestdto.ts index 8ff74839..92418867 100644 --- a/src/models/components/updatesubscriberchannelrequestdto.ts +++ b/src/models/components/updatesubscriberchannelrequestdto.ts @@ -3,6 +3,10 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ChannelCredentials, ChannelCredentials$inboundSchema, @@ -10,37 +14,89 @@ import { ChannelCredentials$outboundSchema, } from "./channelcredentials.js"; +/** + * The provider identifier for the credentials + */ +export const UpdateSubscriberChannelRequestDtoProviderId = { + Slack: "slack", + Discord: "discord", + Msteams: "msteams", + Mattermost: "mattermost", + Ryver: "ryver", + Zulip: "zulip", + GrafanaOnCall: "grafana-on-call", + Getstream: "getstream", + RocketChat: "rocket-chat", + WhatsappBusiness: "whatsapp-business", + Fcm: "fcm", + Apns: "apns", + Expo: "expo", + OneSignal: "one-signal", + Pushpad: "pushpad", + PushWebhook: "push-webhook", + PusherBeams: "pusher-beams", +} as const; +/** + * The provider identifier for the credentials + */ +export type UpdateSubscriberChannelRequestDtoProviderId = ClosedEnum< + typeof UpdateSubscriberChannelRequestDtoProviderId +>; + export type UpdateSubscriberChannelRequestDto = { /** - * Credentials payload for the specified provider + * The provider identifier for the credentials */ - credentials: ChannelCredentials; + providerId: UpdateSubscriberChannelRequestDtoProviderId; /** * The integration identifier */ integrationIdentifier?: string | undefined; /** - * The provider identifier for the credentials + * Credentials payload for the specified provider */ - providerId: number; + credentials: ChannelCredentials; }; +/** @internal */ +export const UpdateSubscriberChannelRequestDtoProviderId$inboundSchema: + z.ZodNativeEnum = z + .nativeEnum(UpdateSubscriberChannelRequestDtoProviderId); + +/** @internal */ +export const UpdateSubscriberChannelRequestDtoProviderId$outboundSchema: + z.ZodNativeEnum = + UpdateSubscriberChannelRequestDtoProviderId$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberChannelRequestDtoProviderId$ { + /** @deprecated use `UpdateSubscriberChannelRequestDtoProviderId$inboundSchema` instead. */ + export const inboundSchema = + UpdateSubscriberChannelRequestDtoProviderId$inboundSchema; + /** @deprecated use `UpdateSubscriberChannelRequestDtoProviderId$outboundSchema` instead. */ + export const outboundSchema = + UpdateSubscriberChannelRequestDtoProviderId$outboundSchema; +} + /** @internal */ export const UpdateSubscriberChannelRequestDto$inboundSchema: z.ZodType< UpdateSubscriberChannelRequestDto, z.ZodTypeDef, unknown > = z.object({ - credentials: ChannelCredentials$inboundSchema, + providerId: UpdateSubscriberChannelRequestDtoProviderId$inboundSchema, integrationIdentifier: z.string().optional(), - providerId: z.number(), + credentials: ChannelCredentials$inboundSchema, }); /** @internal */ export type UpdateSubscriberChannelRequestDto$Outbound = { - credentials: ChannelCredentials$Outbound; + providerId: string; integrationIdentifier?: string | undefined; - providerId: number; + credentials: ChannelCredentials$Outbound; }; /** @internal */ @@ -49,9 +105,9 @@ export const UpdateSubscriberChannelRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, UpdateSubscriberChannelRequestDto > = z.object({ - credentials: ChannelCredentials$outboundSchema, + providerId: UpdateSubscriberChannelRequestDtoProviderId$outboundSchema, integrationIdentifier: z.string().optional(), - providerId: z.number(), + credentials: ChannelCredentials$outboundSchema, }); /** @@ -67,3 +123,23 @@ export namespace UpdateSubscriberChannelRequestDto$ { /** @deprecated use `UpdateSubscriberChannelRequestDto$Outbound` instead. */ export type Outbound = UpdateSubscriberChannelRequestDto$Outbound; } + +export function updateSubscriberChannelRequestDtoToJSON( + updateSubscriberChannelRequestDto: UpdateSubscriberChannelRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberChannelRequestDto$outboundSchema.parse( + updateSubscriberChannelRequestDto, + ), + ); +} + +export function updateSubscriberChannelRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateSubscriberChannelRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberChannelRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts b/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts index 67d0fc82..b00510e0 100644 --- a/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts +++ b/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ChannelPreference, ChannelPreference$inboundSchema, @@ -63,3 +66,30 @@ export namespace UpdateSubscriberGlobalPreferencesRequestDto$ { /** @deprecated use `UpdateSubscriberGlobalPreferencesRequestDto$Outbound` instead. */ export type Outbound = UpdateSubscriberGlobalPreferencesRequestDto$Outbound; } + +export function updateSubscriberGlobalPreferencesRequestDtoToJSON( + updateSubscriberGlobalPreferencesRequestDto: + UpdateSubscriberGlobalPreferencesRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema.parse( + updateSubscriberGlobalPreferencesRequestDto, + ), + ); +} + +export function updateSubscriberGlobalPreferencesRequestDtoFromJSON( + jsonString: string, +): SafeParseResult< + UpdateSubscriberGlobalPreferencesRequestDto, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'UpdateSubscriberGlobalPreferencesRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberonlineflagrequestdto.ts b/src/models/components/updatesubscriberonlineflagrequestdto.ts index 0008604f..5e3da370 100644 --- a/src/models/components/updatesubscriberonlineflagrequestdto.ts +++ b/src/models/components/updatesubscriberonlineflagrequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type UpdateSubscriberOnlineFlagRequestDto = { isOnline: boolean; @@ -45,3 +48,24 @@ export namespace UpdateSubscriberOnlineFlagRequestDto$ { /** @deprecated use `UpdateSubscriberOnlineFlagRequestDto$Outbound` instead. */ export type Outbound = UpdateSubscriberOnlineFlagRequestDto$Outbound; } + +export function updateSubscriberOnlineFlagRequestDtoToJSON( + updateSubscriberOnlineFlagRequestDto: UpdateSubscriberOnlineFlagRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberOnlineFlagRequestDto$outboundSchema.parse( + updateSubscriberOnlineFlagRequestDto, + ), + ); +} + +export function updateSubscriberOnlineFlagRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + UpdateSubscriberOnlineFlagRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberOnlineFlagRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberpreferencerequestdto.ts b/src/models/components/updatesubscriberpreferencerequestdto.ts index 06f04d32..4ae4866e 100644 --- a/src/models/components/updatesubscriberpreferencerequestdto.ts +++ b/src/models/components/updatesubscriberpreferencerequestdto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ChannelPreference, ChannelPreference$inboundSchema, @@ -61,3 +64,24 @@ export namespace UpdateSubscriberPreferenceRequestDto$ { /** @deprecated use `UpdateSubscriberPreferenceRequestDto$Outbound` instead. */ export type Outbound = UpdateSubscriberPreferenceRequestDto$Outbound; } + +export function updateSubscriberPreferenceRequestDtoToJSON( + updateSubscriberPreferenceRequestDto: UpdateSubscriberPreferenceRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberPreferenceRequestDto$outboundSchema.parse( + updateSubscriberPreferenceRequestDto, + ), + ); +} + +export function updateSubscriberPreferenceRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + UpdateSubscriberPreferenceRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberPreferenceRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberpreferenceresponsedto.ts b/src/models/components/updatesubscriberpreferenceresponsedto.ts index adb6b83c..c0185123 100644 --- a/src/models/components/updatesubscriberpreferenceresponsedto.ts +++ b/src/models/components/updatesubscriberpreferenceresponsedto.ts @@ -3,6 +3,9 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { Preference, Preference$inboundSchema, @@ -17,14 +20,14 @@ import { } from "./templateresponse.js"; export type UpdateSubscriberPreferenceResponseDto = { - /** - * The preferences of the subscriber regarding the related workflow - */ - preference: Preference; /** * The workflow information and if it is critical or not */ template: TemplateResponse; + /** + * The preferences of the subscriber regarding the related workflow + */ + preference: Preference; }; /** @internal */ @@ -33,14 +36,14 @@ export const UpdateSubscriberPreferenceResponseDto$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - preference: Preference$inboundSchema, template: TemplateResponse$inboundSchema, + preference: Preference$inboundSchema, }); /** @internal */ export type UpdateSubscriberPreferenceResponseDto$Outbound = { - preference: Preference$Outbound; template: TemplateResponse$Outbound; + preference: Preference$Outbound; }; /** @internal */ @@ -49,8 +52,8 @@ export const UpdateSubscriberPreferenceResponseDto$outboundSchema: z.ZodType< z.ZodTypeDef, UpdateSubscriberPreferenceResponseDto > = z.object({ - preference: Preference$outboundSchema, template: TemplateResponse$outboundSchema, + preference: Preference$outboundSchema, }); /** @@ -67,3 +70,24 @@ export namespace UpdateSubscriberPreferenceResponseDto$ { /** @deprecated use `UpdateSubscriberPreferenceResponseDto$Outbound` instead. */ export type Outbound = UpdateSubscriberPreferenceResponseDto$Outbound; } + +export function updateSubscriberPreferenceResponseDtoToJSON( + updateSubscriberPreferenceResponseDto: UpdateSubscriberPreferenceResponseDto, +): string { + return JSON.stringify( + UpdateSubscriberPreferenceResponseDto$outboundSchema.parse( + updateSubscriberPreferenceResponseDto, + ), + ); +} + +export function updateSubscriberPreferenceResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + UpdateSubscriberPreferenceResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberPreferenceResponseDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberrequestdto.ts b/src/models/components/updatesubscriberrequestdto.ts index 9385a2f1..bd97d519 100644 --- a/src/models/components/updatesubscriberrequestdto.ts +++ b/src/models/components/updatesubscriberrequestdto.ts @@ -3,17 +3,21 @@ */ import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type UpdateSubscriberRequestDtoData = {}; export type UpdateSubscriberRequestDto = { - avatar?: string | undefined; - data?: UpdateSubscriberRequestDtoData | undefined; email?: string | undefined; firstName?: string | undefined; lastName?: string | undefined; - locale?: string | undefined; phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + data?: UpdateSubscriberRequestDtoData | undefined; + channels?: Array | undefined; }; /** @internal */ @@ -46,30 +50,52 @@ export namespace UpdateSubscriberRequestDtoData$ { export type Outbound = UpdateSubscriberRequestDtoData$Outbound; } +export function updateSubscriberRequestDtoDataToJSON( + updateSubscriberRequestDtoData: UpdateSubscriberRequestDtoData, +): string { + return JSON.stringify( + UpdateSubscriberRequestDtoData$outboundSchema.parse( + updateSubscriberRequestDtoData, + ), + ); +} + +export function updateSubscriberRequestDtoDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateSubscriberRequestDtoData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberRequestDtoData' from JSON`, + ); +} + /** @internal */ export const UpdateSubscriberRequestDto$inboundSchema: z.ZodType< UpdateSubscriberRequestDto, z.ZodTypeDef, unknown > = z.object({ - avatar: z.string().optional(), - data: z.lazy(() => UpdateSubscriberRequestDtoData$inboundSchema).optional(), email: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), - locale: z.string().optional(), phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => UpdateSubscriberRequestDtoData$inboundSchema).optional(), + channels: z.array(z.string()).optional(), }); /** @internal */ export type UpdateSubscriberRequestDto$Outbound = { - avatar?: string | undefined; - data?: UpdateSubscriberRequestDtoData$Outbound | undefined; email?: string | undefined; firstName?: string | undefined; lastName?: string | undefined; - locale?: string | undefined; phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + data?: UpdateSubscriberRequestDtoData$Outbound | undefined; + channels?: Array | undefined; }; /** @internal */ @@ -78,13 +104,14 @@ export const UpdateSubscriberRequestDto$outboundSchema: z.ZodType< z.ZodTypeDef, UpdateSubscriberRequestDto > = z.object({ - avatar: z.string().optional(), - data: z.lazy(() => UpdateSubscriberRequestDtoData$outboundSchema).optional(), email: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), - locale: z.string().optional(), phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => UpdateSubscriberRequestDtoData$outboundSchema).optional(), + channels: z.array(z.string()).optional(), }); /** @@ -99,3 +126,21 @@ export namespace UpdateSubscriberRequestDto$ { /** @deprecated use `UpdateSubscriberRequestDto$Outbound` instead. */ export type Outbound = UpdateSubscriberRequestDto$Outbound; } + +export function updateSubscriberRequestDtoToJSON( + updateSubscriberRequestDto: UpdateSubscriberRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberRequestDto$outboundSchema.parse(updateSubscriberRequestDto), + ); +} + +export function updateSubscriberRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateSubscriberRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberRequestDto' from JSON`, + ); +} diff --git a/src/models/components/workflowresponse.ts b/src/models/components/workflowresponse.ts index b94e92f8..45f31bdd 100644 --- a/src/models/components/workflowresponse.ts +++ b/src/models/components/workflowresponse.ts @@ -4,6 +4,9 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { NotificationGroup, NotificationGroup$inboundSchema, @@ -34,26 +37,26 @@ export type WorkflowResponseData = {}; export type WorkflowIntegrationStatus = {}; export type WorkflowResponse = { + id?: string | undefined; + name: string; + description: string; + active: boolean; + draft: boolean; + preferenceSettings: PreferenceChannels; + critical: boolean; + tags: Array; + steps: Array; + organizationId: string; creatorId: string; environmentId: string; - id?: string | undefined; + triggers: Array; notificationGroupId: string; - organizationId: string; parentId?: string | undefined; - active: boolean; - critical: boolean; - data?: WorkflowResponseData | undefined; deleted: boolean; deletedAt: string; deletedBy: string; - description: string; - draft: boolean; - name: string; notificationGroup?: NotificationGroup | undefined; - preferenceSettings: PreferenceChannels; - steps: Array; - tags: Array; - triggers: Array; + data?: WorkflowResponseData | undefined; workflowIntegrationStatus?: WorkflowIntegrationStatus | undefined; }; @@ -87,6 +90,24 @@ export namespace WorkflowResponseData$ { export type Outbound = WorkflowResponseData$Outbound; } +export function workflowResponseDataToJSON( + workflowResponseData: WorkflowResponseData, +): string { + return JSON.stringify( + WorkflowResponseData$outboundSchema.parse(workflowResponseData), + ); +} + +export function workflowResponseDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkflowResponseData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkflowResponseData' from JSON`, + ); +} + /** @internal */ export const WorkflowIntegrationStatus$inboundSchema: z.ZodType< WorkflowIntegrationStatus, @@ -117,68 +138,86 @@ export namespace WorkflowIntegrationStatus$ { export type Outbound = WorkflowIntegrationStatus$Outbound; } +export function workflowIntegrationStatusToJSON( + workflowIntegrationStatus: WorkflowIntegrationStatus, +): string { + return JSON.stringify( + WorkflowIntegrationStatus$outboundSchema.parse(workflowIntegrationStatus), + ); +} + +export function workflowIntegrationStatusFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkflowIntegrationStatus$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkflowIntegrationStatus' from JSON`, + ); +} + /** @internal */ export const WorkflowResponse$inboundSchema: z.ZodType< WorkflowResponse, z.ZodTypeDef, unknown > = z.object({ + _id: z.string().optional(), + name: z.string(), + description: z.string(), + active: z.boolean(), + draft: z.boolean(), + preferenceSettings: PreferenceChannels$inboundSchema, + critical: z.boolean(), + tags: z.array(z.string()), + steps: z.array(NotificationStep$inboundSchema), + _organizationId: z.string(), _creatorId: z.string(), _environmentId: z.string(), - _id: z.string().optional(), + triggers: z.array(NotificationTrigger$inboundSchema), _notificationGroupId: z.string(), - _organizationId: z.string(), _parentId: z.string().optional(), - active: z.boolean(), - critical: z.boolean(), - data: z.lazy(() => WorkflowResponseData$inboundSchema).optional(), deleted: z.boolean(), deletedAt: z.string(), deletedBy: z.string(), - description: z.string(), - draft: z.boolean(), - name: z.string(), notificationGroup: NotificationGroup$inboundSchema.optional(), - preferenceSettings: PreferenceChannels$inboundSchema, - steps: z.array(NotificationStep$inboundSchema), - tags: z.array(z.string()), - triggers: z.array(NotificationTrigger$inboundSchema), + data: z.lazy(() => WorkflowResponseData$inboundSchema).optional(), workflowIntegrationStatus: z.lazy(() => WorkflowIntegrationStatus$inboundSchema ).optional(), }).transform((v) => { return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", "_creatorId": "creatorId", "_environmentId": "environmentId", - "_id": "id", "_notificationGroupId": "notificationGroupId", - "_organizationId": "organizationId", "_parentId": "parentId", }); }); /** @internal */ export type WorkflowResponse$Outbound = { + _id?: string | undefined; + name: string; + description: string; + active: boolean; + draft: boolean; + preferenceSettings: PreferenceChannels$Outbound; + critical: boolean; + tags: Array; + steps: Array; + _organizationId: string; _creatorId: string; _environmentId: string; - _id?: string | undefined; + triggers: Array; _notificationGroupId: string; - _organizationId: string; _parentId?: string | undefined; - active: boolean; - critical: boolean; - data?: WorkflowResponseData$Outbound | undefined; deleted: boolean; deletedAt: string; deletedBy: string; - description: string; - draft: boolean; - name: string; notificationGroup?: NotificationGroup$Outbound | undefined; - preferenceSettings: PreferenceChannels$Outbound; - steps: Array; - tags: Array; - triggers: Array; + data?: WorkflowResponseData$Outbound | undefined; workflowIntegrationStatus?: WorkflowIntegrationStatus$Outbound | undefined; }; @@ -188,36 +227,36 @@ export const WorkflowResponse$outboundSchema: z.ZodType< z.ZodTypeDef, WorkflowResponse > = z.object({ + id: z.string().optional(), + name: z.string(), + description: z.string(), + active: z.boolean(), + draft: z.boolean(), + preferenceSettings: PreferenceChannels$outboundSchema, + critical: z.boolean(), + tags: z.array(z.string()), + steps: z.array(NotificationStep$outboundSchema), + organizationId: z.string(), creatorId: z.string(), environmentId: z.string(), - id: z.string().optional(), + triggers: z.array(NotificationTrigger$outboundSchema), notificationGroupId: z.string(), - organizationId: z.string(), parentId: z.string().optional(), - active: z.boolean(), - critical: z.boolean(), - data: z.lazy(() => WorkflowResponseData$outboundSchema).optional(), deleted: z.boolean(), deletedAt: z.string(), deletedBy: z.string(), - description: z.string(), - draft: z.boolean(), - name: z.string(), notificationGroup: NotificationGroup$outboundSchema.optional(), - preferenceSettings: PreferenceChannels$outboundSchema, - steps: z.array(NotificationStep$outboundSchema), - tags: z.array(z.string()), - triggers: z.array(NotificationTrigger$outboundSchema), + data: z.lazy(() => WorkflowResponseData$outboundSchema).optional(), workflowIntegrationStatus: z.lazy(() => WorkflowIntegrationStatus$outboundSchema ).optional(), }).transform((v) => { return remap$(v, { + id: "_id", + organizationId: "_organizationId", creatorId: "_creatorId", environmentId: "_environmentId", - id: "_id", notificationGroupId: "_notificationGroupId", - organizationId: "_organizationId", parentId: "_parentId", }); }); @@ -234,3 +273,21 @@ export namespace WorkflowResponse$ { /** @deprecated use `WorkflowResponse$Outbound` instead. */ export type Outbound = WorkflowResponse$Outbound; } + +export function workflowResponseToJSON( + workflowResponse: WorkflowResponse, +): string { + return JSON.stringify( + WorkflowResponse$outboundSchema.parse(workflowResponse), + ); +} + +export function workflowResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkflowResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkflowResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollercancel.ts b/src/models/operations/eventscontrollercancel.ts index 742e1681..1eed1469 100644 --- a/src/models/operations/eventscontrollercancel.ts +++ b/src/models/operations/eventscontrollercancel.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type EventsControllerCancelRequest = { transactionId: string; }; +export type EventsControllerCancelResponse = { + headers: { [k: string]: Array }; + result: components.DataBooleanDto; +}; + /** @internal */ export const EventsControllerCancelRequest$inboundSchema: z.ZodType< EventsControllerCancelRequest, @@ -43,3 +53,92 @@ export namespace EventsControllerCancelRequest$ { /** @deprecated use `EventsControllerCancelRequest$Outbound` instead. */ export type Outbound = EventsControllerCancelRequest$Outbound; } + +export function eventsControllerCancelRequestToJSON( + eventsControllerCancelRequest: EventsControllerCancelRequest, +): string { + return JSON.stringify( + EventsControllerCancelRequest$outboundSchema.parse( + eventsControllerCancelRequest, + ), + ); +} + +export function eventsControllerCancelRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventsControllerCancelRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerCancelRequest' from JSON`, + ); +} + +/** @internal */ +export const EventsControllerCancelResponse$inboundSchema: z.ZodType< + EventsControllerCancelResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DataBooleanDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type EventsControllerCancelResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.DataBooleanDto$Outbound; +}; + +/** @internal */ +export const EventsControllerCancelResponse$outboundSchema: z.ZodType< + EventsControllerCancelResponse$Outbound, + z.ZodTypeDef, + EventsControllerCancelResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.DataBooleanDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerCancelResponse$ { + /** @deprecated use `EventsControllerCancelResponse$inboundSchema` instead. */ + export const inboundSchema = EventsControllerCancelResponse$inboundSchema; + /** @deprecated use `EventsControllerCancelResponse$outboundSchema` instead. */ + export const outboundSchema = EventsControllerCancelResponse$outboundSchema; + /** @deprecated use `EventsControllerCancelResponse$Outbound` instead. */ + export type Outbound = EventsControllerCancelResponse$Outbound; +} + +export function eventsControllerCancelResponseToJSON( + eventsControllerCancelResponse: EventsControllerCancelResponse, +): string { + return JSON.stringify( + EventsControllerCancelResponse$outboundSchema.parse( + eventsControllerCancelResponse, + ), + ); +} + +export function eventsControllerCancelResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventsControllerCancelResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerCancelResponse' from JSON`, + ); +} diff --git a/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts b/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts index dc547765..75dbbf34 100644 --- a/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts +++ b/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts @@ -3,6 +3,11 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = { @@ -10,6 +15,12 @@ export type ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest subscriberId: string; }; +export type ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse = + { + headers: { [k: string]: Array }; + result: Array; + }; + /** @internal */ export const ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema: z.ZodType< @@ -54,3 +65,112 @@ export namespace ExecutionDetailsControllerGetExecutionDetailsForNotificationReq export type Outbound = ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound; } + +export function executionDetailsControllerGetExecutionDetailsForNotificationRequestToJSON( + executionDetailsControllerGetExecutionDetailsForNotificationRequest: + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, +): string { + return JSON.stringify( + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema + .parse( + executionDetailsControllerGetExecutionDetailsForNotificationRequest, + ), + ); +} + +export function executionDetailsControllerGetExecutionDetailsForNotificationRequestFromJSON( + jsonString: string, +): SafeParseResult< + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest' from JSON`, + ); +} + +/** @internal */ +export const ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema: + z.ZodType< + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.ExecutionDetailsResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: Array; + }; + +/** @internal */ +export const ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema: + z.ZodType< + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound, + z.ZodTypeDef, + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.ExecutionDetailsResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$ { + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema` instead. */ + export const inboundSchema = + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema; + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema` instead. */ + export const outboundSchema = + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema; + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound` instead. */ + export type Outbound = + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound; +} + +export function executionDetailsControllerGetExecutionDetailsForNotificationResponseToJSON( + executionDetailsControllerGetExecutionDetailsForNotificationResponse: + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, +): string { + return JSON.stringify( + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema + .parse( + executionDetailsControllerGetExecutionDetailsForNotificationResponse, + ), + ); +} + +export function executionDetailsControllerGetExecutionDetailsForNotificationResponseFromJSON( + jsonString: string, +): SafeParseResult< + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse' from JSON`, + ); +} diff --git a/src/models/operations/index.ts b/src/models/operations/index.ts index daf49eb4..5d8c728f 100644 --- a/src/models/operations/index.ts +++ b/src/models/operations/index.ts @@ -2,31 +2,37 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -export * from "./changescontrollerapplydiff.js"; -export * from "./changescontrollergetchanges.js"; +export * from "./environmentscontrollerv1getcurrentenvironment.js"; +export * from "./environmentscontrollerv1listmyenvironments.js"; +export * from "./environmentscontrollerv1listorganizationapikeys.js"; +export * from "./eventscontrollerbroadcasteventtoall.js"; export * from "./eventscontrollercancel.js"; +export * from "./eventscontrollertrigger.js"; +export * from "./eventscontrollertriggerbulk.js"; export * from "./executiondetailscontrollergetexecutiondetailsfornotification.js"; -export * from "./feedscontrollerdeletefeedbyid.js"; +export * from "./integrationscontrollercreateintegration.js"; +export * from "./integrationscontrollergetactiveintegrations.js"; export * from "./integrationscontrollergetwebhooksupportstatus.js"; +export * from "./integrationscontrollerlistintegrations.js"; export * from "./integrationscontrollerremoveintegration.js"; export * from "./integrationscontrollersetintegrationasprimary.js"; export * from "./integrationscontrollerupdateintegrationbyid.js"; -export * from "./layoutscontrollerdeletelayout.js"; -export * from "./layoutscontrollergetlayout.js"; -export * from "./layoutscontrollerlistlayouts.js"; -export * from "./layoutscontrollersetdefaultlayout.js"; -export * from "./layoutscontrollerupdatelayout.js"; export * from "./messagescontrollerdeletemessage.js"; export * from "./messagescontrollerdeletemessagesbytransactionid.js"; export * from "./messagescontrollergetmessages.js"; +export * from "./notificationgroupscontrollercreatenotificationgroup.js"; export * from "./notificationgroupscontrollerdeletenotificationgroup.js"; export * from "./notificationgroupscontrollergetnotificationgroup.js"; +export * from "./notificationgroupscontrollerlistnotificationgroups.js"; export * from "./notificationgroupscontrollerupdatenotificationgroup.js"; export * from "./notificationscontrollergetactivitygraphstats.js"; +export * from "./notificationscontrollergetactivitystats.js"; export * from "./notificationscontrollergetnotification.js"; export * from "./notificationscontrollerlistnotifications.js"; +export * from "./subscriberscontrollerbulkcreatesubscribers.js"; export * from "./subscriberscontrollerchataccessoauth.js"; export * from "./subscriberscontrollerchatoauthcallback.js"; +export * from "./subscriberscontrollercreatesubscriber.js"; export * from "./subscriberscontrollerdeletesubscribercredentials.js"; export * from "./subscriberscontrollergetnotificationsfeed.js"; export * from "./subscriberscontrollergetsubscriber.js"; @@ -44,19 +50,11 @@ export * from "./subscriberscontrollerupdatesubscriberchannel.js"; export * from "./subscriberscontrollerupdatesubscriberglobalpreferences.js"; export * from "./subscriberscontrollerupdatesubscriberonlineflag.js"; export * from "./subscriberscontrollerupdatesubscriberpreference.js"; -export * from "./tenantcontrollergettenantbyid.js"; -export * from "./tenantcontrollerlisttenants.js"; -export * from "./tenantcontrollerremovetenant.js"; -export * from "./tenantcontrollerupdatetenant.js"; export * from "./topicscontrolleraddsubscribers.js"; +export * from "./topicscontrollercreatetopic.js"; export * from "./topicscontrollerdeletetopic.js"; export * from "./topicscontrollergettopic.js"; export * from "./topicscontrollergettopicsubscriber.js"; export * from "./topicscontrollerlisttopics.js"; export * from "./topicscontrollerremovesubscribers.js"; export * from "./topicscontrollerrenametopic.js"; -export * from "./workflowcontrollerdeleteworkflowbyid.js"; -export * from "./workflowcontrollergetworkflowbyid.js"; -export * from "./workflowcontrollerlistworkflows.js"; -export * from "./workflowcontrollerupdateactivestatus.js"; -export * from "./workflowcontrollerupdateworkflowbyid.js"; diff --git a/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts b/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts index 3bec0d80..326ed208 100644 --- a/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts +++ b/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts @@ -3,11 +3,20 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type IntegrationsControllerGetWebhookSupportStatusRequest = { providerOrIntegrationId: string; }; +export type IntegrationsControllerGetWebhookSupportStatusResponse = { + headers: { [k: string]: Array }; + result: boolean; +}; + /** @internal */ export const IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema: z.ZodType< @@ -48,3 +57,111 @@ export namespace IntegrationsControllerGetWebhookSupportStatusRequest$ { export type Outbound = IntegrationsControllerGetWebhookSupportStatusRequest$Outbound; } + +export function integrationsControllerGetWebhookSupportStatusRequestToJSON( + integrationsControllerGetWebhookSupportStatusRequest: + IntegrationsControllerGetWebhookSupportStatusRequest, +): string { + return JSON.stringify( + IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema.parse( + integrationsControllerGetWebhookSupportStatusRequest, + ), + ); +} + +export function integrationsControllerGetWebhookSupportStatusRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerGetWebhookSupportStatusRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerGetWebhookSupportStatusRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema: + z.ZodType< + IntegrationsControllerGetWebhookSupportStatusResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.boolean(), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerGetWebhookSupportStatusResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: boolean; +}; + +/** @internal */ +export const IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema: + z.ZodType< + IntegrationsControllerGetWebhookSupportStatusResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerGetWebhookSupportStatusResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.boolean(), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerGetWebhookSupportStatusResponse$ { + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerGetWebhookSupportStatusResponse$Outbound; +} + +export function integrationsControllerGetWebhookSupportStatusResponseToJSON( + integrationsControllerGetWebhookSupportStatusResponse: + IntegrationsControllerGetWebhookSupportStatusResponse, +): string { + return JSON.stringify( + IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema.parse( + integrationsControllerGetWebhookSupportStatusResponse, + ), + ); +} + +export function integrationsControllerGetWebhookSupportStatusResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerGetWebhookSupportStatusResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerGetWebhookSupportStatusResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollerremoveintegration.ts b/src/models/operations/integrationscontrollerremoveintegration.ts index cd3eeaa8..bcdec774 100644 --- a/src/models/operations/integrationscontrollerremoveintegration.ts +++ b/src/models/operations/integrationscontrollerremoveintegration.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type IntegrationsControllerRemoveIntegrationRequest = { integrationId: string; }; +export type IntegrationsControllerRemoveIntegrationResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + /** @internal */ export const IntegrationsControllerRemoveIntegrationRequest$inboundSchema: z.ZodType< @@ -48,3 +58,111 @@ export namespace IntegrationsControllerRemoveIntegrationRequest$ { export type Outbound = IntegrationsControllerRemoveIntegrationRequest$Outbound; } + +export function integrationsControllerRemoveIntegrationRequestToJSON( + integrationsControllerRemoveIntegrationRequest: + IntegrationsControllerRemoveIntegrationRequest, +): string { + return JSON.stringify( + IntegrationsControllerRemoveIntegrationRequest$outboundSchema.parse( + integrationsControllerRemoveIntegrationRequest, + ), + ); +} + +export function integrationsControllerRemoveIntegrationRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerRemoveIntegrationRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerRemoveIntegrationRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerRemoveIntegrationRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerRemoveIntegrationResponse$inboundSchema: + z.ZodType< + IntegrationsControllerRemoveIntegrationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.IntegrationResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerRemoveIntegrationResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const IntegrationsControllerRemoveIntegrationResponse$outboundSchema: + z.ZodType< + IntegrationsControllerRemoveIntegrationResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerRemoveIntegrationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.IntegrationResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerRemoveIntegrationResponse$ { + /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerRemoveIntegrationResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerRemoveIntegrationResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerRemoveIntegrationResponse$Outbound; +} + +export function integrationsControllerRemoveIntegrationResponseToJSON( + integrationsControllerRemoveIntegrationResponse: + IntegrationsControllerRemoveIntegrationResponse, +): string { + return JSON.stringify( + IntegrationsControllerRemoveIntegrationResponse$outboundSchema.parse( + integrationsControllerRemoveIntegrationResponse, + ), + ); +} + +export function integrationsControllerRemoveIntegrationResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerRemoveIntegrationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerRemoveIntegrationResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerRemoveIntegrationResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollersetintegrationasprimary.ts b/src/models/operations/integrationscontrollersetintegrationasprimary.ts index 0a2011fd..454f8440 100644 --- a/src/models/operations/integrationscontrollersetintegrationasprimary.ts +++ b/src/models/operations/integrationscontrollersetintegrationasprimary.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type IntegrationsControllerSetIntegrationAsPrimaryRequest = { integrationId: string; }; +export type IntegrationsControllerSetIntegrationAsPrimaryResponse = { + headers: { [k: string]: Array }; + result: components.IntegrationResponseDto; +}; + /** @internal */ export const IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema: z.ZodType< @@ -48,3 +58,111 @@ export namespace IntegrationsControllerSetIntegrationAsPrimaryRequest$ { export type Outbound = IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound; } + +export function integrationsControllerSetIntegrationAsPrimaryRequestToJSON( + integrationsControllerSetIntegrationAsPrimaryRequest: + IntegrationsControllerSetIntegrationAsPrimaryRequest, +): string { + return JSON.stringify( + IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema.parse( + integrationsControllerSetIntegrationAsPrimaryRequest, + ), + ); +} + +export function integrationsControllerSetIntegrationAsPrimaryRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerSetIntegrationAsPrimaryRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerSetIntegrationAsPrimaryRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema: + z.ZodType< + IntegrationsControllerSetIntegrationAsPrimaryResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.IntegrationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.IntegrationResponseDto$Outbound; +}; + +/** @internal */ +export const IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema: + z.ZodType< + IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerSetIntegrationAsPrimaryResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.IntegrationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerSetIntegrationAsPrimaryResponse$ { + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound; +} + +export function integrationsControllerSetIntegrationAsPrimaryResponseToJSON( + integrationsControllerSetIntegrationAsPrimaryResponse: + IntegrationsControllerSetIntegrationAsPrimaryResponse, +): string { + return JSON.stringify( + IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema.parse( + integrationsControllerSetIntegrationAsPrimaryResponse, + ), + ); +} + +export function integrationsControllerSetIntegrationAsPrimaryResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerSetIntegrationAsPrimaryResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerSetIntegrationAsPrimaryResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollerupdateintegrationbyid.ts b/src/models/operations/integrationscontrollerupdateintegrationbyid.ts index 3c76a2c5..f3bd1193 100644 --- a/src/models/operations/integrationscontrollerupdateintegrationbyid.ts +++ b/src/models/operations/integrationscontrollerupdateintegrationbyid.ts @@ -4,13 +4,21 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type IntegrationsControllerUpdateIntegrationByIdRequest = { integrationId: string; updateIntegrationRequestDto: components.UpdateIntegrationRequestDto; }; +export type IntegrationsControllerUpdateIntegrationByIdResponse = { + headers: { [k: string]: Array }; + result: components.IntegrationResponseDto; +}; + /** @internal */ export const IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema: z.ZodType< @@ -64,3 +72,111 @@ export namespace IntegrationsControllerUpdateIntegrationByIdRequest$ { export type Outbound = IntegrationsControllerUpdateIntegrationByIdRequest$Outbound; } + +export function integrationsControllerUpdateIntegrationByIdRequestToJSON( + integrationsControllerUpdateIntegrationByIdRequest: + IntegrationsControllerUpdateIntegrationByIdRequest, +): string { + return JSON.stringify( + IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema.parse( + integrationsControllerUpdateIntegrationByIdRequest, + ), + ); +} + +export function integrationsControllerUpdateIntegrationByIdRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerUpdateIntegrationByIdRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerUpdateIntegrationByIdRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema: + z.ZodType< + IntegrationsControllerUpdateIntegrationByIdResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.IntegrationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerUpdateIntegrationByIdResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.IntegrationResponseDto$Outbound; +}; + +/** @internal */ +export const IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema: + z.ZodType< + IntegrationsControllerUpdateIntegrationByIdResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerUpdateIntegrationByIdResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.IntegrationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerUpdateIntegrationByIdResponse$ { + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerUpdateIntegrationByIdResponse$Outbound; +} + +export function integrationsControllerUpdateIntegrationByIdResponseToJSON( + integrationsControllerUpdateIntegrationByIdResponse: + IntegrationsControllerUpdateIntegrationByIdResponse, +): string { + return JSON.stringify( + IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema.parse( + integrationsControllerUpdateIntegrationByIdResponse, + ), + ); +} + +export function integrationsControllerUpdateIntegrationByIdResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerUpdateIntegrationByIdResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerUpdateIntegrationByIdResponse' from JSON`, + ); +} diff --git a/src/models/operations/messagescontrollerdeletemessage.ts b/src/models/operations/messagescontrollerdeletemessage.ts index 7785ee8e..fc4b81d6 100644 --- a/src/models/operations/messagescontrollerdeletemessage.ts +++ b/src/models/operations/messagescontrollerdeletemessage.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type MessagesControllerDeleteMessageRequest = { messageId: string; }; +export type MessagesControllerDeleteMessageResponse = { + headers: { [k: string]: Array }; + result: components.DeleteMessageResponseDto; +}; + /** @internal */ export const MessagesControllerDeleteMessageRequest$inboundSchema: z.ZodType< MessagesControllerDeleteMessageRequest, @@ -45,3 +55,103 @@ export namespace MessagesControllerDeleteMessageRequest$ { /** @deprecated use `MessagesControllerDeleteMessageRequest$Outbound` instead. */ export type Outbound = MessagesControllerDeleteMessageRequest$Outbound; } + +export function messagesControllerDeleteMessageRequestToJSON( + messagesControllerDeleteMessageRequest: + MessagesControllerDeleteMessageRequest, +): string { + return JSON.stringify( + MessagesControllerDeleteMessageRequest$outboundSchema.parse( + messagesControllerDeleteMessageRequest, + ), + ); +} + +export function messagesControllerDeleteMessageRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessageRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerDeleteMessageRequest' from JSON`, + ); +} + +/** @internal */ +export const MessagesControllerDeleteMessageResponse$inboundSchema: z.ZodType< + MessagesControllerDeleteMessageResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DeleteMessageResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type MessagesControllerDeleteMessageResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.DeleteMessageResponseDto$Outbound; +}; + +/** @internal */ +export const MessagesControllerDeleteMessageResponse$outboundSchema: z.ZodType< + MessagesControllerDeleteMessageResponse$Outbound, + z.ZodTypeDef, + MessagesControllerDeleteMessageResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.DeleteMessageResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerDeleteMessageResponse$ { + /** @deprecated use `MessagesControllerDeleteMessageResponse$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerDeleteMessageResponse$inboundSchema; + /** @deprecated use `MessagesControllerDeleteMessageResponse$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerDeleteMessageResponse$outboundSchema; + /** @deprecated use `MessagesControllerDeleteMessageResponse$Outbound` instead. */ + export type Outbound = MessagesControllerDeleteMessageResponse$Outbound; +} + +export function messagesControllerDeleteMessageResponseToJSON( + messagesControllerDeleteMessageResponse: + MessagesControllerDeleteMessageResponse, +): string { + return JSON.stringify( + MessagesControllerDeleteMessageResponse$outboundSchema.parse( + messagesControllerDeleteMessageResponse, + ), + ); +} + +export function messagesControllerDeleteMessageResponseFromJSON( + jsonString: string, +): SafeParseResult< + MessagesControllerDeleteMessageResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessageResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'MessagesControllerDeleteMessageResponse' from JSON`, + ); +} diff --git a/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts b/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts index f9e0d735..57a6607c 100644 --- a/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts +++ b/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts @@ -3,12 +3,16 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * The channel of the message to be deleted */ -export const Channel = { +export const QueryParamChannel = { InApp: "in_app", Email: "email", Sms: "sms", @@ -18,33 +22,39 @@ export const Channel = { /** * The channel of the message to be deleted */ -export type Channel = ClosedEnum; +export type QueryParamChannel = ClosedEnum; export type MessagesControllerDeleteMessagesByTransactionIdRequest = { /** * The channel of the message to be deleted */ - channel?: Channel | undefined; + channel?: QueryParamChannel | undefined; transactionId: string; }; +export type MessagesControllerDeleteMessagesByTransactionIdResponse = { + headers: { [k: string]: Array }; +}; + /** @internal */ -export const Channel$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Channel); +export const QueryParamChannel$inboundSchema: z.ZodNativeEnum< + typeof QueryParamChannel +> = z.nativeEnum(QueryParamChannel); /** @internal */ -export const Channel$outboundSchema: z.ZodNativeEnum = - Channel$inboundSchema; +export const QueryParamChannel$outboundSchema: z.ZodNativeEnum< + typeof QueryParamChannel +> = QueryParamChannel$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace Channel$ { - /** @deprecated use `Channel$inboundSchema` instead. */ - export const inboundSchema = Channel$inboundSchema; - /** @deprecated use `Channel$outboundSchema` instead. */ - export const outboundSchema = Channel$outboundSchema; +export namespace QueryParamChannel$ { + /** @deprecated use `QueryParamChannel$inboundSchema` instead. */ + export const inboundSchema = QueryParamChannel$inboundSchema; + /** @deprecated use `QueryParamChannel$outboundSchema` instead. */ + export const outboundSchema = QueryParamChannel$outboundSchema; } /** @internal */ @@ -54,7 +64,7 @@ export const MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchem z.ZodTypeDef, unknown > = z.object({ - channel: Channel$inboundSchema.optional(), + channel: QueryParamChannel$inboundSchema.optional(), transactionId: z.string(), }); @@ -71,7 +81,7 @@ export const MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSche z.ZodTypeDef, MessagesControllerDeleteMessagesByTransactionIdRequest > = z.object({ - channel: Channel$outboundSchema.optional(), + channel: QueryParamChannel$outboundSchema.optional(), transactionId: z.string(), }); @@ -90,3 +100,103 @@ export namespace MessagesControllerDeleteMessagesByTransactionIdRequest$ { export type Outbound = MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound; } + +export function messagesControllerDeleteMessagesByTransactionIdRequestToJSON( + messagesControllerDeleteMessagesByTransactionIdRequest: + MessagesControllerDeleteMessagesByTransactionIdRequest, +): string { + return JSON.stringify( + MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema.parse( + messagesControllerDeleteMessagesByTransactionIdRequest, + ), + ); +} + +export function messagesControllerDeleteMessagesByTransactionIdRequestFromJSON( + jsonString: string, +): SafeParseResult< + MessagesControllerDeleteMessagesByTransactionIdRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerDeleteMessagesByTransactionIdRequest' from JSON`, + ); +} + +/** @internal */ +export const MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema: + z.ZodType< + MessagesControllerDeleteMessagesByTransactionIdResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema: + z.ZodType< + MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound, + z.ZodTypeDef, + MessagesControllerDeleteMessagesByTransactionIdResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerDeleteMessagesByTransactionIdResponse$ { + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema; + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema; + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound` instead. */ + export type Outbound = + MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound; +} + +export function messagesControllerDeleteMessagesByTransactionIdResponseToJSON( + messagesControllerDeleteMessagesByTransactionIdResponse: + MessagesControllerDeleteMessagesByTransactionIdResponse, +): string { + return JSON.stringify( + MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema + .parse(messagesControllerDeleteMessagesByTransactionIdResponse), + ); +} + +export function messagesControllerDeleteMessagesByTransactionIdResponseFromJSON( + jsonString: string, +): SafeParseResult< + MessagesControllerDeleteMessagesByTransactionIdResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerDeleteMessagesByTransactionIdResponse' from JSON`, + ); +} diff --git a/src/models/operations/messagescontrollergetmessages.ts b/src/models/operations/messagescontrollergetmessages.ts index bd77fc5d..4b0ab8e2 100644 --- a/src/models/operations/messagescontrollergetmessages.ts +++ b/src/models/operations/messagescontrollergetmessages.ts @@ -3,44 +3,52 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -export const QueryParamChannel = { +export const Channel = { InApp: "in_app", Email: "email", Sms: "sms", Chat: "chat", Push: "push", } as const; -export type QueryParamChannel = ClosedEnum; +export type Channel = ClosedEnum; export type MessagesControllerGetMessagesRequest = { - channel?: QueryParamChannel | undefined; + channel?: Channel | undefined; subscriberId?: string | undefined; transactionId?: Array | undefined; page?: number | undefined; limit?: number | undefined; }; +export type MessagesControllerGetMessagesResponse = { + headers: { [k: string]: Array }; + result: components.ActivitiesResponseDto; +}; + /** @internal */ -export const QueryParamChannel$inboundSchema: z.ZodNativeEnum< - typeof QueryParamChannel -> = z.nativeEnum(QueryParamChannel); +export const Channel$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Channel); /** @internal */ -export const QueryParamChannel$outboundSchema: z.ZodNativeEnum< - typeof QueryParamChannel -> = QueryParamChannel$inboundSchema; +export const Channel$outboundSchema: z.ZodNativeEnum = + Channel$inboundSchema; /** * @internal * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. */ -export namespace QueryParamChannel$ { - /** @deprecated use `QueryParamChannel$inboundSchema` instead. */ - export const inboundSchema = QueryParamChannel$inboundSchema; - /** @deprecated use `QueryParamChannel$outboundSchema` instead. */ - export const outboundSchema = QueryParamChannel$outboundSchema; +export namespace Channel$ { + /** @deprecated use `Channel$inboundSchema` instead. */ + export const inboundSchema = Channel$inboundSchema; + /** @deprecated use `Channel$outboundSchema` instead. */ + export const outboundSchema = Channel$outboundSchema; } /** @internal */ @@ -49,7 +57,7 @@ export const MessagesControllerGetMessagesRequest$inboundSchema: z.ZodType< z.ZodTypeDef, unknown > = z.object({ - channel: QueryParamChannel$inboundSchema.optional(), + channel: Channel$inboundSchema.optional(), subscriberId: z.string().optional(), transactionId: z.array(z.string()).optional(), page: z.number().default(0), @@ -71,7 +79,7 @@ export const MessagesControllerGetMessagesRequest$outboundSchema: z.ZodType< z.ZodTypeDef, MessagesControllerGetMessagesRequest > = z.object({ - channel: QueryParamChannel$outboundSchema.optional(), + channel: Channel$outboundSchema.optional(), subscriberId: z.string().optional(), transactionId: z.array(z.string()).optional(), page: z.number().default(0), @@ -92,3 +100,96 @@ export namespace MessagesControllerGetMessagesRequest$ { /** @deprecated use `MessagesControllerGetMessagesRequest$Outbound` instead. */ export type Outbound = MessagesControllerGetMessagesRequest$Outbound; } + +export function messagesControllerGetMessagesRequestToJSON( + messagesControllerGetMessagesRequest: MessagesControllerGetMessagesRequest, +): string { + return JSON.stringify( + MessagesControllerGetMessagesRequest$outboundSchema.parse( + messagesControllerGetMessagesRequest, + ), + ); +} + +export function messagesControllerGetMessagesRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + MessagesControllerGetMessagesRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerGetMessagesRequest' from JSON`, + ); +} + +/** @internal */ +export const MessagesControllerGetMessagesResponse$inboundSchema: z.ZodType< + MessagesControllerGetMessagesResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivitiesResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type MessagesControllerGetMessagesResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivitiesResponseDto$Outbound; +}; + +/** @internal */ +export const MessagesControllerGetMessagesResponse$outboundSchema: z.ZodType< + MessagesControllerGetMessagesResponse$Outbound, + z.ZodTypeDef, + MessagesControllerGetMessagesResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivitiesResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerGetMessagesResponse$ { + /** @deprecated use `MessagesControllerGetMessagesResponse$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerGetMessagesResponse$inboundSchema; + /** @deprecated use `MessagesControllerGetMessagesResponse$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerGetMessagesResponse$outboundSchema; + /** @deprecated use `MessagesControllerGetMessagesResponse$Outbound` instead. */ + export type Outbound = MessagesControllerGetMessagesResponse$Outbound; +} + +export function messagesControllerGetMessagesResponseToJSON( + messagesControllerGetMessagesResponse: MessagesControllerGetMessagesResponse, +): string { + return JSON.stringify( + MessagesControllerGetMessagesResponse$outboundSchema.parse( + messagesControllerGetMessagesResponse, + ), + ); +} + +export function messagesControllerGetMessagesResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + MessagesControllerGetMessagesResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerGetMessagesResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts b/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts index 2a456ee2..505fb746 100644 --- a/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts +++ b/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationGroupsControllerDeleteNotificationGroupRequest = { id: string; }; +export type NotificationGroupsControllerDeleteNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.DeleteNotificationGroupResponseDto; +}; + /** @internal */ export const NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema: z.ZodType< @@ -49,3 +59,108 @@ export namespace NotificationGroupsControllerDeleteNotificationGroupRequest$ { export type Outbound = NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound; } + +export function notificationGroupsControllerDeleteNotificationGroupRequestToJSON( + notificationGroupsControllerDeleteNotificationGroupRequest: + NotificationGroupsControllerDeleteNotificationGroupRequest, +): string { + return JSON.stringify( + NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema + .parse(notificationGroupsControllerDeleteNotificationGroupRequest), + ); +} + +export function notificationGroupsControllerDeleteNotificationGroupRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerDeleteNotificationGroupRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerDeleteNotificationGroupRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerDeleteNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DeleteNotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.DeleteNotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerDeleteNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.DeleteNotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerDeleteNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerDeleteNotificationGroupResponseToJSON( + notificationGroupsControllerDeleteNotificationGroupResponse: + NotificationGroupsControllerDeleteNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerDeleteNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerDeleteNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerDeleteNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerDeleteNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts b/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts index ed8870f6..8f66a911 100644 --- a/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts +++ b/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationGroupsControllerGetNotificationGroupRequest = { id: string; }; +export type NotificationGroupsControllerGetNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.NotificationGroupResponseDto; +}; + /** @internal */ export const NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema: z.ZodType< @@ -48,3 +58,108 @@ export namespace NotificationGroupsControllerGetNotificationGroupRequest$ { export type Outbound = NotificationGroupsControllerGetNotificationGroupRequest$Outbound; } + +export function notificationGroupsControllerGetNotificationGroupRequestToJSON( + notificationGroupsControllerGetNotificationGroupRequest: + NotificationGroupsControllerGetNotificationGroupRequest, +): string { + return JSON.stringify( + NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema + .parse(notificationGroupsControllerGetNotificationGroupRequest), + ); +} + +export function notificationGroupsControllerGetNotificationGroupRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerGetNotificationGroupRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerGetNotificationGroupRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerGetNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.NotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerGetNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.NotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerGetNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerGetNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.NotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerGetNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerGetNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerGetNotificationGroupResponseToJSON( + notificationGroupsControllerGetNotificationGroupResponse: + NotificationGroupsControllerGetNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerGetNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerGetNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerGetNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerGetNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts b/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts index ca99c034..5a7b80d0 100644 --- a/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts +++ b/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationGroupsControllerUpdateNotificationGroupRequest = { id: string; @@ -12,6 +15,11 @@ export type NotificationGroupsControllerUpdateNotificationGroupRequest = { components.CreateNotificationGroupRequestDto; }; +export type NotificationGroupsControllerUpdateNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.NotificationGroupResponseDto; +}; + /** @internal */ export const NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema: z.ZodType< @@ -67,3 +75,108 @@ export namespace NotificationGroupsControllerUpdateNotificationGroupRequest$ { export type Outbound = NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound; } + +export function notificationGroupsControllerUpdateNotificationGroupRequestToJSON( + notificationGroupsControllerUpdateNotificationGroupRequest: + NotificationGroupsControllerUpdateNotificationGroupRequest, +): string { + return JSON.stringify( + NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema + .parse(notificationGroupsControllerUpdateNotificationGroupRequest), + ); +} + +export function notificationGroupsControllerUpdateNotificationGroupRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerUpdateNotificationGroupRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerUpdateNotificationGroupRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerUpdateNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.NotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.NotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerUpdateNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.NotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerUpdateNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerUpdateNotificationGroupResponseToJSON( + notificationGroupsControllerUpdateNotificationGroupResponse: + NotificationGroupsControllerUpdateNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerUpdateNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerUpdateNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerUpdateNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerUpdateNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollergetactivitygraphstats.ts b/src/models/operations/notificationscontrollergetactivitygraphstats.ts index cc0814dd..e392a033 100644 --- a/src/models/operations/notificationscontrollergetactivitygraphstats.ts +++ b/src/models/operations/notificationscontrollergetactivitygraphstats.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationsControllerGetActivityGraphStatsRequest = { days?: number | undefined; }; +export type NotificationsControllerGetActivityGraphStatsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + /** @internal */ export const NotificationsControllerGetActivityGraphStatsRequest$inboundSchema: z.ZodType< @@ -48,3 +58,111 @@ export namespace NotificationsControllerGetActivityGraphStatsRequest$ { export type Outbound = NotificationsControllerGetActivityGraphStatsRequest$Outbound; } + +export function notificationsControllerGetActivityGraphStatsRequestToJSON( + notificationsControllerGetActivityGraphStatsRequest: + NotificationsControllerGetActivityGraphStatsRequest, +): string { + return JSON.stringify( + NotificationsControllerGetActivityGraphStatsRequest$outboundSchema.parse( + notificationsControllerGetActivityGraphStatsRequest, + ), + ); +} + +export function notificationsControllerGetActivityGraphStatsRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetActivityGraphStatsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetActivityGraphStatsRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetActivityGraphStatsRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationsControllerGetActivityGraphStatsResponse$inboundSchema: + z.ZodType< + NotificationsControllerGetActivityGraphStatsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.ActivityGraphStatesResponse$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerGetActivityGraphStatsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const NotificationsControllerGetActivityGraphStatsResponse$outboundSchema: + z.ZodType< + NotificationsControllerGetActivityGraphStatsResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerGetActivityGraphStatsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.ActivityGraphStatesResponse$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetActivityGraphStatsResponse$ { + /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetActivityGraphStatsResponse$inboundSchema; + /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetActivityGraphStatsResponse$outboundSchema; + /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerGetActivityGraphStatsResponse$Outbound; +} + +export function notificationsControllerGetActivityGraphStatsResponseToJSON( + notificationsControllerGetActivityGraphStatsResponse: + NotificationsControllerGetActivityGraphStatsResponse, +): string { + return JSON.stringify( + NotificationsControllerGetActivityGraphStatsResponse$outboundSchema.parse( + notificationsControllerGetActivityGraphStatsResponse, + ), + ); +} + +export function notificationsControllerGetActivityGraphStatsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetActivityGraphStatsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetActivityGraphStatsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetActivityGraphStatsResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollergetnotification.ts b/src/models/operations/notificationscontrollergetnotification.ts index 1f7fa92b..12ae293d 100644 --- a/src/models/operations/notificationscontrollergetnotification.ts +++ b/src/models/operations/notificationscontrollergetnotification.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type NotificationsControllerGetNotificationRequest = { notificationId: string; }; +export type NotificationsControllerGetNotificationResponse = { + headers: { [k: string]: Array }; + result: components.ActivityNotificationResponseDto; +}; + /** @internal */ export const NotificationsControllerGetNotificationRequest$inboundSchema: z.ZodType< @@ -47,3 +57,111 @@ export namespace NotificationsControllerGetNotificationRequest$ { /** @deprecated use `NotificationsControllerGetNotificationRequest$Outbound` instead. */ export type Outbound = NotificationsControllerGetNotificationRequest$Outbound; } + +export function notificationsControllerGetNotificationRequestToJSON( + notificationsControllerGetNotificationRequest: + NotificationsControllerGetNotificationRequest, +): string { + return JSON.stringify( + NotificationsControllerGetNotificationRequest$outboundSchema.parse( + notificationsControllerGetNotificationRequest, + ), + ); +} + +export function notificationsControllerGetNotificationRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetNotificationRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetNotificationRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetNotificationRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationsControllerGetNotificationResponse$inboundSchema: + z.ZodType< + NotificationsControllerGetNotificationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivityNotificationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerGetNotificationResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivityNotificationResponseDto$Outbound; +}; + +/** @internal */ +export const NotificationsControllerGetNotificationResponse$outboundSchema: + z.ZodType< + NotificationsControllerGetNotificationResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerGetNotificationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivityNotificationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetNotificationResponse$ { + /** @deprecated use `NotificationsControllerGetNotificationResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetNotificationResponse$inboundSchema; + /** @deprecated use `NotificationsControllerGetNotificationResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetNotificationResponse$outboundSchema; + /** @deprecated use `NotificationsControllerGetNotificationResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerGetNotificationResponse$Outbound; +} + +export function notificationsControllerGetNotificationResponseToJSON( + notificationsControllerGetNotificationResponse: + NotificationsControllerGetNotificationResponse, +): string { + return JSON.stringify( + NotificationsControllerGetNotificationResponse$outboundSchema.parse( + notificationsControllerGetNotificationResponse, + ), + ); +} + +export function notificationsControllerGetNotificationResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetNotificationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetNotificationResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetNotificationResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollerlistnotifications.ts b/src/models/operations/notificationscontrollerlistnotifications.ts index e7d953a6..3643a26d 100644 --- a/src/models/operations/notificationscontrollerlistnotifications.ts +++ b/src/models/operations/notificationscontrollerlistnotifications.ts @@ -3,7 +3,12 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const Channels = { InApp: "in_app", @@ -27,6 +32,11 @@ export type NotificationsControllerListNotificationsRequest = { transactionId?: string | undefined; }; +export type NotificationsControllerListNotificationsResponse = { + headers: { [k: string]: Array }; + result: components.ActivitiesResponseDto; +}; + /** @internal */ export const Channels$inboundSchema: z.ZodNativeEnum = z .nativeEnum(Channels); @@ -104,3 +114,111 @@ export namespace NotificationsControllerListNotificationsRequest$ { export type Outbound = NotificationsControllerListNotificationsRequest$Outbound; } + +export function notificationsControllerListNotificationsRequestToJSON( + notificationsControllerListNotificationsRequest: + NotificationsControllerListNotificationsRequest, +): string { + return JSON.stringify( + NotificationsControllerListNotificationsRequest$outboundSchema.parse( + notificationsControllerListNotificationsRequest, + ), + ); +} + +export function notificationsControllerListNotificationsRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerListNotificationsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerListNotificationsRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerListNotificationsRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationsControllerListNotificationsResponse$inboundSchema: + z.ZodType< + NotificationsControllerListNotificationsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivitiesResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerListNotificationsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivitiesResponseDto$Outbound; +}; + +/** @internal */ +export const NotificationsControllerListNotificationsResponse$outboundSchema: + z.ZodType< + NotificationsControllerListNotificationsResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerListNotificationsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivitiesResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerListNotificationsResponse$ { + /** @deprecated use `NotificationsControllerListNotificationsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerListNotificationsResponse$inboundSchema; + /** @deprecated use `NotificationsControllerListNotificationsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerListNotificationsResponse$outboundSchema; + /** @deprecated use `NotificationsControllerListNotificationsResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerListNotificationsResponse$Outbound; +} + +export function notificationsControllerListNotificationsResponseToJSON( + notificationsControllerListNotificationsResponse: + NotificationsControllerListNotificationsResponse, +): string { + return JSON.stringify( + NotificationsControllerListNotificationsResponse$outboundSchema.parse( + notificationsControllerListNotificationsResponse, + ), + ); +} + +export function notificationsControllerListNotificationsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerListNotificationsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerListNotificationsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerListNotificationsResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerchataccessoauth.ts b/src/models/operations/subscriberscontrollerchataccessoauth.ts index e22a6cd8..384465b7 100644 --- a/src/models/operations/subscriberscontrollerchataccessoauth.ts +++ b/src/models/operations/subscriberscontrollerchataccessoauth.ts @@ -3,6 +3,10 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerChatAccessOauthRequest = { subscriberId: string; @@ -12,6 +16,10 @@ export type SubscribersControllerChatAccessOauthRequest = { integrationIdentifier?: string | undefined; }; +export type SubscribersControllerChatAccessOauthResponse = { + headers: { [k: string]: Array }; +}; + /** @internal */ export const SubscribersControllerChatAccessOauthRequest$inboundSchema: z.ZodType< @@ -63,3 +71,105 @@ export namespace SubscribersControllerChatAccessOauthRequest$ { /** @deprecated use `SubscribersControllerChatAccessOauthRequest$Outbound` instead. */ export type Outbound = SubscribersControllerChatAccessOauthRequest$Outbound; } + +export function subscribersControllerChatAccessOauthRequestToJSON( + subscribersControllerChatAccessOauthRequest: + SubscribersControllerChatAccessOauthRequest, +): string { + return JSON.stringify( + SubscribersControllerChatAccessOauthRequest$outboundSchema.parse( + subscribersControllerChatAccessOauthRequest, + ), + ); +} + +export function subscribersControllerChatAccessOauthRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatAccessOauthRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatAccessOauthRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatAccessOauthRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerChatAccessOauthResponse$inboundSchema: + z.ZodType< + SubscribersControllerChatAccessOauthResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type SubscribersControllerChatAccessOauthResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerChatAccessOauthResponse$outboundSchema: + z.ZodType< + SubscribersControllerChatAccessOauthResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerChatAccessOauthResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerChatAccessOauthResponse$ { + /** @deprecated use `SubscribersControllerChatAccessOauthResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerChatAccessOauthResponse$inboundSchema; + /** @deprecated use `SubscribersControllerChatAccessOauthResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerChatAccessOauthResponse$outboundSchema; + /** @deprecated use `SubscribersControllerChatAccessOauthResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerChatAccessOauthResponse$Outbound; +} + +export function subscribersControllerChatAccessOauthResponseToJSON( + subscribersControllerChatAccessOauthResponse: + SubscribersControllerChatAccessOauthResponse, +): string { + return JSON.stringify( + SubscribersControllerChatAccessOauthResponse$outboundSchema.parse( + subscribersControllerChatAccessOauthResponse, + ), + ); +} + +export function subscribersControllerChatAccessOauthResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatAccessOauthResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatAccessOauthResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatAccessOauthResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerchatoauthcallback.ts b/src/models/operations/subscriberscontrollerchatoauthcallback.ts index 5b03acc8..8f1b742e 100644 --- a/src/models/operations/subscriberscontrollerchatoauthcallback.ts +++ b/src/models/operations/subscriberscontrollerchatoauthcallback.ts @@ -3,6 +3,10 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerChatOauthCallbackRequest = { subscriberId: string; @@ -15,6 +19,11 @@ export type SubscribersControllerChatOauthCallbackRequest = { export type SubscribersControllerChatOauthCallbackResponseBody = {}; +export type SubscribersControllerChatOauthCallbackResponse = { + headers: { [k: string]: Array }; + result: SubscribersControllerChatOauthCallbackResponseBody; +}; + /** @internal */ export const SubscribersControllerChatOauthCallbackRequest$inboundSchema: z.ZodType< @@ -70,6 +79,33 @@ export namespace SubscribersControllerChatOauthCallbackRequest$ { export type Outbound = SubscribersControllerChatOauthCallbackRequest$Outbound; } +export function subscribersControllerChatOauthCallbackRequestToJSON( + subscribersControllerChatOauthCallbackRequest: + SubscribersControllerChatOauthCallbackRequest, +): string { + return JSON.stringify( + SubscribersControllerChatOauthCallbackRequest$outboundSchema.parse( + subscribersControllerChatOauthCallbackRequest, + ), + ); +} + +export function subscribersControllerChatOauthCallbackRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatOauthCallbackRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatOauthCallbackRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatOauthCallbackRequest' from JSON`, + ); +} + /** @internal */ export const SubscribersControllerChatOauthCallbackResponseBody$inboundSchema: z.ZodType< @@ -104,3 +140,115 @@ export namespace SubscribersControllerChatOauthCallbackResponseBody$ { export type Outbound = SubscribersControllerChatOauthCallbackResponseBody$Outbound; } + +export function subscribersControllerChatOauthCallbackResponseBodyToJSON( + subscribersControllerChatOauthCallbackResponseBody: + SubscribersControllerChatOauthCallbackResponseBody, +): string { + return JSON.stringify( + SubscribersControllerChatOauthCallbackResponseBody$outboundSchema.parse( + subscribersControllerChatOauthCallbackResponseBody, + ), + ); +} + +export function subscribersControllerChatOauthCallbackResponseBodyFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatOauthCallbackResponseBody, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatOauthCallbackResponseBody$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatOauthCallbackResponseBody' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerChatOauthCallbackResponse$inboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.lazy(() => + SubscribersControllerChatOauthCallbackResponseBody$inboundSchema + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerChatOauthCallbackResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: SubscribersControllerChatOauthCallbackResponseBody$Outbound; +}; + +/** @internal */ +export const SubscribersControllerChatOauthCallbackResponse$outboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerChatOauthCallbackResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.lazy(() => + SubscribersControllerChatOauthCallbackResponseBody$outboundSchema + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerChatOauthCallbackResponse$ { + /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerChatOauthCallbackResponse$inboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerChatOauthCallbackResponse$outboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerChatOauthCallbackResponse$Outbound; +} + +export function subscribersControllerChatOauthCallbackResponseToJSON( + subscribersControllerChatOauthCallbackResponse: + SubscribersControllerChatOauthCallbackResponse, +): string { + return JSON.stringify( + SubscribersControllerChatOauthCallbackResponse$outboundSchema.parse( + subscribersControllerChatOauthCallbackResponse, + ), + ); +} + +export function subscribersControllerChatOauthCallbackResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatOauthCallbackResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatOauthCallbackResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatOauthCallbackResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts b/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts index f9bfc547..b8f06c77 100644 --- a/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts +++ b/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts @@ -3,12 +3,20 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerDeleteSubscriberCredentialsRequest = { subscriberId: string; providerId: string; }; +export type SubscribersControllerDeleteSubscriberCredentialsResponse = { + headers: { [k: string]: Array }; +}; + /** @internal */ export const SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema: z.ZodType< @@ -52,3 +60,103 @@ export namespace SubscribersControllerDeleteSubscriberCredentialsRequest$ { export type Outbound = SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound; } + +export function subscribersControllerDeleteSubscriberCredentialsRequestToJSON( + subscribersControllerDeleteSubscriberCredentialsRequest: + SubscribersControllerDeleteSubscriberCredentialsRequest, +): string { + return JSON.stringify( + SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema + .parse(subscribersControllerDeleteSubscriberCredentialsRequest), + ); +} + +export function subscribersControllerDeleteSubscriberCredentialsRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerDeleteSubscriberCredentialsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerDeleteSubscriberCredentialsRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema: + z.ZodType< + SubscribersControllerDeleteSubscriberCredentialsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound = + { + Headers: { [k: string]: Array }; + }; + +/** @internal */ +export const SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema: + z.ZodType< + SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerDeleteSubscriberCredentialsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerDeleteSubscriberCredentialsResponse$ { + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema; + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema; + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound; +} + +export function subscribersControllerDeleteSubscriberCredentialsResponseToJSON( + subscribersControllerDeleteSubscriberCredentialsResponse: + SubscribersControllerDeleteSubscriberCredentialsResponse, +): string { + return JSON.stringify( + SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema + .parse(subscribersControllerDeleteSubscriberCredentialsResponse), + ); +} + +export function subscribersControllerDeleteSubscriberCredentialsResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerDeleteSubscriberCredentialsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerDeleteSubscriberCredentialsResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetnotificationsfeed.ts b/src/models/operations/subscriberscontrollergetnotificationsfeed.ts index 47dbd4d7..8775dc61 100644 --- a/src/models/operations/subscriberscontrollergetnotificationsfeed.ts +++ b/src/models/operations/subscriberscontrollergetnotificationsfeed.ts @@ -3,7 +3,11 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerGetNotificationsFeedRequest = { subscriberId: string; @@ -18,19 +22,24 @@ export type SubscribersControllerGetNotificationsFeedRequest = { }; export type SubscribersControllerGetNotificationsFeedResponseBody = { - data: Array; - /** - * Does the list have more items to fetch - */ - hasMore: boolean; /** * The current page of the paginated response */ page: number; + /** + * Does the list have more items to fetch + */ + hasMore: boolean; /** * Number of items on each page */ pageSize: number; + data: Array; +}; + +export type SubscribersControllerGetNotificationsFeedResponse = { + headers: { [k: string]: Array }; + result: SubscribersControllerGetNotificationsFeedResponseBody; }; /** @internal */ @@ -89,6 +98,33 @@ export namespace SubscribersControllerGetNotificationsFeedRequest$ { SubscribersControllerGetNotificationsFeedRequest$Outbound; } +export function subscribersControllerGetNotificationsFeedRequestToJSON( + subscribersControllerGetNotificationsFeedRequest: + SubscribersControllerGetNotificationsFeedRequest, +): string { + return JSON.stringify( + SubscribersControllerGetNotificationsFeedRequest$outboundSchema.parse( + subscribersControllerGetNotificationsFeedRequest, + ), + ); +} + +export function subscribersControllerGetNotificationsFeedRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetNotificationsFeedRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetNotificationsFeedRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetNotificationsFeedRequest' from JSON`, + ); +} + /** @internal */ export const SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema: z.ZodType< @@ -96,18 +132,18 @@ export const SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema z.ZodTypeDef, unknown > = z.object({ - data: z.array(components.FeedResponseDto$inboundSchema), - hasMore: z.boolean(), page: z.number(), + hasMore: z.boolean(), pageSize: z.number(), + data: z.array(components.FeedResponseDto$inboundSchema), }); /** @internal */ export type SubscribersControllerGetNotificationsFeedResponseBody$Outbound = { - data: Array; - hasMore: boolean; page: number; + hasMore: boolean; pageSize: number; + data: Array; }; /** @internal */ @@ -117,10 +153,10 @@ export const SubscribersControllerGetNotificationsFeedResponseBody$outboundSchem z.ZodTypeDef, SubscribersControllerGetNotificationsFeedResponseBody > = z.object({ - data: z.array(components.FeedResponseDto$outboundSchema), - hasMore: z.boolean(), page: z.number(), + hasMore: z.boolean(), pageSize: z.number(), + data: z.array(components.FeedResponseDto$outboundSchema), }); /** @@ -138,3 +174,115 @@ export namespace SubscribersControllerGetNotificationsFeedResponseBody$ { export type Outbound = SubscribersControllerGetNotificationsFeedResponseBody$Outbound; } + +export function subscribersControllerGetNotificationsFeedResponseBodyToJSON( + subscribersControllerGetNotificationsFeedResponseBody: + SubscribersControllerGetNotificationsFeedResponseBody, +): string { + return JSON.stringify( + SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema.parse( + subscribersControllerGetNotificationsFeedResponseBody, + ), + ); +} + +export function subscribersControllerGetNotificationsFeedResponseBodyFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetNotificationsFeedResponseBody, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetNotificationsFeedResponseBody' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedResponse$inboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.lazy(() => + SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetNotificationsFeedResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: SubscribersControllerGetNotificationsFeedResponseBody$Outbound; +}; + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetNotificationsFeedResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.lazy(() => + SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetNotificationsFeedResponse$ { + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetNotificationsFeedResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetNotificationsFeedResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerGetNotificationsFeedResponse$Outbound; +} + +export function subscribersControllerGetNotificationsFeedResponseToJSON( + subscribersControllerGetNotificationsFeedResponse: + SubscribersControllerGetNotificationsFeedResponse, +): string { + return JSON.stringify( + SubscribersControllerGetNotificationsFeedResponse$outboundSchema.parse( + subscribersControllerGetNotificationsFeedResponse, + ), + ); +} + +export function subscribersControllerGetNotificationsFeedResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetNotificationsFeedResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetNotificationsFeedResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetNotificationsFeedResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetsubscriber.ts b/src/models/operations/subscriberscontrollergetsubscriber.ts index fb99b213..f82b76ad 100644 --- a/src/models/operations/subscriberscontrollergetsubscriber.ts +++ b/src/models/operations/subscriberscontrollergetsubscriber.ts @@ -3,9 +3,23 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerGetSubscriberRequest = { subscriberId: string; + /** + * Includes the topics associated with the subscriber + */ + includeTopics?: string | undefined; +}; + +export type SubscribersControllerGetSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; }; /** @internal */ @@ -15,11 +29,13 @@ export const SubscribersControllerGetSubscriberRequest$inboundSchema: z.ZodType< unknown > = z.object({ subscriberId: z.string(), + includeTopics: z.string().optional(), }); /** @internal */ export type SubscribersControllerGetSubscriberRequest$Outbound = { subscriberId: string; + includeTopics?: string | undefined; }; /** @internal */ @@ -30,6 +46,7 @@ export const SubscribersControllerGetSubscriberRequest$outboundSchema: SubscribersControllerGetSubscriberRequest > = z.object({ subscriberId: z.string(), + includeTopics: z.string().optional(), }); /** @@ -46,3 +63,107 @@ export namespace SubscribersControllerGetSubscriberRequest$ { /** @deprecated use `SubscribersControllerGetSubscriberRequest$Outbound` instead. */ export type Outbound = SubscribersControllerGetSubscriberRequest$Outbound; } + +export function subscribersControllerGetSubscriberRequestToJSON( + subscribersControllerGetSubscriberRequest: + SubscribersControllerGetSubscriberRequest, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberRequest$outboundSchema.parse( + subscribersControllerGetSubscriberRequest, + ), + ); +} + +export function subscribersControllerGetSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetSubscriberResponse$inboundSchema: + z.ZodType = + z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerGetSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetSubscriberResponse$ { + /** @deprecated use `SubscribersControllerGetSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerGetSubscriberResponse$Outbound; +} + +export function subscribersControllerGetSubscriberResponseToJSON( + subscribersControllerGetSubscriberResponse: + SubscribersControllerGetSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberResponse$outboundSchema.parse( + subscribersControllerGetSubscriberResponse, + ), + ); +} + +export function subscribersControllerGetSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts b/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts index 15386fd2..bb683d78 100644 --- a/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts +++ b/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts @@ -3,28 +3,42 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** - * the preferences level to be retrieved( Subscriber / Topic) + * the preferences level to be retrieved (template / global) */ export const Parameter = { - Subscriber: "Subscriber", - Topic: "Topic", + Global: "global", + Template: "template", } as const; /** - * the preferences level to be retrieved( Subscriber / Topic) + * the preferences level to be retrieved (template / global) */ export type Parameter = ClosedEnum; export type SubscribersControllerGetSubscriberPreferenceByLevelRequest = { /** - * the preferences level to be retrieved( Subscriber / Topic) + * A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + */ + includeInactiveChannels?: boolean | undefined; + /** + * the preferences level to be retrieved (template / global) */ parameter: Parameter; subscriberId: string; }; +export type SubscribersControllerGetSubscriberPreferenceByLevelResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + /** @internal */ export const Parameter$inboundSchema: z.ZodNativeEnum = z .nativeEnum(Parameter); @@ -51,6 +65,7 @@ export const SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundS z.ZodTypeDef, unknown > = z.object({ + includeInactiveChannels: z.boolean().optional(), parameter: Parameter$inboundSchema, subscriberId: z.string(), }); @@ -58,6 +73,7 @@ export const SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundS /** @internal */ export type SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound = { + includeInactiveChannels?: boolean | undefined; parameter: string; subscriberId: string; }; @@ -69,6 +85,7 @@ export const SubscribersControllerGetSubscriberPreferenceByLevelRequest$outbound z.ZodTypeDef, SubscribersControllerGetSubscriberPreferenceByLevelRequest > = z.object({ + includeInactiveChannels: z.boolean().optional(), parameter: Parameter$outboundSchema, subscriberId: z.string(), }); @@ -88,3 +105,112 @@ export namespace SubscribersControllerGetSubscriberPreferenceByLevelRequest$ { export type Outbound = SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound; } + +export function subscribersControllerGetSubscriberPreferenceByLevelRequestToJSON( + subscribersControllerGetSubscriberPreferenceByLevelRequest: + SubscribersControllerGetSubscriberPreferenceByLevelRequest, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema + .parse(subscribersControllerGetSubscriberPreferenceByLevelRequest), + ); +} + +export function subscribersControllerGetSubscriberPreferenceByLevelRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberPreferenceByLevelRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerGetSubscriberPreferenceByLevelRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberPreferenceByLevelResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array( + components.GetSubscriberPreferencesResponseDto$inboundSchema, + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: Array; + }; + +/** @internal */ +export const SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetSubscriberPreferenceByLevelResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array( + components.GetSubscriberPreferencesResponseDto$outboundSchema, + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetSubscriberPreferenceByLevelResponse$ { + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound; +} + +export function subscribersControllerGetSubscriberPreferenceByLevelResponseToJSON( + subscribersControllerGetSubscriberPreferenceByLevelResponse: + SubscribersControllerGetSubscriberPreferenceByLevelResponse, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema + .parse(subscribersControllerGetSubscriberPreferenceByLevelResponse), + ); +} + +export function subscribersControllerGetSubscriberPreferenceByLevelResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberPreferenceByLevelResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerGetSubscriberPreferenceByLevelResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetunseencount.ts b/src/models/operations/subscriberscontrollergetunseencount.ts index fc9e6dc4..00f9dbd6 100644 --- a/src/models/operations/subscriberscontrollergetunseencount.ts +++ b/src/models/operations/subscriberscontrollergetunseencount.ts @@ -3,6 +3,11 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerGetUnseenCountRequest = { seen: boolean; @@ -10,6 +15,11 @@ export type SubscribersControllerGetUnseenCountRequest = { limit: number; }; +export type SubscribersControllerGetUnseenCountResponse = { + headers: { [k: string]: Array }; + result: components.UnseenCountResponse; +}; + /** @internal */ export const SubscribersControllerGetUnseenCountRequest$inboundSchema: z.ZodType = @@ -52,3 +62,110 @@ export namespace SubscribersControllerGetUnseenCountRequest$ { /** @deprecated use `SubscribersControllerGetUnseenCountRequest$Outbound` instead. */ export type Outbound = SubscribersControllerGetUnseenCountRequest$Outbound; } + +export function subscribersControllerGetUnseenCountRequestToJSON( + subscribersControllerGetUnseenCountRequest: + SubscribersControllerGetUnseenCountRequest, +): string { + return JSON.stringify( + SubscribersControllerGetUnseenCountRequest$outboundSchema.parse( + subscribersControllerGetUnseenCountRequest, + ), + ); +} + +export function subscribersControllerGetUnseenCountRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetUnseenCountRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetUnseenCountRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetUnseenCountRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetUnseenCountResponse$inboundSchema: + z.ZodType< + SubscribersControllerGetUnseenCountResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.UnseenCountResponse$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetUnseenCountResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.UnseenCountResponse$Outbound; +}; + +/** @internal */ +export const SubscribersControllerGetUnseenCountResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetUnseenCountResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetUnseenCountResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.UnseenCountResponse$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetUnseenCountResponse$ { + /** @deprecated use `SubscribersControllerGetUnseenCountResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetUnseenCountResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetUnseenCountResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetUnseenCountResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetUnseenCountResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerGetUnseenCountResponse$Outbound; +} + +export function subscribersControllerGetUnseenCountResponseToJSON( + subscribersControllerGetUnseenCountResponse: + SubscribersControllerGetUnseenCountResponse, +): string { + return JSON.stringify( + SubscribersControllerGetUnseenCountResponse$outboundSchema.parse( + subscribersControllerGetUnseenCountResponse, + ), + ); +} + +export function subscribersControllerGetUnseenCountResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetUnseenCountResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetUnseenCountResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetUnseenCountResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts b/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts index 2fef7144..b59385b5 100644 --- a/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts +++ b/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts @@ -3,9 +3,23 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerListSubscriberPreferencesRequest = { subscriberId: string; + /** + * A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + */ + includeInactiveChannels?: boolean | undefined; +}; + +export type SubscribersControllerListSubscriberPreferencesResponse = { + headers: { [k: string]: Array }; + result: Array; }; /** @internal */ @@ -16,11 +30,13 @@ export const SubscribersControllerListSubscriberPreferencesRequest$inboundSchema unknown > = z.object({ subscriberId: z.string(), + includeInactiveChannels: z.boolean().optional(), }); /** @internal */ export type SubscribersControllerListSubscriberPreferencesRequest$Outbound = { subscriberId: string; + includeInactiveChannels?: boolean | undefined; }; /** @internal */ @@ -31,6 +47,7 @@ export const SubscribersControllerListSubscriberPreferencesRequest$outboundSchem SubscribersControllerListSubscriberPreferencesRequest > = z.object({ subscriberId: z.string(), + includeInactiveChannels: z.boolean().optional(), }); /** @@ -48,3 +65,114 @@ export namespace SubscribersControllerListSubscriberPreferencesRequest$ { export type Outbound = SubscribersControllerListSubscriberPreferencesRequest$Outbound; } + +export function subscribersControllerListSubscriberPreferencesRequestToJSON( + subscribersControllerListSubscriberPreferencesRequest: + SubscribersControllerListSubscriberPreferencesRequest, +): string { + return JSON.stringify( + SubscribersControllerListSubscriberPreferencesRequest$outboundSchema.parse( + subscribersControllerListSubscriberPreferencesRequest, + ), + ); +} + +export function subscribersControllerListSubscriberPreferencesRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscriberPreferencesRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscriberPreferencesRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscriberPreferencesRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerListSubscriberPreferencesResponse$inboundSchema: + z.ZodType< + SubscribersControllerListSubscriberPreferencesResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array( + components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerListSubscriberPreferencesResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const SubscribersControllerListSubscriberPreferencesResponse$outboundSchema: + z.ZodType< + SubscribersControllerListSubscriberPreferencesResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerListSubscriberPreferencesResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array( + components.UpdateSubscriberPreferenceResponseDto$outboundSchema, + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerListSubscriberPreferencesResponse$ { + /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerListSubscriberPreferencesResponse$inboundSchema; + /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerListSubscriberPreferencesResponse$outboundSchema; + /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerListSubscriberPreferencesResponse$Outbound; +} + +export function subscribersControllerListSubscriberPreferencesResponseToJSON( + subscribersControllerListSubscriberPreferencesResponse: + SubscribersControllerListSubscriberPreferencesResponse, +): string { + return JSON.stringify( + SubscribersControllerListSubscriberPreferencesResponse$outboundSchema.parse( + subscribersControllerListSubscriberPreferencesResponse, + ), + ); +} + +export function subscribersControllerListSubscriberPreferencesResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscriberPreferencesResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscriberPreferencesResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerListSubscriberPreferencesResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerlistsubscribers.ts b/src/models/operations/subscriberscontrollerlistsubscribers.ts index f4118442..0da6264b 100644 --- a/src/models/operations/subscriberscontrollerlistsubscribers.ts +++ b/src/models/operations/subscriberscontrollerlistsubscribers.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerListSubscribersRequest = { page?: number | undefined; @@ -12,22 +15,23 @@ export type SubscribersControllerListSubscribersRequest = { }; export type SubscribersControllerListSubscribersResponseBody = { - data: Array; - /** - * Does the list have more items to fetch - */ - hasMore: boolean; /** * The current page of the paginated response */ page: number; + /** + * Does the list have more items to fetch + */ + hasMore: boolean; /** * Number of items on each page */ pageSize: number; + data: Array; }; export type SubscribersControllerListSubscribersResponse = { + headers: { [k: string]: Array }; result: SubscribersControllerListSubscribersResponseBody; }; @@ -74,6 +78,33 @@ export namespace SubscribersControllerListSubscribersRequest$ { export type Outbound = SubscribersControllerListSubscribersRequest$Outbound; } +export function subscribersControllerListSubscribersRequestToJSON( + subscribersControllerListSubscribersRequest: + SubscribersControllerListSubscribersRequest, +): string { + return JSON.stringify( + SubscribersControllerListSubscribersRequest$outboundSchema.parse( + subscribersControllerListSubscribersRequest, + ), + ); +} + +export function subscribersControllerListSubscribersRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscribersRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscribersRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscribersRequest' from JSON`, + ); +} + /** @internal */ export const SubscribersControllerListSubscribersResponseBody$inboundSchema: z.ZodType< @@ -81,18 +112,18 @@ export const SubscribersControllerListSubscribersResponseBody$inboundSchema: z.ZodTypeDef, unknown > = z.object({ - data: z.array(components.SubscriberResponseDto$inboundSchema), - hasMore: z.boolean(), page: z.number(), + hasMore: z.boolean(), pageSize: z.number(), + data: z.array(components.SubscriberResponseDto$inboundSchema), }); /** @internal */ export type SubscribersControllerListSubscribersResponseBody$Outbound = { - data: Array; - hasMore: boolean; page: number; + hasMore: boolean; pageSize: number; + data: Array; }; /** @internal */ @@ -102,10 +133,10 @@ export const SubscribersControllerListSubscribersResponseBody$outboundSchema: z.ZodTypeDef, SubscribersControllerListSubscribersResponseBody > = z.object({ - data: z.array(components.SubscriberResponseDto$outboundSchema), - hasMore: z.boolean(), page: z.number(), + hasMore: z.boolean(), pageSize: z.number(), + data: z.array(components.SubscriberResponseDto$outboundSchema), }); /** @@ -124,6 +155,33 @@ export namespace SubscribersControllerListSubscribersResponseBody$ { SubscribersControllerListSubscribersResponseBody$Outbound; } +export function subscribersControllerListSubscribersResponseBodyToJSON( + subscribersControllerListSubscribersResponseBody: + SubscribersControllerListSubscribersResponseBody, +): string { + return JSON.stringify( + SubscribersControllerListSubscribersResponseBody$outboundSchema.parse( + subscribersControllerListSubscribersResponseBody, + ), + ); +} + +export function subscribersControllerListSubscribersResponseBodyFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscribersResponseBody, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscribersResponseBody$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscribersResponseBody' from JSON`, + ); +} + /** @internal */ export const SubscribersControllerListSubscribersResponse$inboundSchema: z.ZodType< @@ -131,17 +189,20 @@ export const SubscribersControllerListSubscribersResponse$inboundSchema: z.ZodTypeDef, unknown > = z.object({ + Headers: z.record(z.array(z.string())), Result: z.lazy(() => SubscribersControllerListSubscribersResponseBody$inboundSchema ), }).transform((v) => { return remap$(v, { + "Headers": "headers", "Result": "result", }); }); /** @internal */ export type SubscribersControllerListSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; Result: SubscribersControllerListSubscribersResponseBody$Outbound; }; @@ -152,11 +213,13 @@ export const SubscribersControllerListSubscribersResponse$outboundSchema: z.ZodTypeDef, SubscribersControllerListSubscribersResponse > = z.object({ + headers: z.record(z.array(z.string())), result: z.lazy(() => SubscribersControllerListSubscribersResponseBody$outboundSchema ), }).transform((v) => { return remap$(v, { + headers: "Headers", result: "Result", }); }); @@ -175,3 +238,30 @@ export namespace SubscribersControllerListSubscribersResponse$ { /** @deprecated use `SubscribersControllerListSubscribersResponse$Outbound` instead. */ export type Outbound = SubscribersControllerListSubscribersResponse$Outbound; } + +export function subscribersControllerListSubscribersResponseToJSON( + subscribersControllerListSubscribersResponse: + SubscribersControllerListSubscribersResponse, +): string { + return JSON.stringify( + SubscribersControllerListSubscribersResponse$outboundSchema.parse( + subscribersControllerListSubscribersResponse, + ), + ); +} + +export function subscribersControllerListSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscribersResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscribersResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermarkactionasseen.ts b/src/models/operations/subscriberscontrollermarkactionasseen.ts index 34ddca26..92e6a715 100644 --- a/src/models/operations/subscriberscontrollermarkactionasseen.ts +++ b/src/models/operations/subscriberscontrollermarkactionasseen.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerMarkActionAsSeenRequest = { messageId: string; @@ -13,6 +16,11 @@ export type SubscribersControllerMarkActionAsSeenRequest = { markMessageActionAsSeenDto: components.MarkMessageActionAsSeenDto; }; +export type SubscribersControllerMarkActionAsSeenResponse = { + headers: { [k: string]: Array }; + result: components.MessageResponseDto; +}; + /** @internal */ export const SubscribersControllerMarkActionAsSeenRequest$inboundSchema: z.ZodType< @@ -71,3 +79,110 @@ export namespace SubscribersControllerMarkActionAsSeenRequest$ { /** @deprecated use `SubscribersControllerMarkActionAsSeenRequest$Outbound` instead. */ export type Outbound = SubscribersControllerMarkActionAsSeenRequest$Outbound; } + +export function subscribersControllerMarkActionAsSeenRequestToJSON( + subscribersControllerMarkActionAsSeenRequest: + SubscribersControllerMarkActionAsSeenRequest, +): string { + return JSON.stringify( + SubscribersControllerMarkActionAsSeenRequest$outboundSchema.parse( + subscribersControllerMarkActionAsSeenRequest, + ), + ); +} + +export function subscribersControllerMarkActionAsSeenRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkActionAsSeenRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkActionAsSeenRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkActionAsSeenRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerMarkActionAsSeenResponse$inboundSchema: + z.ZodType< + SubscribersControllerMarkActionAsSeenResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.MessageResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkActionAsSeenResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.MessageResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerMarkActionAsSeenResponse$outboundSchema: + z.ZodType< + SubscribersControllerMarkActionAsSeenResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkActionAsSeenResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.MessageResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkActionAsSeenResponse$ { + /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkActionAsSeenResponse$inboundSchema; + /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkActionAsSeenResponse$outboundSchema; + /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerMarkActionAsSeenResponse$Outbound; +} + +export function subscribersControllerMarkActionAsSeenResponseToJSON( + subscribersControllerMarkActionAsSeenResponse: + SubscribersControllerMarkActionAsSeenResponse, +): string { + return JSON.stringify( + SubscribersControllerMarkActionAsSeenResponse$outboundSchema.parse( + subscribersControllerMarkActionAsSeenResponse, + ), + ); +} + +export function subscribersControllerMarkActionAsSeenResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkActionAsSeenResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkActionAsSeenResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkActionAsSeenResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermarkallunreadasread.ts b/src/models/operations/subscriberscontrollermarkallunreadasread.ts index b6d74664..8207c829 100644 --- a/src/models/operations/subscriberscontrollermarkallunreadasread.ts +++ b/src/models/operations/subscriberscontrollermarkallunreadasread.ts @@ -4,13 +4,21 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerMarkAllUnreadAsReadRequest = { subscriberId: string; markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto; }; +export type SubscribersControllerMarkAllUnreadAsReadResponse = { + headers: { [k: string]: Array }; + result: number; +}; + /** @internal */ export const SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema: z.ZodType< @@ -64,3 +72,111 @@ export namespace SubscribersControllerMarkAllUnreadAsReadRequest$ { export type Outbound = SubscribersControllerMarkAllUnreadAsReadRequest$Outbound; } + +export function subscribersControllerMarkAllUnreadAsReadRequestToJSON( + subscribersControllerMarkAllUnreadAsReadRequest: + SubscribersControllerMarkAllUnreadAsReadRequest, +): string { + return JSON.stringify( + SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema.parse( + subscribersControllerMarkAllUnreadAsReadRequest, + ), + ); +} + +export function subscribersControllerMarkAllUnreadAsReadRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkAllUnreadAsReadRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkAllUnreadAsReadRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema: + z.ZodType< + SubscribersControllerMarkAllUnreadAsReadResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.number(), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkAllUnreadAsReadResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: number; +}; + +/** @internal */ +export const SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema: + z.ZodType< + SubscribersControllerMarkAllUnreadAsReadResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkAllUnreadAsReadResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.number(), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkAllUnreadAsReadResponse$ { + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema; + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema; + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerMarkAllUnreadAsReadResponse$Outbound; +} + +export function subscribersControllerMarkAllUnreadAsReadResponseToJSON( + subscribersControllerMarkAllUnreadAsReadResponse: + SubscribersControllerMarkAllUnreadAsReadResponse, +): string { + return JSON.stringify( + SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema.parse( + subscribersControllerMarkAllUnreadAsReadResponse, + ), + ); +} + +export function subscribersControllerMarkAllUnreadAsReadResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkAllUnreadAsReadResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkAllUnreadAsReadResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermarkmessagesas.ts b/src/models/operations/subscriberscontrollermarkmessagesas.ts index 150f17f3..7b27932e 100644 --- a/src/models/operations/subscriberscontrollermarkmessagesas.ts +++ b/src/models/operations/subscriberscontrollermarkmessagesas.ts @@ -4,13 +4,21 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerMarkMessagesAsRequest = { subscriberId: string; messageMarkAsRequestDto: components.MessageMarkAsRequestDto; }; +export type SubscribersControllerMarkMessagesAsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + /** @internal */ export const SubscribersControllerMarkMessagesAsRequest$inboundSchema: z.ZodType = @@ -58,3 +66,110 @@ export namespace SubscribersControllerMarkMessagesAsRequest$ { /** @deprecated use `SubscribersControllerMarkMessagesAsRequest$Outbound` instead. */ export type Outbound = SubscribersControllerMarkMessagesAsRequest$Outbound; } + +export function subscribersControllerMarkMessagesAsRequestToJSON( + subscribersControllerMarkMessagesAsRequest: + SubscribersControllerMarkMessagesAsRequest, +): string { + return JSON.stringify( + SubscribersControllerMarkMessagesAsRequest$outboundSchema.parse( + subscribersControllerMarkMessagesAsRequest, + ), + ); +} + +export function subscribersControllerMarkMessagesAsRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkMessagesAsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkMessagesAsRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkMessagesAsRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerMarkMessagesAsResponse$inboundSchema: + z.ZodType< + SubscribersControllerMarkMessagesAsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.MessageEntity$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkMessagesAsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const SubscribersControllerMarkMessagesAsResponse$outboundSchema: + z.ZodType< + SubscribersControllerMarkMessagesAsResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkMessagesAsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.MessageEntity$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkMessagesAsResponse$ { + /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkMessagesAsResponse$inboundSchema; + /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkMessagesAsResponse$outboundSchema; + /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerMarkMessagesAsResponse$Outbound; +} + +export function subscribersControllerMarkMessagesAsResponseToJSON( + subscribersControllerMarkMessagesAsResponse: + SubscribersControllerMarkMessagesAsResponse, +): string { + return JSON.stringify( + SubscribersControllerMarkMessagesAsResponse$outboundSchema.parse( + subscribersControllerMarkMessagesAsResponse, + ), + ); +} + +export function subscribersControllerMarkMessagesAsResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkMessagesAsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkMessagesAsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkMessagesAsResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts b/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts index a2b29050..86746e6a 100644 --- a/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts +++ b/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerModifySubscriberChannelRequest = { subscriberId: string; @@ -12,6 +15,11 @@ export type SubscribersControllerModifySubscriberChannelRequest = { components.UpdateSubscriberChannelRequestDto; }; +export type SubscribersControllerModifySubscriberChannelResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + /** @internal */ export const SubscribersControllerModifySubscriberChannelRequest$inboundSchema: z.ZodType< @@ -66,3 +74,111 @@ export namespace SubscribersControllerModifySubscriberChannelRequest$ { export type Outbound = SubscribersControllerModifySubscriberChannelRequest$Outbound; } + +export function subscribersControllerModifySubscriberChannelRequestToJSON( + subscribersControllerModifySubscriberChannelRequest: + SubscribersControllerModifySubscriberChannelRequest, +): string { + return JSON.stringify( + SubscribersControllerModifySubscriberChannelRequest$outboundSchema.parse( + subscribersControllerModifySubscriberChannelRequest, + ), + ); +} + +export function subscribersControllerModifySubscriberChannelRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerModifySubscriberChannelRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerModifySubscriberChannelRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerModifySubscriberChannelRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerModifySubscriberChannelResponse$inboundSchema: + z.ZodType< + SubscribersControllerModifySubscriberChannelResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerModifySubscriberChannelResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerModifySubscriberChannelResponse$outboundSchema: + z.ZodType< + SubscribersControllerModifySubscriberChannelResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerModifySubscriberChannelResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerModifySubscriberChannelResponse$ { + /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerModifySubscriberChannelResponse$inboundSchema; + /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerModifySubscriberChannelResponse$outboundSchema; + /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerModifySubscriberChannelResponse$Outbound; +} + +export function subscribersControllerModifySubscriberChannelResponseToJSON( + subscribersControllerModifySubscriberChannelResponse: + SubscribersControllerModifySubscriberChannelResponse, +): string { + return JSON.stringify( + SubscribersControllerModifySubscriberChannelResponse$outboundSchema.parse( + subscribersControllerModifySubscriberChannelResponse, + ), + ); +} + +export function subscribersControllerModifySubscriberChannelResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerModifySubscriberChannelResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerModifySubscriberChannelResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerModifySubscriberChannelResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerremovesubscriber.ts b/src/models/operations/subscriberscontrollerremovesubscriber.ts index f5e9a0f4..13a1fa1c 100644 --- a/src/models/operations/subscriberscontrollerremovesubscriber.ts +++ b/src/models/operations/subscriberscontrollerremovesubscriber.ts @@ -3,11 +3,21 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerRemoveSubscriberRequest = { subscriberId: string; }; +export type SubscribersControllerRemoveSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.DeleteSubscriberResponseDto; +}; + /** @internal */ export const SubscribersControllerRemoveSubscriberRequest$inboundSchema: z.ZodType< @@ -47,3 +57,110 @@ export namespace SubscribersControllerRemoveSubscriberRequest$ { /** @deprecated use `SubscribersControllerRemoveSubscriberRequest$Outbound` instead. */ export type Outbound = SubscribersControllerRemoveSubscriberRequest$Outbound; } + +export function subscribersControllerRemoveSubscriberRequestToJSON( + subscribersControllerRemoveSubscriberRequest: + SubscribersControllerRemoveSubscriberRequest, +): string { + return JSON.stringify( + SubscribersControllerRemoveSubscriberRequest$outboundSchema.parse( + subscribersControllerRemoveSubscriberRequest, + ), + ); +} + +export function subscribersControllerRemoveSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerRemoveSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerRemoveSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerRemoveSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerRemoveSubscriberResponse$inboundSchema: + z.ZodType< + SubscribersControllerRemoveSubscriberResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DeleteSubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerRemoveSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.DeleteSubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerRemoveSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerRemoveSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerRemoveSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.DeleteSubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerRemoveSubscriberResponse$ { + /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerRemoveSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerRemoveSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerRemoveSubscriberResponse$Outbound; +} + +export function subscribersControllerRemoveSubscriberResponseToJSON( + subscribersControllerRemoveSubscriberResponse: + SubscribersControllerRemoveSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerRemoveSubscriberResponse$outboundSchema.parse( + subscribersControllerRemoveSubscriberResponse, + ), + ); +} + +export function subscribersControllerRemoveSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerRemoveSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerRemoveSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerRemoveSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriber.ts b/src/models/operations/subscriberscontrollerupdatesubscriber.ts index 55db5a72..204dc193 100644 --- a/src/models/operations/subscriberscontrollerupdatesubscriber.ts +++ b/src/models/operations/subscriberscontrollerupdatesubscriber.ts @@ -4,13 +4,21 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerUpdateSubscriberRequest = { subscriberId: string; updateSubscriberRequestDto: components.UpdateSubscriberRequestDto; }; +export type SubscribersControllerUpdateSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + /** @internal */ export const SubscribersControllerUpdateSubscriberRequest$inboundSchema: z.ZodType< @@ -63,3 +71,110 @@ export namespace SubscribersControllerUpdateSubscriberRequest$ { /** @deprecated use `SubscribersControllerUpdateSubscriberRequest$Outbound` instead. */ export type Outbound = SubscribersControllerUpdateSubscriberRequest$Outbound; } + +export function subscribersControllerUpdateSubscriberRequestToJSON( + subscribersControllerUpdateSubscriberRequest: + SubscribersControllerUpdateSubscriberRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerUpdateSubscriberResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberResponseToJSON( + subscribersControllerUpdateSubscriberResponse: + SubscribersControllerUpdateSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberResponse$outboundSchema.parse( + subscribersControllerUpdateSubscriberResponse, + ), + ); +} + +export function subscribersControllerUpdateSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts b/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts index 0bb4df05..df9e40d7 100644 --- a/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts +++ b/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerUpdateSubscriberChannelRequest = { subscriberId: string; @@ -12,6 +15,11 @@ export type SubscribersControllerUpdateSubscriberChannelRequest = { components.UpdateSubscriberChannelRequestDto; }; +export type SubscribersControllerUpdateSubscriberChannelResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + /** @internal */ export const SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema: z.ZodType< @@ -66,3 +74,111 @@ export namespace SubscribersControllerUpdateSubscriberChannelRequest$ { export type Outbound = SubscribersControllerUpdateSubscriberChannelRequest$Outbound; } + +export function subscribersControllerUpdateSubscriberChannelRequestToJSON( + subscribersControllerUpdateSubscriberChannelRequest: + SubscribersControllerUpdateSubscriberChannelRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberChannelRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberChannelRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberChannelRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberChannelRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberChannelResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberChannelResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberChannelResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberChannelResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberChannelResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberChannelResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberChannelResponseToJSON( + subscribersControllerUpdateSubscriberChannelResponse: + SubscribersControllerUpdateSubscriberChannelResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema.parse( + subscribersControllerUpdateSubscriberChannelResponse, + ), + ); +} + +export function subscribersControllerUpdateSubscriberChannelResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberChannelResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberChannelResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts b/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts index bb76cda5..7499d408 100644 --- a/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts +++ b/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { subscriberId: string; @@ -12,6 +15,11 @@ export type SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { components.UpdateSubscriberGlobalPreferencesRequestDto; }; +export type SubscribersControllerUpdateSubscriberGlobalPreferencesResponse = { + headers: { [k: string]: Array }; + result: components.UpdateSubscriberPreferenceResponseDto; +}; + /** @internal */ export const SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema: z.ZodType< @@ -69,3 +77,108 @@ export namespace SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$ export type Outbound = SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound; } + +export function subscribersControllerUpdateSubscriberGlobalPreferencesRequestToJSON( + subscribersControllerUpdateSubscriberGlobalPreferencesRequest: + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema + .parse(subscribersControllerUpdateSubscriberGlobalPreferencesRequest), + ); +} + +export function subscribersControllerUpdateSubscriberGlobalPreferencesRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberGlobalPreferencesRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.UpdateSubscriberPreferenceResponseDto$Outbound; + }; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.UpdateSubscriberPreferenceResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberGlobalPreferencesResponseToJSON( + subscribersControllerUpdateSubscriberGlobalPreferencesResponse: + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema + .parse(subscribersControllerUpdateSubscriberGlobalPreferencesResponse), + ); +} + +export function subscribersControllerUpdateSubscriberGlobalPreferencesResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberGlobalPreferencesResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts b/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts index b5e2c970..fcd33653 100644 --- a/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts +++ b/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerUpdateSubscriberOnlineFlagRequest = { subscriberId: string; @@ -12,6 +15,11 @@ export type SubscribersControllerUpdateSubscriberOnlineFlagRequest = { components.UpdateSubscriberOnlineFlagRequestDto; }; +export type SubscribersControllerUpdateSubscriberOnlineFlagResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + /** @internal */ export const SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema: z.ZodType< @@ -68,3 +76,108 @@ export namespace SubscribersControllerUpdateSubscriberOnlineFlagRequest$ { export type Outbound = SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound; } + +export function subscribersControllerUpdateSubscriberOnlineFlagRequestToJSON( + subscribersControllerUpdateSubscriberOnlineFlagRequest: + SubscribersControllerUpdateSubscriberOnlineFlagRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberOnlineFlagRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberOnlineFlagRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberOnlineFlagRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberOnlineFlagRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberOnlineFlagResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberOnlineFlagResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberOnlineFlagResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberOnlineFlagResponseToJSON( + subscribersControllerUpdateSubscriberOnlineFlagResponse: + SubscribersControllerUpdateSubscriberOnlineFlagResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema + .parse(subscribersControllerUpdateSubscriberOnlineFlagResponse), + ); +} + +export function subscribersControllerUpdateSubscriberOnlineFlagResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberOnlineFlagResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberOnlineFlagResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts b/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts index d38173ac..8e1c86cf 100644 --- a/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts +++ b/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type SubscribersControllerUpdateSubscriberPreferenceRequest = { subscriberId: string; @@ -13,6 +16,11 @@ export type SubscribersControllerUpdateSubscriberPreferenceRequest = { components.UpdateSubscriberPreferenceRequestDto; }; +export type SubscribersControllerUpdateSubscriberPreferenceResponse = { + headers: { [k: string]: Array }; + result: components.UpdateSubscriberPreferenceResponseDto; +}; + /** @internal */ export const SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema: z.ZodType< @@ -72,3 +80,108 @@ export namespace SubscribersControllerUpdateSubscriberPreferenceRequest$ { export type Outbound = SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound; } + +export function subscribersControllerUpdateSubscriberPreferenceRequestToJSON( + subscribersControllerUpdateSubscriberPreferenceRequest: + SubscribersControllerUpdateSubscriberPreferenceRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberPreferenceRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberPreferenceRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberPreferenceRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberPreferenceRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberPreferenceResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.UpdateSubscriberPreferenceResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberPreferenceResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.UpdateSubscriberPreferenceResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberPreferenceResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberPreferenceResponseToJSON( + subscribersControllerUpdateSubscriberPreferenceResponse: + SubscribersControllerUpdateSubscriberPreferenceResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema + .parse(subscribersControllerUpdateSubscriberPreferenceResponse), + ); +} + +export function subscribersControllerUpdateSubscriberPreferenceResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberPreferenceResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberPreferenceResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrolleraddsubscribers.ts b/src/models/operations/topicscontrolleraddsubscribers.ts index 56df0864..080fc60a 100644 --- a/src/models/operations/topicscontrolleraddsubscribers.ts +++ b/src/models/operations/topicscontrolleraddsubscribers.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicsControllerAddSubscribersRequest = { /** @@ -14,6 +17,10 @@ export type TopicsControllerAddSubscribersRequest = { addSubscribersRequestDto: components.AddSubscribersRequestDto; }; +export type TopicsControllerAddSubscribersResponse = { + headers: { [k: string]: Array }; +}; + /** @internal */ export const TopicsControllerAddSubscribersRequest$inboundSchema: z.ZodType< TopicsControllerAddSubscribersRequest, @@ -62,3 +69,92 @@ export namespace TopicsControllerAddSubscribersRequest$ { /** @deprecated use `TopicsControllerAddSubscribersRequest$Outbound` instead. */ export type Outbound = TopicsControllerAddSubscribersRequest$Outbound; } + +export function topicsControllerAddSubscribersRequestToJSON( + topicsControllerAddSubscribersRequest: TopicsControllerAddSubscribersRequest, +): string { + return JSON.stringify( + TopicsControllerAddSubscribersRequest$outboundSchema.parse( + topicsControllerAddSubscribersRequest, + ), + ); +} + +export function topicsControllerAddSubscribersRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerAddSubscribersRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerAddSubscribersRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerAddSubscribersResponse$inboundSchema: z.ZodType< + TopicsControllerAddSubscribersResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); +}); + +/** @internal */ +export type TopicsControllerAddSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerAddSubscribersResponse$outboundSchema: z.ZodType< + TopicsControllerAddSubscribersResponse$Outbound, + z.ZodTypeDef, + TopicsControllerAddSubscribersResponse +> = z.object({ + headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + headers: "Headers", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerAddSubscribersResponse$ { + /** @deprecated use `TopicsControllerAddSubscribersResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerAddSubscribersResponse$inboundSchema; + /** @deprecated use `TopicsControllerAddSubscribersResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerAddSubscribersResponse$outboundSchema; + /** @deprecated use `TopicsControllerAddSubscribersResponse$Outbound` instead. */ + export type Outbound = TopicsControllerAddSubscribersResponse$Outbound; +} + +export function topicsControllerAddSubscribersResponseToJSON( + topicsControllerAddSubscribersResponse: + TopicsControllerAddSubscribersResponse, +): string { + return JSON.stringify( + TopicsControllerAddSubscribersResponse$outboundSchema.parse( + topicsControllerAddSubscribersResponse, + ), + ); +} + +export function topicsControllerAddSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerAddSubscribersResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerAddSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerdeletetopic.ts b/src/models/operations/topicscontrollerdeletetopic.ts index 33d96424..7e2f2e0a 100644 --- a/src/models/operations/topicscontrollerdeletetopic.ts +++ b/src/models/operations/topicscontrollerdeletetopic.ts @@ -3,6 +3,10 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicsControllerDeleteTopicRequest = { /** @@ -11,6 +15,10 @@ export type TopicsControllerDeleteTopicRequest = { topicKey: string; }; +export type TopicsControllerDeleteTopicResponse = { + headers: { [k: string]: Array }; +}; + /** @internal */ export const TopicsControllerDeleteTopicRequest$inboundSchema: z.ZodType< TopicsControllerDeleteTopicRequest, @@ -47,3 +55,91 @@ export namespace TopicsControllerDeleteTopicRequest$ { /** @deprecated use `TopicsControllerDeleteTopicRequest$Outbound` instead. */ export type Outbound = TopicsControllerDeleteTopicRequest$Outbound; } + +export function topicsControllerDeleteTopicRequestToJSON( + topicsControllerDeleteTopicRequest: TopicsControllerDeleteTopicRequest, +): string { + return JSON.stringify( + TopicsControllerDeleteTopicRequest$outboundSchema.parse( + topicsControllerDeleteTopicRequest, + ), + ); +} + +export function topicsControllerDeleteTopicRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerDeleteTopicRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerDeleteTopicRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerDeleteTopicResponse$inboundSchema: z.ZodType< + TopicsControllerDeleteTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); +}); + +/** @internal */ +export type TopicsControllerDeleteTopicResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerDeleteTopicResponse$outboundSchema: z.ZodType< + TopicsControllerDeleteTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerDeleteTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + headers: "Headers", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerDeleteTopicResponse$ { + /** @deprecated use `TopicsControllerDeleteTopicResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerDeleteTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerDeleteTopicResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerDeleteTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerDeleteTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerDeleteTopicResponse$Outbound; +} + +export function topicsControllerDeleteTopicResponseToJSON( + topicsControllerDeleteTopicResponse: TopicsControllerDeleteTopicResponse, +): string { + return JSON.stringify( + TopicsControllerDeleteTopicResponse$outboundSchema.parse( + topicsControllerDeleteTopicResponse, + ), + ); +} + +export function topicsControllerDeleteTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerDeleteTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerDeleteTopicResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollergettopic.ts b/src/models/operations/topicscontrollergettopic.ts index 370d4066..017b4120 100644 --- a/src/models/operations/topicscontrollergettopic.ts +++ b/src/models/operations/topicscontrollergettopic.ts @@ -3,6 +3,11 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicsControllerGetTopicRequest = { /** @@ -11,6 +16,11 @@ export type TopicsControllerGetTopicRequest = { topicKey: string; }; +export type TopicsControllerGetTopicResponse = { + headers: { [k: string]: Array }; + result: components.GetTopicResponseDto; +}; + /** @internal */ export const TopicsControllerGetTopicRequest$inboundSchema: z.ZodType< TopicsControllerGetTopicRequest, @@ -46,3 +56,92 @@ export namespace TopicsControllerGetTopicRequest$ { /** @deprecated use `TopicsControllerGetTopicRequest$Outbound` instead. */ export type Outbound = TopicsControllerGetTopicRequest$Outbound; } + +export function topicsControllerGetTopicRequestToJSON( + topicsControllerGetTopicRequest: TopicsControllerGetTopicRequest, +): string { + return JSON.stringify( + TopicsControllerGetTopicRequest$outboundSchema.parse( + topicsControllerGetTopicRequest, + ), + ); +} + +export function topicsControllerGetTopicRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicsControllerGetTopicRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerGetTopicRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerGetTopicResponse$inboundSchema: z.ZodType< + TopicsControllerGetTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.GetTopicResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerGetTopicResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.GetTopicResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerGetTopicResponse$outboundSchema: z.ZodType< + TopicsControllerGetTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerGetTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.GetTopicResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerGetTopicResponse$ { + /** @deprecated use `TopicsControllerGetTopicResponse$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerGetTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerGetTopicResponse$outboundSchema` instead. */ + export const outboundSchema = TopicsControllerGetTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerGetTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerGetTopicResponse$Outbound; +} + +export function topicsControllerGetTopicResponseToJSON( + topicsControllerGetTopicResponse: TopicsControllerGetTopicResponse, +): string { + return JSON.stringify( + TopicsControllerGetTopicResponse$outboundSchema.parse( + topicsControllerGetTopicResponse, + ), + ); +} + +export function topicsControllerGetTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicsControllerGetTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerGetTopicResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollergettopicsubscriber.ts b/src/models/operations/topicscontrollergettopicsubscriber.ts index e70132d9..d9fd3fac 100644 --- a/src/models/operations/topicscontrollergettopicsubscriber.ts +++ b/src/models/operations/topicscontrollergettopicsubscriber.ts @@ -3,6 +3,11 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicsControllerGetTopicSubscriberRequest = { /** @@ -15,6 +20,11 @@ export type TopicsControllerGetTopicSubscriberRequest = { topicKey: string; }; +export type TopicsControllerGetTopicSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.TopicSubscriberDto; +}; + /** @internal */ export const TopicsControllerGetTopicSubscriberRequest$inboundSchema: z.ZodType< TopicsControllerGetTopicSubscriberRequest, @@ -56,3 +66,107 @@ export namespace TopicsControllerGetTopicSubscriberRequest$ { /** @deprecated use `TopicsControllerGetTopicSubscriberRequest$Outbound` instead. */ export type Outbound = TopicsControllerGetTopicSubscriberRequest$Outbound; } + +export function topicsControllerGetTopicSubscriberRequestToJSON( + topicsControllerGetTopicSubscriberRequest: + TopicsControllerGetTopicSubscriberRequest, +): string { + return JSON.stringify( + TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( + topicsControllerGetTopicSubscriberRequest, + ), + ); +} + +export function topicsControllerGetTopicSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerGetTopicSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerGetTopicSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerGetTopicSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerGetTopicSubscriberResponse$inboundSchema: + z.ZodType = + z.object({ + Headers: z.record(z.array(z.string())), + Result: components.TopicSubscriberDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type TopicsControllerGetTopicSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.TopicSubscriberDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerGetTopicSubscriberResponse$outboundSchema: + z.ZodType< + TopicsControllerGetTopicSubscriberResponse$Outbound, + z.ZodTypeDef, + TopicsControllerGetTopicSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.TopicSubscriberDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerGetTopicSubscriberResponse$ { + /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerGetTopicSubscriberResponse$inboundSchema; + /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerGetTopicSubscriberResponse$outboundSchema; + /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$Outbound` instead. */ + export type Outbound = TopicsControllerGetTopicSubscriberResponse$Outbound; +} + +export function topicsControllerGetTopicSubscriberResponseToJSON( + topicsControllerGetTopicSubscriberResponse: + TopicsControllerGetTopicSubscriberResponse, +): string { + return JSON.stringify( + TopicsControllerGetTopicSubscriberResponse$outboundSchema.parse( + topicsControllerGetTopicSubscriberResponse, + ), + ); +} + +export function topicsControllerGetTopicSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerGetTopicSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerGetTopicSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerGetTopicSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerlisttopics.ts b/src/models/operations/topicscontrollerlisttopics.ts index 935077ad..f98fe53f 100644 --- a/src/models/operations/topicscontrollerlisttopics.ts +++ b/src/models/operations/topicscontrollerlisttopics.ts @@ -3,6 +3,11 @@ */ import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicsControllerListTopicsRequest = { /** @@ -19,6 +24,11 @@ export type TopicsControllerListTopicsRequest = { key?: string | undefined; }; +export type TopicsControllerListTopicsResponse = { + headers: { [k: string]: Array }; + result: components.FilterTopicsResponseDto; +}; + /** @internal */ export const TopicsControllerListTopicsRequest$inboundSchema: z.ZodType< TopicsControllerListTopicsRequest, @@ -61,3 +71,94 @@ export namespace TopicsControllerListTopicsRequest$ { /** @deprecated use `TopicsControllerListTopicsRequest$Outbound` instead. */ export type Outbound = TopicsControllerListTopicsRequest$Outbound; } + +export function topicsControllerListTopicsRequestToJSON( + topicsControllerListTopicsRequest: TopicsControllerListTopicsRequest, +): string { + return JSON.stringify( + TopicsControllerListTopicsRequest$outboundSchema.parse( + topicsControllerListTopicsRequest, + ), + ); +} + +export function topicsControllerListTopicsRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicsControllerListTopicsRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerListTopicsRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerListTopicsResponse$inboundSchema: z.ZodType< + TopicsControllerListTopicsResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.FilterTopicsResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerListTopicsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.FilterTopicsResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerListTopicsResponse$outboundSchema: z.ZodType< + TopicsControllerListTopicsResponse$Outbound, + z.ZodTypeDef, + TopicsControllerListTopicsResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.FilterTopicsResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerListTopicsResponse$ { + /** @deprecated use `TopicsControllerListTopicsResponse$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerListTopicsResponse$inboundSchema; + /** @deprecated use `TopicsControllerListTopicsResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerListTopicsResponse$outboundSchema; + /** @deprecated use `TopicsControllerListTopicsResponse$Outbound` instead. */ + export type Outbound = TopicsControllerListTopicsResponse$Outbound; +} + +export function topicsControllerListTopicsResponseToJSON( + topicsControllerListTopicsResponse: TopicsControllerListTopicsResponse, +): string { + return JSON.stringify( + TopicsControllerListTopicsResponse$outboundSchema.parse( + topicsControllerListTopicsResponse, + ), + ); +} + +export function topicsControllerListTopicsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerListTopicsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerListTopicsResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerremovesubscribers.ts b/src/models/operations/topicscontrollerremovesubscribers.ts index c5f8df15..8d84aadf 100644 --- a/src/models/operations/topicscontrollerremovesubscribers.ts +++ b/src/models/operations/topicscontrollerremovesubscribers.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicsControllerRemoveSubscribersRequest = { /** @@ -14,6 +17,10 @@ export type TopicsControllerRemoveSubscribersRequest = { removeSubscribersRequestDto: components.RemoveSubscribersRequestDto; }; +export type TopicsControllerRemoveSubscribersResponse = { + headers: { [k: string]: Array }; +}; + /** @internal */ export const TopicsControllerRemoveSubscribersRequest$inboundSchema: z.ZodType< TopicsControllerRemoveSubscribersRequest, @@ -64,3 +71,104 @@ export namespace TopicsControllerRemoveSubscribersRequest$ { /** @deprecated use `TopicsControllerRemoveSubscribersRequest$Outbound` instead. */ export type Outbound = TopicsControllerRemoveSubscribersRequest$Outbound; } + +export function topicsControllerRemoveSubscribersRequestToJSON( + topicsControllerRemoveSubscribersRequest: + TopicsControllerRemoveSubscribersRequest, +): string { + return JSON.stringify( + TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( + topicsControllerRemoveSubscribersRequest, + ), + ); +} + +export function topicsControllerRemoveSubscribersRequestFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerRemoveSubscribersRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerRemoveSubscribersRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerRemoveSubscribersRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerRemoveSubscribersResponse$inboundSchema: z.ZodType< + TopicsControllerRemoveSubscribersResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); +}); + +/** @internal */ +export type TopicsControllerRemoveSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerRemoveSubscribersResponse$outboundSchema: + z.ZodType< + TopicsControllerRemoveSubscribersResponse$Outbound, + z.ZodTypeDef, + TopicsControllerRemoveSubscribersResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerRemoveSubscribersResponse$ { + /** @deprecated use `TopicsControllerRemoveSubscribersResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerRemoveSubscribersResponse$inboundSchema; + /** @deprecated use `TopicsControllerRemoveSubscribersResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerRemoveSubscribersResponse$outboundSchema; + /** @deprecated use `TopicsControllerRemoveSubscribersResponse$Outbound` instead. */ + export type Outbound = TopicsControllerRemoveSubscribersResponse$Outbound; +} + +export function topicsControllerRemoveSubscribersResponseToJSON( + topicsControllerRemoveSubscribersResponse: + TopicsControllerRemoveSubscribersResponse, +): string { + return JSON.stringify( + TopicsControllerRemoveSubscribersResponse$outboundSchema.parse( + topicsControllerRemoveSubscribersResponse, + ), + ); +} + +export function topicsControllerRemoveSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerRemoveSubscribersResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerRemoveSubscribersResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerRemoveSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerrenametopic.ts b/src/models/operations/topicscontrollerrenametopic.ts index aa0489f6..3f033892 100644 --- a/src/models/operations/topicscontrollerrenametopic.ts +++ b/src/models/operations/topicscontrollerrenametopic.ts @@ -4,7 +4,10 @@ import * as z from "zod"; import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TopicsControllerRenameTopicRequest = { /** @@ -14,6 +17,11 @@ export type TopicsControllerRenameTopicRequest = { renameTopicRequestDto: components.RenameTopicRequestDto; }; +export type TopicsControllerRenameTopicResponse = { + headers: { [k: string]: Array }; + result: components.RenameTopicResponseDto; +}; + /** @internal */ export const TopicsControllerRenameTopicRequest$inboundSchema: z.ZodType< TopicsControllerRenameTopicRequest, @@ -61,3 +69,96 @@ export namespace TopicsControllerRenameTopicRequest$ { /** @deprecated use `TopicsControllerRenameTopicRequest$Outbound` instead. */ export type Outbound = TopicsControllerRenameTopicRequest$Outbound; } + +export function topicsControllerRenameTopicRequestToJSON( + topicsControllerRenameTopicRequest: TopicsControllerRenameTopicRequest, +): string { + return JSON.stringify( + TopicsControllerRenameTopicRequest$outboundSchema.parse( + topicsControllerRenameTopicRequest, + ), + ); +} + +export function topicsControllerRenameTopicRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerRenameTopicRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerRenameTopicRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerRenameTopicResponse$inboundSchema: z.ZodType< + TopicsControllerRenameTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.RenameTopicResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerRenameTopicResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.RenameTopicResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerRenameTopicResponse$outboundSchema: z.ZodType< + TopicsControllerRenameTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerRenameTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.RenameTopicResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerRenameTopicResponse$ { + /** @deprecated use `TopicsControllerRenameTopicResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerRenameTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerRenameTopicResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerRenameTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerRenameTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerRenameTopicResponse$Outbound; +} + +export function topicsControllerRenameTopicResponseToJSON( + topicsControllerRenameTopicResponse: TopicsControllerRenameTopicResponse, +): string { + return JSON.stringify( + TopicsControllerRenameTopicResponse$outboundSchema.parse( + topicsControllerRenameTopicResponse, + ), + ); +} + +export function topicsControllerRenameTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerRenameTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerRenameTopicResponse' from JSON`, + ); +} diff --git a/src/sdk/apikeys.ts b/src/sdk/apikeys.ts index f2ca05d7..62daa88c 100644 --- a/src/sdk/apikeys.ts +++ b/src/sdk/apikeys.ts @@ -4,7 +4,7 @@ import { environmentsApiKeysList } from "../funcs/environmentsApiKeysList.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class ApiKeys extends ClientSDK { @@ -13,7 +13,9 @@ export class ApiKeys extends ClientSDK { */ async list( options?: RequestOptions, - ): Promise> { + ): Promise< + operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse + > { return unwrapAsync(environmentsApiKeysList( this, options, diff --git a/src/sdk/authentication.ts b/src/sdk/authentication.ts index 69022a83..1de499b9 100644 --- a/src/sdk/authentication.ts +++ b/src/sdk/authentication.ts @@ -2,34 +2,21 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { subscribersAuthenticationChatAccessOauth } from "../funcs/subscribersAuthenticationChatAccessOauth.js"; -import { subscribersAuthenticationChatAccessOauthCallBack } from "../funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; -======= import { subscribersAuthenticationHandleOauth } from "../funcs/subscribersAuthenticationHandleOauth.js"; import { subscribersAuthenticationHandleOauthCallback } from "../funcs/subscribersAuthenticationHandleOauthCallback.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Authentication extends ClientSDK { /** - * Handle chat oauth + * Handle providers oauth redirect */ -<<<<<<< Updated upstream - async chatAccessOauth( - request: operations.SubscribersControllerChatAccessOauthRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersAuthenticationChatAccessOauth( -======= - async handleOauth( - request: operations.SubscribersControllerChatAccessOauthRequest, + async handleOauthCallback( + request: operations.SubscribersControllerChatOauthCallbackRequest, options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersAuthenticationHandleOauth( ->>>>>>> Stashed changes + ): Promise { + return unwrapAsync(subscribersAuthenticationHandleOauthCallback( this, request, options, @@ -37,21 +24,15 @@ export class Authentication extends ClientSDK { } /** - * Handle providers oauth redirect + * Handle chat oauth */ -<<<<<<< Updated upstream - async chatAccessOauthCallBack( - request: operations.SubscribersControllerChatOauthCallbackRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersAuthenticationChatAccessOauthCallBack( -======= - async handleOauthCallback( - request: operations.SubscribersControllerChatOauthCallbackRequest, + async handleOauth( + request: operations.SubscribersControllerChatAccessOauthRequest, options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersAuthenticationHandleOauthCallback( ->>>>>>> Stashed changes + ): Promise< + operations.SubscribersControllerChatAccessOauthResponse | undefined + > { + return unwrapAsync(subscribersAuthenticationHandleOauth( this, request, options, diff --git a/src/sdk/credentials.ts b/src/sdk/credentials.ts index 2894dd98..2ac9307f 100644 --- a/src/sdk/credentials.ts +++ b/src/sdk/credentials.ts @@ -7,22 +7,35 @@ import { subscribersCredentialsDelete } from "../funcs/subscribersCredentialsDel import { subscribersCredentialsUpdate } from "../funcs/subscribersCredentialsUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Credentials extends ClientSDK { /** - * Modify subscriber credentials + * Update subscriber credentials * * @remarks * Subscriber credentials associated to the delivery methods such as slack and push tokens. -<<<<<<< Updated upstream - * This endpoint appends provided credentials and deviceTokens to the existing ones. */ - async append( - subscriberId: string, + async update( updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, -======= + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersCredentialsUpdate( + this, + updateSubscriberChannelRequestDto, + subscriberId, + options, + )); + } + + /** + * Modify subscriber credentials + * + * @remarks + * Subscriber credentials associated to the delivery methods such as slack and push tokens. * * This endpoint appends provided credentials and deviceTokens to the existing ones. */ @@ -30,18 +43,12 @@ export class Credentials extends ClientSDK { updateSubscriberChannelRequestDto: components.UpdateSubscriberChannelRequestDto, subscriberId: string, ->>>>>>> Stashed changes options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersCredentialsAppend( this, -<<<<<<< Updated upstream - subscriberId, - updateSubscriberChannelRequestDto, -======= updateSubscriberChannelRequestDto, subscriberId, ->>>>>>> Stashed changes options, )); } @@ -56,7 +63,10 @@ export class Credentials extends ClientSDK { subscriberId: string, providerId: string, options?: RequestOptions, - ): Promise { + ): Promise< + | operations.SubscribersControllerDeleteSubscriberCredentialsResponse + | undefined + > { return unwrapAsync(subscribersCredentialsDelete( this, subscriberId, @@ -64,35 +74,4 @@ export class Credentials extends ClientSDK { options, )); } - - /** - * Update subscriber credentials - * - * @remarks - * Subscriber credentials associated to the delivery methods such as slack and push tokens. - */ - async update( -<<<<<<< Updated upstream - subscriberId: string, - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, -======= - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, - subscriberId: string, ->>>>>>> Stashed changes - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersCredentialsUpdate( - this, -<<<<<<< Updated upstream - subscriberId, - updateSubscriberChannelRequestDto, -======= - updateSubscriberChannelRequestDto, - subscriberId, ->>>>>>> Stashed changes - options, - )); - } } diff --git a/src/sdk/environments.ts b/src/sdk/environments.ts index 6207ee41..cf410bbb 100644 --- a/src/sdk/environments.ts +++ b/src/sdk/environments.ts @@ -2,61 +2,38 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { environmentsList } from "../funcs/environmentsList.js"; -import { environmentsRetrieve } from "../funcs/environmentsRetrieve.js"; -======= import { environmentsGetAll } from "../funcs/environmentsGetAll.js"; import { environmentsGetCurrent } from "../funcs/environmentsGetCurrent.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; import { ApiKeys } from "./apikeys.js"; export class Environments extends ClientSDK { private _apiKeys?: ApiKeys; get apiKeys(): ApiKeys { -<<<<<<< Updated upstream - return (this._apiKeys ??= new ApiKeys(this.options$)); -======= return (this._apiKeys ??= new ApiKeys(this._options)); ->>>>>>> Stashed changes } /** - * Get environments + * Get current environment */ -<<<<<<< Updated upstream - async list( - options?: RequestOptions, - ): Promise> { - return unwrapAsync(environmentsList( -======= - async getAll( + async getCurrent( options?: RequestOptions, - ): Promise> { - return unwrapAsync(environmentsGetAll( ->>>>>>> Stashed changes + ): Promise { + return unwrapAsync(environmentsGetCurrent( this, options, )); } /** - * Get current environment + * Get environments */ -<<<<<<< Updated upstream - async retrieve( - options?: RequestOptions, - ): Promise { - return unwrapAsync(environmentsRetrieve( -======= - async getCurrent( + async getAll( options?: RequestOptions, - ): Promise { - return unwrapAsync(environmentsGetCurrent( ->>>>>>> Stashed changes + ): Promise { + return unwrapAsync(environmentsGetAll( this, options, )); diff --git a/src/sdk/executiondetails.ts b/src/sdk/executiondetails.ts index d75a8865..cfcb7d0c 100644 --- a/src/sdk/executiondetails.ts +++ b/src/sdk/executiondetails.ts @@ -2,33 +2,23 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { executionDetailsRetrieve } from "../funcs/executionDetailsRetrieve.js"; -======= import { executionDetailsGet } from "../funcs/executionDetailsGet.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class ExecutionDetails extends ClientSDK { /** * Get execution details */ -<<<<<<< Updated upstream - async retrieve( -======= async get( ->>>>>>> Stashed changes notificationId: string, subscriberId: string, options?: RequestOptions, - ): Promise> { -<<<<<<< Updated upstream - return unwrapAsync(executionDetailsRetrieve( -======= + ): Promise< + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse + > { return unwrapAsync(executionDetailsGet( ->>>>>>> Stashed changes this, notificationId, subscriberId, diff --git a/src/sdk/integrations.ts b/src/sdk/integrations.ts index 553fc90e..5c2f4347 100644 --- a/src/sdk/integrations.ts +++ b/src/sdk/integrations.ts @@ -6,40 +6,29 @@ import { integrationsCreate } from "../funcs/integrationsCreate.js"; import { integrationsDelete } from "../funcs/integrationsDelete.js"; import { integrationsList } from "../funcs/integrationsList.js"; import { integrationsListActive } from "../funcs/integrationsListActive.js"; -<<<<<<< Updated upstream -import { integrationsSetAsPrimary } from "../funcs/integrationsSetAsPrimary.js"; -======= import { integrationsSetPrimary } from "../funcs/integrationsSetPrimary.js"; ->>>>>>> Stashed changes import { integrationsUpdate } from "../funcs/integrationsUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; -<<<<<<< Updated upstream -import { Webhooks } from "./webhooks.js"; export class Integrations extends ClientSDK { - private _webhooks?: Webhooks; - get webhooks(): Webhooks { - return (this._webhooks ??= new Webhooks(this.options$)); - } - /** - * Create integration + * Get integrations * * @remarks - * Create an integration for the current environment the user is based on the API key provided + * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change */ - async create( - request: components.CreateIntegrationRequestDto, + async list( options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsCreate( + ): Promise { + return unwrapAsync(integrationsList( this, - request, -======= + options, + )); + } -export class Integrations extends ClientSDK { /** * Create integration * @@ -49,7 +38,7 @@ export class Integrations extends ClientSDK { async create( request: components.CreateIntegrationRequestDto, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(integrationsCreate( this, request, @@ -58,59 +47,6 @@ export class Integrations extends ClientSDK { } /** - * Delete integration - */ - async delete( - integrationId: string, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(integrationsDelete( - this, - integrationId, ->>>>>>> Stashed changes - options, - )); - } - - /** -<<<<<<< Updated upstream - * Delete integration - */ - async delete( - integrationId: string, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(integrationsDelete( - this, - integrationId, -======= - * Get integrations - * - * @remarks - * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - */ - async list( - options?: RequestOptions, - ): Promise> { - return unwrapAsync(integrationsList( - this, ->>>>>>> Stashed changes - options, - )); - } - - /** -<<<<<<< Updated upstream - * Get integrations - * - * @remarks - * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - */ - async list( - options?: RequestOptions, - ): Promise> { - return unwrapAsync(integrationsList( -======= * Get active integrations * * @remarks @@ -118,50 +54,37 @@ export class Integrations extends ClientSDK { */ async listActive( options?: RequestOptions, - ): Promise> { + ): Promise { return unwrapAsync(integrationsListActive( ->>>>>>> Stashed changes this, options, )); } /** -<<<<<<< Updated upstream - * Get active integrations - * - * @remarks - * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - */ - async listActive( - options?: RequestOptions, - ): Promise> { - return unwrapAsync(integrationsListActive( - this, -======= - * Set integration as primary + * Update integration */ - async setPrimary( + async update( + updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, integrationId: string, options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsSetPrimary( + ): Promise { + return unwrapAsync(integrationsUpdate( this, + updateIntegrationRequestDto, integrationId, ->>>>>>> Stashed changes options, )); } /** -<<<<<<< Updated upstream - * Set integration as primary + * Delete integration */ - async setAsPrimary( + async delete( integrationId: string, options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsSetAsPrimary( + ): Promise { + return unwrapAsync(integrationsDelete( this, integrationId, options, @@ -169,29 +92,15 @@ export class Integrations extends ClientSDK { } /** - * Update integration - */ - async update( - integrationId: string, - updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, -======= - * Update integration + * Set integration as primary */ - async update( - updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, + async setPrimary( integrationId: string, ->>>>>>> Stashed changes options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsUpdate( + ): Promise { + return unwrapAsync(integrationsSetPrimary( this, -<<<<<<< Updated upstream - integrationId, - updateIntegrationRequestDto, -======= - updateIntegrationRequestDto, integrationId, ->>>>>>> Stashed changes options, )); } diff --git a/src/sdk/integrationswebhooks.ts b/src/sdk/integrationswebhooks.ts index b3d42b1a..86b2f145 100644 --- a/src/sdk/integrationswebhooks.ts +++ b/src/sdk/integrationswebhooks.ts @@ -4,6 +4,7 @@ import { integrationsWebhooksGetStatus } from "../funcs/integrationsWebhooksGetStatus.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class IntegrationsWebhooks extends ClientSDK { @@ -16,7 +17,7 @@ export class IntegrationsWebhooks extends ClientSDK { async getStatus( providerOrIntegrationId: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(integrationsWebhooksGetStatus( this, providerOrIntegrationId, diff --git a/src/sdk/messages.ts b/src/sdk/messages.ts index 9cef8c74..c3ea5f2d 100644 --- a/src/sdk/messages.ts +++ b/src/sdk/messages.ts @@ -4,17 +4,29 @@ import { messagesDelete } from "../funcs/messagesDelete.js"; import { messagesDeleteByTransactionId } from "../funcs/messagesDeleteByTransactionId.js"; -<<<<<<< Updated upstream -import { messagesRetrieve } from "../funcs/messagesRetrieve.js"; -======= import { messagesGet } from "../funcs/messagesGet.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Messages extends ClientSDK { + /** + * Get messages + * + * @remarks + * Returns a list of messages, could paginate using the `page` query parameter + */ + async get( + request: operations.MessagesControllerGetMessagesRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(messagesGet( + this, + request, + options, + )); + } + /** * Delete message * @@ -24,7 +36,7 @@ export class Messages extends ClientSDK { async delete( messageId: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(messagesDelete( this, messageId, @@ -40,9 +52,12 @@ export class Messages extends ClientSDK { */ async deleteByTransactionId( transactionId: string, - channel?: operations.Channel | undefined, + channel?: operations.QueryParamChannel | undefined, options?: RequestOptions, - ): Promise { + ): Promise< + | operations.MessagesControllerDeleteMessagesByTransactionIdResponse + | undefined + > { return unwrapAsync(messagesDeleteByTransactionId( this, transactionId, @@ -50,29 +65,4 @@ export class Messages extends ClientSDK { options, )); } - - /** - * Get messages - * - * @remarks - * Returns a list of messages, could paginate using the `page` query parameter - */ -<<<<<<< Updated upstream - async retrieve( - request: operations.MessagesControllerGetMessagesRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(messagesRetrieve( -======= - async get( - request: operations.MessagesControllerGetMessagesRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(messagesGet( ->>>>>>> Stashed changes - this, - request, - options, - )); - } } diff --git a/src/sdk/notifications.ts b/src/sdk/notifications.ts index 45057910..9ee1f327 100644 --- a/src/sdk/notifications.ts +++ b/src/sdk/notifications.ts @@ -2,15 +2,9 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { notificationsList } from "../funcs/notificationsList.js"; -import { notificationsRetrieve } from "../funcs/notificationsRetrieve.js"; -======= import { notificationsGet } from "../funcs/notificationsGet.js"; import { notificationsList } from "../funcs/notificationsList.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; import { Stats } from "./stats.js"; @@ -18,8 +12,7 @@ import { Stats } from "./stats.js"; export class Notifications extends ClientSDK { private _stats?: Stats; get stats(): Stats { -<<<<<<< Updated upstream - return (this._stats ??= new Stats(this.options$)); + return (this._stats ??= new Stats(this._options)); } /** @@ -28,51 +21,24 @@ export class Notifications extends ClientSDK { async list( request: operations.NotificationsControllerListNotificationsRequest, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(notificationsList( this, request, -======= - return (this._stats ??= new Stats(this._options)); - } - - /** - * Get notification - */ - async get( - notificationId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsGet( - this, - notificationId, ->>>>>>> Stashed changes options, )); } /** -<<<<<<< Updated upstream * Get notification */ - async retrieve( + async get( notificationId: string, options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsRetrieve( + ): Promise { + return unwrapAsync(notificationsGet( this, notificationId, -======= - * Get notifications - */ - async list( - request: operations.NotificationsControllerListNotificationsRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsList( - this, - request, ->>>>>>> Stashed changes options, )); } diff --git a/src/sdk/notificationsstats.ts b/src/sdk/notificationsstats.ts index b95849b2..04b1b0a7 100644 --- a/src/sdk/notificationsstats.ts +++ b/src/sdk/notificationsstats.ts @@ -4,7 +4,7 @@ import { notificationsStatsGet } from "../funcs/notificationsStatsGet.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class NotificationsStats extends ClientSDK { @@ -14,7 +14,7 @@ export class NotificationsStats extends ClientSDK { async get( days?: number | undefined, options?: RequestOptions, - ): Promise> { + ): Promise { return unwrapAsync(notificationsStatsGet( this, days, diff --git a/src/sdk/novumessages.ts b/src/sdk/novumessages.ts index 90868c21..7f4ae3df 100644 --- a/src/sdk/novumessages.ts +++ b/src/sdk/novumessages.ts @@ -2,77 +2,25 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.js"; -import { subscribersMessagesMarkAllAs } from "../funcs/subscribersMessagesMarkAllAs.js"; -import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -======= import { subscribersMessagesMark } from "../funcs/subscribersMessagesMark.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; ->>>>>>> Stashed changes +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class NovuMessages extends ClientSDK { /** -<<<<<<< Updated upstream - * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - */ - async markAll( - subscriberId: string, - markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersMessagesMarkAll( - this, - subscriberId, - markAllMessageAsRequestDto, - options, - )); - } - - /** - * Mark a subscriber messages as seen, read, unseen or unread - */ - async markAllAs( - subscriberId: string, - messageMarkAsRequestDto: components.MessageMarkAsRequestDto, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(subscribersMessagesMarkAllAs( - this, - subscriberId, - messageMarkAsRequestDto, - options, - )); - } - - /** - * Mark message action as seen - */ - async updateAsSeen( - request: operations.SubscribersControllerMarkActionAsSeenRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersMessagesUpdateAsSeen( - this, - request, -======= * Mark a subscriber messages as seen, read, unseen or unread */ async mark( messageMarkAsRequestDto: components.MessageMarkAsRequestDto, subscriberId: string, options?: RequestOptions, - ): Promise> { + ): Promise { return unwrapAsync(subscribersMessagesMark( this, messageMarkAsRequestDto, subscriberId, ->>>>>>> Stashed changes options, )); } diff --git a/src/sdk/novusubscribersnotifications.ts b/src/sdk/novusubscribersnotifications.ts index af8de999..c10759d4 100644 --- a/src/sdk/novusubscribersnotifications.ts +++ b/src/sdk/novusubscribersnotifications.ts @@ -14,7 +14,7 @@ export class NovuSubscribersNotifications extends ClientSDK { async getFeed( request: operations.SubscribersControllerGetNotificationsFeedRequest, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersNotificationsGetFeed( this, request, diff --git a/src/sdk/novutopicssubscribers.ts b/src/sdk/novutopicssubscribers.ts index dd6a9cab..71ac521c 100644 --- a/src/sdk/novutopicssubscribers.ts +++ b/src/sdk/novutopicssubscribers.ts @@ -7,6 +7,7 @@ import { topicsSubscribersCheck } from "../funcs/topicsSubscribersCheck.js"; import { topicsSubscribersRemove } from "../funcs/topicsSubscribersRemove.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class NovuTopicsSubscribers extends ClientSDK { @@ -20,7 +21,7 @@ export class NovuTopicsSubscribers extends ClientSDK { addSubscribersRequestDto: components.AddSubscribersRequestDto, topicKey: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(topicsSubscribersAdd( this, addSubscribersRequestDto, @@ -39,7 +40,7 @@ export class NovuTopicsSubscribers extends ClientSDK { externalSubscriberId: string, topicKey: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(topicsSubscribersCheck( this, externalSubscriberId, @@ -58,7 +59,7 @@ export class NovuTopicsSubscribers extends ClientSDK { removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, topicKey: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(topicsSubscribersRemove( this, removeSubscribersRequestDto, diff --git a/src/sdk/preferences.ts b/src/sdk/preferences.ts index 65758573..0ce52ef0 100644 --- a/src/sdk/preferences.ts +++ b/src/sdk/preferences.ts @@ -2,18 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { subscribersPreferencesList } from "../funcs/subscribersPreferencesList.js"; -import { subscribersPreferencesRetrieveByLevel } from "../funcs/subscribersPreferencesRetrieveByLevel.js"; -import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.js"; -import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; -======= import { subscribersPreferencesGet } from "../funcs/subscribersPreferencesGet.js"; import { subscribersPreferencesGetByLevel } from "../funcs/subscribersPreferencesGetByLevel.js"; import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -21,25 +13,17 @@ export class Preferences extends ClientSDK { /** * Get subscriber preferences */ -<<<<<<< Updated upstream - async list( - subscriberId: string, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(subscribersPreferencesList( - this, - subscriberId, -======= async get( subscriberId: string, includeInactiveChannels?: boolean | undefined, options?: RequestOptions, - ): Promise> { + ): Promise< + operations.SubscribersControllerListSubscriberPreferencesResponse + > { return unwrapAsync(subscribersPreferencesGet( this, subscriberId, includeInactiveChannels, ->>>>>>> Stashed changes options, )); } @@ -47,26 +31,16 @@ export class Preferences extends ClientSDK { /** * Get subscriber preferences by level */ -<<<<<<< Updated upstream - async retrieveByLevel( - parameter: operations.Parameter, - subscriberId: string, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(subscribersPreferencesRetrieveByLevel( - this, - parameter, - subscriberId, -======= async getByLevel( request: operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, options?: RequestOptions, - ): Promise> { + ): Promise< + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse + > { return unwrapAsync(subscribersPreferencesGetByLevel( this, request, ->>>>>>> Stashed changes options, )); } @@ -77,31 +51,13 @@ export class Preferences extends ClientSDK { async update( request: operations.SubscribersControllerUpdateSubscriberPreferenceRequest, options?: RequestOptions, - ): Promise { + ): Promise< + operations.SubscribersControllerUpdateSubscriberPreferenceResponse + > { return unwrapAsync(subscribersPreferencesUpdate( this, request, options, )); } -<<<<<<< Updated upstream - - /** - * Update subscriber global preferences - */ - async updateGlobal( - subscriberId: string, - updateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersPreferencesUpdateGlobal( - this, - subscriberId, - updateSubscriberGlobalPreferencesRequestDto, - options, - )); - } -======= ->>>>>>> Stashed changes } diff --git a/src/sdk/properties.ts b/src/sdk/properties.ts index 9bdc438b..bceed3c3 100644 --- a/src/sdk/properties.ts +++ b/src/sdk/properties.ts @@ -2,13 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { subscribersPropertiesUpdateOnlineFlag } from "../funcs/subscribersPropertiesUpdateOnlineFlag.js"; -======= import { subscribersPropertiesUpdateOnlineStatus } from "../funcs/subscribersPropertiesUpdateOnlineStatus.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Properties extends ClientSDK { @@ -18,29 +15,18 @@ export class Properties extends ClientSDK { * @remarks * Used to update the subscriber isOnline flag. */ -<<<<<<< Updated upstream - async updateOnlineFlag( - subscriberId: string, - updateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersPropertiesUpdateOnlineFlag( - this, - subscriberId, - updateSubscriberOnlineFlagRequestDto, -======= async updateOnlineStatus( updateSubscriberOnlineFlagRequestDto: components.UpdateSubscriberOnlineFlagRequestDto, subscriberId: string, options?: RequestOptions, - ): Promise { + ): Promise< + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse + > { return unwrapAsync(subscribersPropertiesUpdateOnlineStatus( this, updateSubscriberOnlineFlagRequestDto, subscriberId, ->>>>>>> Stashed changes options, )); } diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts index e42d93bc..d826be4c 100644 --- a/src/sdk/sdk.ts +++ b/src/sdk/sdk.ts @@ -8,83 +8,8 @@ import { triggerBroadcast } from "../funcs/triggerBroadcast.js"; import { triggerBulk } from "../funcs/triggerBulk.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; -<<<<<<< Updated upstream -import { Changes } from "./changes.js"; -import { Environments } from "./environments.js"; -import { ExecutionDetails } from "./executiondetails.js"; -import { Feeds } from "./feeds.js"; -import { Integrations } from "./integrations.js"; -import { Layouts } from "./layouts.js"; -import { Messages } from "./messages.js"; -import { Notifications } from "./notifications.js"; -import { Organizations } from "./organizations.js"; -import { Subscribers } from "./subscribers.js"; -import { Tenants } from "./tenants.js"; -import { Topics } from "./topics.js"; -import { WorkflowGroups } from "./workflowgroups.js"; -import { Workflows } from "./workflows.js"; - -export class Novu extends ClientSDK { - private _changes?: Changes; - get changes(): Changes { - return (this._changes ??= new Changes(this.options$)); - } - - private _environments?: Environments; - get environments(): Environments { - return (this._environments ??= new Environments(this.options$)); - } - - private _executionDetails?: ExecutionDetails; - get executionDetails(): ExecutionDetails { - return (this._executionDetails ??= new ExecutionDetails(this.options$)); - } - - private _feeds?: Feeds; - get feeds(): Feeds { - return (this._feeds ??= new Feeds(this.options$)); - } - - private _integrations?: Integrations; - get integrations(): Integrations { - return (this._integrations ??= new Integrations(this.options$)); - } - - private _layouts?: Layouts; - get layouts(): Layouts { - return (this._layouts ??= new Layouts(this.options$)); - } - - private _messages?: Messages; - get messages(): Messages { - return (this._messages ??= new Messages(this.options$)); - } - - private _workflowGroups?: WorkflowGroups; - get workflowGroups(): WorkflowGroups { - return (this._workflowGroups ??= new WorkflowGroups(this.options$)); - } - - private _notifications?: Notifications; - get notifications(): Notifications { - return (this._notifications ??= new Notifications(this.options$)); - } - - private _organizations?: Organizations; - get organizations(): Organizations { - return (this._organizations ??= new Organizations(this.options$)); - } - - private _subscribers?: Subscribers; - get subscribers(): Subscribers { - return (this._subscribers ??= new Subscribers(this.options$)); - } - - private _tenants?: Tenants; - get tenants(): Tenants { - return (this._tenants ??= new Tenants(this.options$)); -======= import { Environments } from "./environments.js"; import { ExecutionDetails } from "./executiondetails.js"; import { Integrations } from "./integrations.js"; @@ -110,21 +35,14 @@ export class Novu extends ClientSDK { return (this._executionDetails ??= new ExecutionDetails(this._options)); } - private _integrations?: Integrations; - get integrations(): Integrations { - return (this._integrations ??= new Integrations(this._options)); - } - - private _integrationsWebhooks?: IntegrationsWebhooks; - get integrationsWebhooks(): IntegrationsWebhooks { - return (this._integrationsWebhooks ??= new IntegrationsWebhooks( - this._options, - )); + private _notifications?: Notifications; + get notifications(): Notifications { + return (this._notifications ??= new Notifications(this._options)); } - private _messages?: Messages; - get messages(): Messages { - return (this._messages ??= new Messages(this._options)); + private _notificationsStats?: NotificationsStats; + get notificationsStats(): NotificationsStats { + return (this._notificationsStats ??= new NotificationsStats(this._options)); } private _workflowGroups?: WorkflowGroups; @@ -132,14 +50,16 @@ export class Novu extends ClientSDK { return (this._workflowGroups ??= new WorkflowGroups(this._options)); } - private _notifications?: Notifications; - get notifications(): Notifications { - return (this._notifications ??= new Notifications(this._options)); + private _integrations?: Integrations; + get integrations(): Integrations { + return (this._integrations ??= new Integrations(this._options)); } - private _notificationsStats?: NotificationsStats; - get notificationsStats(): NotificationsStats { - return (this._notificationsStats ??= new NotificationsStats(this._options)); + private _integrationsWebhooks?: IntegrationsWebhooks; + get integrationsWebhooks(): IntegrationsWebhooks { + return (this._integrationsWebhooks ??= new IntegrationsWebhooks( + this._options, + )); } private _subscribers?: Subscribers; @@ -147,9 +67,9 @@ export class Novu extends ClientSDK { return (this._subscribers ??= new Subscribers(this._options)); } - private _subscribersMessages?: SubscribersMessages; - get subscribersMessages(): SubscribersMessages { - return (this._subscribersMessages ??= new SubscribersMessages( + private _subscribersPreferences?: SubscribersPreferences; + get subscribersPreferences(): SubscribersPreferences { + return (this._subscribersPreferences ??= new SubscribersPreferences( this._options, )); } @@ -161,63 +81,23 @@ export class Novu extends ClientSDK { )); } - private _subscribersPreferences?: SubscribersPreferences; - get subscribersPreferences(): SubscribersPreferences { - return (this._subscribersPreferences ??= new SubscribersPreferences( + private _subscribersMessages?: SubscribersMessages; + get subscribersMessages(): SubscribersMessages { + return (this._subscribersMessages ??= new SubscribersMessages( this._options, )); ->>>>>>> Stashed changes } - private _topics?: Topics; - get topics(): Topics { -<<<<<<< Updated upstream - return (this._topics ??= new Topics(this.options$)); - } - - private _workflows?: Workflows; - get workflows(): Workflows { - return (this._workflows ??= new Workflows(this.options$)); + private _messages?: Messages; + get messages(): Messages { + return (this._messages ??= new Messages(this._options)); } - /** - * Cancel triggered event - * - * @remarks - * - * Using a previously generated transactionId during the event trigger, - * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - */ - async cancel( - transactionId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(cancel( - this, - transactionId, -======= + private _topics?: Topics; + get topics(): Topics { return (this._topics ??= new Topics(this._options)); } - /** - * Cancel triggered event - * - * @remarks - * - * Using a previously generated transactionId during the event trigger, - * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - */ - async cancel( - transactionId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(cancel( - this, - transactionId, - options, - )); - } - /** * Trigger event * @@ -230,44 +110,27 @@ export class Novu extends ClientSDK { async trigger( request: components.TriggerEventRequestDto, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(trigger( this, request, ->>>>>>> Stashed changes options, )); } /** -<<<<<<< Updated upstream - * Trigger event - * - * @remarks - * - * Trigger event is the main (and only) way to send notifications to subscribers. - * The trigger identifier is used to match the particular workflow associated with it. - * Additional information can be passed according the body interface below. - */ - async trigger( - request: components.TriggerEventRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(trigger( -======= - * Broadcast event to all + * Bulk trigger event * * @remarks - * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. * - * In the future could be used to trigger events to a subset of subscribers based on defined filters. + * Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + * The bulk API is limited to 100 events per request. */ - async triggerBroadcast( - request: components.TriggerEventToAllRequestDto, + async triggerBulk( + request: components.BulkTriggerEventDto, options?: RequestOptions, - ): Promise { - return unwrapAsync(triggerBroadcast( ->>>>>>> Stashed changes + ): Promise { + return unwrapAsync(triggerBulk( this, request, options, @@ -275,17 +138,17 @@ export class Novu extends ClientSDK { } /** -<<<<<<< Updated upstream * Broadcast event to all * * @remarks * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + * * In the future could be used to trigger events to a subset of subscribers based on defined filters. */ async triggerBroadcast( request: components.TriggerEventToAllRequestDto, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(triggerBroadcast( this, request, @@ -294,22 +157,20 @@ export class Novu extends ClientSDK { } /** -======= ->>>>>>> Stashed changes - * Bulk trigger event + * Cancel triggered event * * @remarks * - * Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - * The bulk API is limited to 100 events per request. + * Using a previously generated transactionId during the event trigger, + * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... */ - async triggerBulk( - request: components.BulkTriggerEventDto, + async cancel( + transactionId: string, options?: RequestOptions, - ): Promise> { - return unwrapAsync(triggerBulk( + ): Promise { + return unwrapAsync(cancel( this, - request, + transactionId, options, )); } diff --git a/src/sdk/stats.ts b/src/sdk/stats.ts index fffe2a2d..e29233c3 100644 --- a/src/sdk/stats.ts +++ b/src/sdk/stats.ts @@ -2,47 +2,19 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -<<<<<<< Updated upstream -import { notificationsStatsGraph } from "../funcs/notificationsStatsGraph.js"; -import { notificationsStatsRetrieve } from "../funcs/notificationsStatsRetrieve.js"; -======= import { notificationsStatsGet } from "../funcs/notificationsStatsGet.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Stats extends ClientSDK { /** -<<<<<<< Updated upstream - * Get notification graph statistics - */ - async graph( - days?: number | undefined, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(notificationsStatsGraph( - this, - days, - options, - )); - } - - /** - * Get notification statistics - */ - async retrieve( - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsStatsRetrieve( -======= * Get notification statistics */ async get( options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(notificationsStatsGet( ->>>>>>> Stashed changes this, options, )); diff --git a/src/sdk/subscribers.ts b/src/sdk/subscribers.ts index 3fbc51c6..8c09945c 100644 --- a/src/sdk/subscribers.ts +++ b/src/sdk/subscribers.ts @@ -5,13 +5,8 @@ import { subscribersCreate } from "../funcs/subscribersCreate.js"; import { subscribersCreateBulk } from "../funcs/subscribersCreateBulk.js"; import { subscribersDelete } from "../funcs/subscribersDelete.js"; -<<<<<<< Updated upstream -import { subscribersList } from "../funcs/subscribersList.js"; -import { subscribersRetrieve } from "../funcs/subscribersRetrieve.js"; -======= import { subscribersGet } from "../funcs/subscribersGet.js"; import { subscribersGetAll } from "../funcs/subscribersGetAll.js"; ->>>>>>> Stashed changes import { subscribersUpdate } from "../funcs/subscribersUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; @@ -21,44 +16,24 @@ import { PageIterator, unwrapResultIterator } from "../types/operations.js"; import { Authentication } from "./authentication.js"; import { Credentials } from "./credentials.js"; import { NovuMessages } from "./novumessages.js"; -<<<<<<< Updated upstream -import { NovuNotifications } from "./novunotifications.js"; -======= import { NovuSubscribersNotifications } from "./novusubscribersnotifications.js"; ->>>>>>> Stashed changes import { Preferences } from "./preferences.js"; import { Properties } from "./properties.js"; export class Subscribers extends ClientSDK { private _credentials?: Credentials; get credentials(): Credentials { -<<<<<<< Updated upstream - return (this._credentials ??= new Credentials(this.options$)); -======= return (this._credentials ??= new Credentials(this._options)); ->>>>>>> Stashed changes } - private _authentication?: Authentication; - get authentication(): Authentication { -<<<<<<< Updated upstream - return (this._authentication ??= new Authentication(this.options$)); -======= - return (this._authentication ??= new Authentication(this._options)); ->>>>>>> Stashed changes - } - - private _messages?: NovuMessages; - get messages(): NovuMessages { -<<<<<<< Updated upstream - return (this._messages ??= new NovuMessages(this.options$)); + private _properties?: Properties; + get properties(): Properties { + return (this._properties ??= new Properties(this._options)); } - private _notifications?: NovuNotifications; - get notifications(): NovuNotifications { - return (this._notifications ??= new NovuNotifications(this.options$)); -======= - return (this._messages ??= new NovuMessages(this._options)); + private _preferences?: Preferences; + get preferences(): Preferences { + return (this._preferences ??= new Preferences(this._options)); } private _notifications?: NovuSubscribersNotifications; @@ -66,57 +41,50 @@ export class Subscribers extends ClientSDK { return (this._notifications ??= new NovuSubscribersNotifications( this._options, )); ->>>>>>> Stashed changes } - private _properties?: Properties; - get properties(): Properties { -<<<<<<< Updated upstream - return (this._properties ??= new Properties(this.options$)); -======= - return (this._properties ??= new Properties(this._options)); ->>>>>>> Stashed changes + private _messages?: NovuMessages; + get messages(): NovuMessages { + return (this._messages ??= new NovuMessages(this._options)); } - private _preferences?: Preferences; - get preferences(): Preferences { -<<<<<<< Updated upstream - return (this._preferences ??= new Preferences(this.options$)); -======= - return (this._preferences ??= new Preferences(this._options)); ->>>>>>> Stashed changes + private _authentication?: Authentication; + get authentication(): Authentication { + return (this._authentication ??= new Authentication(this._options)); } /** - * Create subscriber + * Get subscribers * * @remarks - * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter */ - async create( - request: components.CreateSubscriberRequestDto, + async getAll( + page?: number | undefined, + limit?: number | undefined, options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersCreate( + ): Promise< + PageIterator + > { + return unwrapResultIterator(subscribersGetAll( this, - request, + page, + limit, options, )); } /** - * Bulk create subscribers + * Create subscriber * * @remarks - * - * Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - * The bulk API is limited to 500 subscribers per request. + * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. */ - async createBulk( - request: components.BulkSubscriberCreateDto, + async create( + request: components.CreateSubscriberRequestDto, options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersCreateBulk( + ): Promise { + return unwrapAsync(subscribersCreate( this, request, options, @@ -124,25 +92,6 @@ export class Subscribers extends ClientSDK { } /** - * Delete subscriber - * - * @remarks - * Deletes a subscriber entity from the Novu platform - */ - async delete( - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersDelete( - this, - subscriberId, - options, - )); - } - - /** -<<<<<<< Updated upstream -======= * Get subscriber * * @remarks @@ -152,7 +101,7 @@ export class Subscribers extends ClientSDK { subscriberId: string, includeTopics?: string | undefined, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersGet( this, subscriberId, @@ -162,47 +111,35 @@ export class Subscribers extends ClientSDK { } /** ->>>>>>> Stashed changes - * Get subscribers + * Update subscriber * * @remarks - * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + * Used to update the subscriber entity with new information */ -<<<<<<< Updated upstream - async list( -======= - async getAll( ->>>>>>> Stashed changes - page?: number | undefined, - limit?: number | undefined, + async update( + updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, + subscriberId: string, options?: RequestOptions, - ): Promise< - PageIterator - > { -<<<<<<< Updated upstream - return unwrapResultIterator(subscribersList( -======= - return unwrapResultIterator(subscribersGetAll( ->>>>>>> Stashed changes + ): Promise { + return unwrapAsync(subscribersUpdate( this, - page, - limit, + updateSubscriberRequestDto, + subscriberId, options, )); } /** -<<<<<<< Updated upstream - * Get subscriber + * Delete subscriber * * @remarks - * Get subscriber by your internal id used to identify the subscriber + * Deletes a subscriber entity from the Novu platform */ - async retrieve( + async delete( subscriberId: string, options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersRetrieve( + ): Promise { + return unwrapAsync(subscribersDelete( this, subscriberId, options, @@ -210,32 +147,22 @@ export class Subscribers extends ClientSDK { } /** -======= ->>>>>>> Stashed changes - * Update subscriber + * Bulk create subscribers * * @remarks - * Used to update the subscriber entity with new information + * + * Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + * The bulk API is limited to 500 subscribers per request. */ - async update( -<<<<<<< Updated upstream - subscriberId: string, - updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, -======= - updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, - subscriberId: string, ->>>>>>> Stashed changes + async createBulk( + request: components.BulkSubscriberCreateDto, options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersUpdate( + ): Promise< + operations.SubscribersControllerBulkCreateSubscribersResponse | undefined + > { + return unwrapAsync(subscribersCreateBulk( this, -<<<<<<< Updated upstream - subscriberId, - updateSubscriberRequestDto, -======= - updateSubscriberRequestDto, - subscriberId, ->>>>>>> Stashed changes + request, options, )); } diff --git a/src/sdk/subscribersmessages.ts b/src/sdk/subscribersmessages.ts index 6a884fe9..df968e57 100644 --- a/src/sdk/subscribersmessages.ts +++ b/src/sdk/subscribersmessages.ts @@ -17,7 +17,7 @@ export class SubscribersMessages extends ClientSDK { markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, subscriberId: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersMessagesMarkAll( this, markAllMessageAsRequestDto, @@ -32,7 +32,7 @@ export class SubscribersMessages extends ClientSDK { async updateAsSeen( request: operations.SubscribersControllerMarkActionAsSeenRequest, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersMessagesUpdateAsSeen( this, request, diff --git a/src/sdk/subscribersnotifications.ts b/src/sdk/subscribersnotifications.ts index b7f47da5..46f9ea9c 100644 --- a/src/sdk/subscribersnotifications.ts +++ b/src/sdk/subscribersnotifications.ts @@ -4,7 +4,6 @@ import { subscribersNotificationsGetUnseenCount } from "../funcs/subscribersNotificationsGetUnseenCount.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -15,7 +14,7 @@ export class SubscribersNotifications extends ClientSDK { async getUnseenCount( request: operations.SubscribersControllerGetUnseenCountRequest, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersNotificationsGetUnseenCount( this, request, diff --git a/src/sdk/subscriberspreferences.ts b/src/sdk/subscriberspreferences.ts index ebe75715..28af46ed 100644 --- a/src/sdk/subscriberspreferences.ts +++ b/src/sdk/subscriberspreferences.ts @@ -5,6 +5,7 @@ import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class SubscribersPreferences extends ClientSDK { @@ -16,7 +17,9 @@ export class SubscribersPreferences extends ClientSDK { components.UpdateSubscriberGlobalPreferencesRequestDto, subscriberId: string, options?: RequestOptions, - ): Promise { + ): Promise< + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse + > { return unwrapAsync(subscribersPreferencesUpdateGlobal( this, updateSubscriberGlobalPreferencesRequestDto, diff --git a/src/sdk/topics.ts b/src/sdk/topics.ts index d59e3dbd..7870b8bb 100644 --- a/src/sdk/topics.ts +++ b/src/sdk/topics.ts @@ -4,34 +4,19 @@ import { topicsCreate } from "../funcs/topicsCreate.js"; import { topicsDelete } from "../funcs/topicsDelete.js"; -<<<<<<< Updated upstream -import { topicsList } from "../funcs/topicsList.js"; -import { topicsRename } from "../funcs/topicsRename.js"; -import { topicsRetrieve } from "../funcs/topicsRetrieve.js"; -======= import { topicsGet } from "../funcs/topicsGet.js"; import { topicsGetAll } from "../funcs/topicsGetAll.js"; import { topicsRename } from "../funcs/topicsRename.js"; ->>>>>>> Stashed changes import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; -<<<<<<< Updated upstream -import { NovuSubscribers } from "./novusubscribers.js"; - -export class Topics extends ClientSDK { - private _subscribers?: NovuSubscribers; - get subscribers(): NovuSubscribers { - return (this._subscribers ??= new NovuSubscribers(this.options$)); -======= import { NovuTopicsSubscribers } from "./novutopicssubscribers.js"; export class Topics extends ClientSDK { private _subscribers?: NovuTopicsSubscribers; get subscribers(): NovuTopicsSubscribers { return (this._subscribers ??= new NovuTopicsSubscribers(this._options)); ->>>>>>> Stashed changes } /** @@ -43,7 +28,7 @@ export class Topics extends ClientSDK { async create( request: components.CreateTopicRequestDto, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(topicsCreate( this, request, @@ -52,102 +37,57 @@ export class Topics extends ClientSDK { } /** - * Delete topic - * - * @remarks - * Delete a topic by its topic key if it has no subscribers - */ - async delete( - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsDelete( - this, - topicKey, - options, - )); - } - - /** -<<<<<<< Updated upstream * Filter topics * * @remarks * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter */ - async list( + async getAll( request: operations.TopicsControllerListTopicsRequest, options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsList( + ): Promise { + return unwrapAsync(topicsGetAll( this, request, -======= - * Get topic - * - * @remarks - * Get a topic by its topic key - */ - async get( - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsGet( - this, - topicKey, ->>>>>>> Stashed changes options, )); } /** -<<<<<<< Updated upstream - * Rename a topic + * Delete topic * * @remarks - * Rename a topic by providing a new name + * Delete a topic by its topic key if it has no subscribers */ - async rename( + async delete( topicKey: string, - renameTopicRequestDto: components.RenameTopicRequestDto, options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsRename( + ): Promise { + return unwrapAsync(topicsDelete( this, topicKey, - renameTopicRequestDto, -======= - * Filter topics - * - * @remarks - * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - */ - async getAll( - request: operations.TopicsControllerListTopicsRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsGetAll( - this, - request, ->>>>>>> Stashed changes options, )); } /** -<<<<<<< Updated upstream * Get topic * * @remarks * Get a topic by its topic key */ - async retrieve( + async get( topicKey: string, options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsRetrieve( + ): Promise { + return unwrapAsync(topicsGet( this, -======= + topicKey, + options, + )); + } + + /** * Rename a topic * * @remarks @@ -157,11 +97,10 @@ export class Topics extends ClientSDK { renameTopicRequestDto: components.RenameTopicRequestDto, topicKey: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(topicsRename( this, renameTopicRequestDto, ->>>>>>> Stashed changes topicKey, options, )); diff --git a/src/sdk/workflowgroups.ts b/src/sdk/workflowgroups.ts index 7c87dfdd..a44a791e 100644 --- a/src/sdk/workflowgroups.ts +++ b/src/sdk/workflowgroups.ts @@ -4,16 +4,12 @@ import { workflowGroupsCreate } from "../funcs/workflowGroupsCreate.js"; import { workflowGroupsDelete } from "../funcs/workflowGroupsDelete.js"; -<<<<<<< Updated upstream -import { workflowGroupsList } from "../funcs/workflowGroupsList.js"; -import { workflowGroupsRetrieve } from "../funcs/workflowGroupsRetrieve.js"; -======= import { workflowGroupsGet } from "../funcs/workflowGroupsGet.js"; import { workflowGroupsList } from "../funcs/workflowGroupsList.js"; ->>>>>>> Stashed changes import { workflowGroupsUpdate } from "../funcs/workflowGroupsUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class WorkflowGroups extends ClientSDK { @@ -26,7 +22,9 @@ export class WorkflowGroups extends ClientSDK { async create( request: components.CreateNotificationGroupRequestDto, options?: RequestOptions, - ): Promise { + ): Promise< + operations.NotificationGroupsControllerCreateNotificationGroupResponse + > { return unwrapAsync(workflowGroupsCreate( this, request, @@ -35,107 +33,78 @@ export class WorkflowGroups extends ClientSDK { } /** - * Delete workflow group + * Get workflow groups * * @remarks * workflow group was previously named notification group */ - async delete( - id: string, + async list( options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowGroupsDelete( + ): Promise< + operations.NotificationGroupsControllerListNotificationGroupsResponse + > { + return unwrapAsync(workflowGroupsList( this, - id, options, )); } /** -<<<<<<< Updated upstream - * Get workflow groups -======= * Get workflow group ->>>>>>> Stashed changes * * @remarks * workflow group was previously named notification group */ -<<<<<<< Updated upstream - async list( - options?: RequestOptions, - ): Promise> { - return unwrapAsync(workflowGroupsList( - this, -======= async get( id: string, options?: RequestOptions, - ): Promise { + ): Promise< + operations.NotificationGroupsControllerGetNotificationGroupResponse + > { return unwrapAsync(workflowGroupsGet( this, id, ->>>>>>> Stashed changes options, )); } /** -<<<<<<< Updated upstream - * Get workflow group -======= - * Get workflow groups ->>>>>>> Stashed changes + * Update workflow group * * @remarks * workflow group was previously named notification group */ -<<<<<<< Updated upstream - async retrieve( + async update( + createNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto, id: string, options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowGroupsRetrieve( + ): Promise< + operations.NotificationGroupsControllerUpdateNotificationGroupResponse + > { + return unwrapAsync(workflowGroupsUpdate( this, + createNotificationGroupRequestDto, id, -======= - async list( - options?: RequestOptions, - ): Promise> { - return unwrapAsync(workflowGroupsList( - this, ->>>>>>> Stashed changes options, )); } /** - * Update workflow group + * Delete workflow group * * @remarks * workflow group was previously named notification group */ - async update( -<<<<<<< Updated upstream - id: string, - createNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto, -======= - createNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto, + async delete( id: string, ->>>>>>> Stashed changes options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowGroupsUpdate( + ): Promise< + operations.NotificationGroupsControllerDeleteNotificationGroupResponse + > { + return unwrapAsync(workflowGroupsDelete( this, -<<<<<<< Updated upstream - id, - createNotificationGroupRequestDto, -======= - createNotificationGroupRequestDto, id, ->>>>>>> Stashed changes options, )); } From a03b3f844f38f58ec8324acbde84156d6acea9cf Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:37:53 +0100 Subject: [PATCH 05/12] relaunch --- .../createintegrationrequestdtochannel.md | 15 +++ .../createsubscriberrequestdtodata.md | 14 +++ .../components/delayregularmetadataunit.md | 15 +++ .../deletemessageresponsedtostatus.md | 17 ++++ .../markallmessageasrequestdtomarkas.md | 17 ++++ .../markmessageactionasseendtopayload.md | 16 ++++ .../components/messageresponsedtooverrides.md | 16 ++++ ...ntrollerv1getcurrentenvironmentresponse.md | 28 ++++++ ...scontrollerv1listmyenvironmentsresponse.md | 30 ++++++ ...rollerv1listorganizationapikeysresponse.md | 28 ++++++ ...tscontrollerbroadcasteventtoallresponse.md | 26 +++++ .../eventscontrollercancelresponse.md | 25 +++++ .../eventscontrollertriggerbulkresponse.md | 28 ++++++ .../eventscontrollertriggerresponse.md | 26 +++++ ...executiondetailsfornotificationresponse.md | 40 ++++++++ ...ionscontrollercreateintegrationresponse.md | 36 +++++++ ...controllergetactiveintegrationsresponse.md | 38 ++++++++ ...ntrollergetwebhooksupportstatusresponse.md | 23 +++++ ...tionscontrollerlistintegrationsresponse.md | 38 ++++++++ ...ionscontrollerremoveintegrationresponse.md | 38 ++++++++ ...ntrollersetintegrationasprimaryresponse.md | 36 +++++++ ...controllerupdateintegrationbyidresponse.md | 36 +++++++ ...messagescontrollerdeletemessageresponse.md | 26 +++++ ...erdeletemessagesbytransactionidresponse.md | 21 ++++ .../messagescontrollergetmessagesresponse.md | 30 ++++++ ...ntrollercreatenotificationgroupresponse.md | 27 ++++++ ...ntrollerdeletenotificationgroupresponse.md | 26 +++++ ...scontrollergetnotificationgroupresponse.md | 27 ++++++ ...ontrollerlistnotificationgroupsresponse.md | 29 ++++++ ...ntrollerupdatenotificationgroupresponse.md | 27 ++++++ ...controllergetactivitygraphstatsresponse.md | 34 +++++++ ...tionscontrollergetactivitystatsresponse.md | 26 +++++ ...ationscontrollergetnotificationresponse.md | 27 ++++++ ...ionscontrollerlistnotificationsresponse.md | 30 ++++++ ...controllerbulkcreatesubscribersresponse.md | 21 ++++ ...riberscontrollerchataccessoauthresponse.md | 21 ++++ ...berscontrollerchatoauthcallbackresponse.md | 23 +++++ ...iberscontrollercreatesubscriberresponse.md | 30 ++++++ ...llerdeletesubscribercredentialsresponse.md | 21 ++++ ...scontrollergetnotificationsfeedresponse.md | 37 +++++++ ...rgetsubscriberpreferencebylevelresponse.md | 30 ++++++ ...scriberscontrollergetsubscriberresponse.md | 30 ++++++ ...criberscontrollergetunseencountresponse.md | 25 +++++ ...rollerlistsubscriberpreferencesresponse.md | 38 ++++++++ ...iberscontrollermarkactionasseenresponse.md | 47 +++++++++ ...rscontrollermarkallunreadasreadresponse.md | 23 +++++ ...criberscontrollermarkmessagesasresponse.md | 25 +++++ ...ntrollermodifysubscriberchannelresponse.md | 30 ++++++ ...iberscontrollerremovesubscriberresponse.md | 26 +++++ ...ntrollerupdatesubscriberchannelresponse.md | 30 ++++++ ...datesubscriberglobalpreferencesresponse.md | 36 +++++++ ...ollerupdatesubscriberonlineflagresponse.md | 30 ++++++ ...ollerupdatesubscriberpreferenceresponse.md | 36 +++++++ ...iberscontrollerupdatesubscriberresponse.md | 30 ++++++ .../topicscontrolleraddsubscribersresponse.md | 21 ++++ .../topicscontrollercreatetopicresponse.md | 25 +++++ .../topicscontrollerdeletetopicresponse.md | 21 ++++ .../topicscontrollergettopicresponse.md | 31 ++++++ ...icscontrollergettopicsubscriberresponse.md | 30 ++++++ .../topicscontrollerlisttopicsresponse.md | 38 ++++++++ ...picscontrollerremovesubscribersresponse.md | 21 ++++ .../topicscontrollerrenametopicresponse.md | 31 ++++++ ...nmentscontrollerv1getcurrentenvironment.ts | 96 +++++++++++++++++++ ...ironmentscontrollerv1listmyenvironments.ts | 96 +++++++++++++++++++ ...entscontrollerv1listorganizationapikeys.ts | 94 ++++++++++++++++++ .../eventscontrollerbroadcasteventtoall.ts | 95 ++++++++++++++++++ .../operations/eventscontrollertrigger.ts | 84 ++++++++++++++++ .../operations/eventscontrollertriggerbulk.ts | 87 +++++++++++++++++ ...integrationscontrollercreateintegration.ts | 96 +++++++++++++++++++ ...grationscontrollergetactiveintegrations.ts | 96 +++++++++++++++++++ .../integrationscontrollerlistintegrations.ts | 96 +++++++++++++++++++ ...groupscontrollercreatenotificationgroup.ts | 95 ++++++++++++++++++ ...ngroupscontrollerlistnotificationgroups.ts | 95 ++++++++++++++++++ ...notificationscontrollergetactivitystats.ts | 96 +++++++++++++++++++ ...scriberscontrollerbulkcreatesubscribers.ts | 89 +++++++++++++++++ .../subscriberscontrollercreatesubscriber.ts | 95 ++++++++++++++++++ .../operations/topicscontrollercreatetopic.ts | 87 +++++++++++++++++ 77 files changed, 3120 insertions(+) create mode 100644 docs/models/components/createintegrationrequestdtochannel.md create mode 100644 docs/models/components/createsubscriberrequestdtodata.md create mode 100644 docs/models/components/delayregularmetadataunit.md create mode 100644 docs/models/components/deletemessageresponsedtostatus.md create mode 100644 docs/models/components/markallmessageasrequestdtomarkas.md create mode 100644 docs/models/components/markmessageactionasseendtopayload.md create mode 100644 docs/models/components/messageresponsedtooverrides.md create mode 100644 docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md create mode 100644 docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md create mode 100644 docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md create mode 100644 docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md create mode 100644 docs/models/operations/eventscontrollercancelresponse.md create mode 100644 docs/models/operations/eventscontrollertriggerbulkresponse.md create mode 100644 docs/models/operations/eventscontrollertriggerresponse.md create mode 100644 docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md create mode 100644 docs/models/operations/integrationscontrollercreateintegrationresponse.md create mode 100644 docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md create mode 100644 docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md create mode 100644 docs/models/operations/integrationscontrollerlistintegrationsresponse.md create mode 100644 docs/models/operations/integrationscontrollerremoveintegrationresponse.md create mode 100644 docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md create mode 100644 docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md create mode 100644 docs/models/operations/messagescontrollerdeletemessageresponse.md create mode 100644 docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md create mode 100644 docs/models/operations/messagescontrollergetmessagesresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md create mode 100644 docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md create mode 100644 docs/models/operations/notificationscontrollergetactivitystatsresponse.md create mode 100644 docs/models/operations/notificationscontrollergetnotificationresponse.md create mode 100644 docs/models/operations/notificationscontrollerlistnotificationsresponse.md create mode 100644 docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md create mode 100644 docs/models/operations/subscriberscontrollerchataccessoauthresponse.md create mode 100644 docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md create mode 100644 docs/models/operations/subscriberscontrollercreatesubscriberresponse.md create mode 100644 docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetsubscriberresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetunseencountresponse.md create mode 100644 docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md create mode 100644 docs/models/operations/subscriberscontrollermarkactionasseenresponse.md create mode 100644 docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md create mode 100644 docs/models/operations/subscriberscontrollermarkmessagesasresponse.md create mode 100644 docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md create mode 100644 docs/models/operations/subscriberscontrollerremovesubscriberresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md create mode 100644 docs/models/operations/topicscontrolleraddsubscribersresponse.md create mode 100644 docs/models/operations/topicscontrollercreatetopicresponse.md create mode 100644 docs/models/operations/topicscontrollerdeletetopicresponse.md create mode 100644 docs/models/operations/topicscontrollergettopicresponse.md create mode 100644 docs/models/operations/topicscontrollergettopicsubscriberresponse.md create mode 100644 docs/models/operations/topicscontrollerlisttopicsresponse.md create mode 100644 docs/models/operations/topicscontrollerremovesubscribersresponse.md create mode 100644 docs/models/operations/topicscontrollerrenametopicresponse.md create mode 100644 src/models/operations/environmentscontrollerv1getcurrentenvironment.ts create mode 100644 src/models/operations/environmentscontrollerv1listmyenvironments.ts create mode 100644 src/models/operations/environmentscontrollerv1listorganizationapikeys.ts create mode 100644 src/models/operations/eventscontrollerbroadcasteventtoall.ts create mode 100644 src/models/operations/eventscontrollertrigger.ts create mode 100644 src/models/operations/eventscontrollertriggerbulk.ts create mode 100644 src/models/operations/integrationscontrollercreateintegration.ts create mode 100644 src/models/operations/integrationscontrollergetactiveintegrations.ts create mode 100644 src/models/operations/integrationscontrollerlistintegrations.ts create mode 100644 src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts create mode 100644 src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts create mode 100644 src/models/operations/notificationscontrollergetactivitystats.ts create mode 100644 src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts create mode 100644 src/models/operations/subscriberscontrollercreatesubscriber.ts create mode 100644 src/models/operations/topicscontrollercreatetopic.ts diff --git a/docs/models/components/createintegrationrequestdtochannel.md b/docs/models/components/createintegrationrequestdtochannel.md new file mode 100644 index 00000000..c908a7b9 --- /dev/null +++ b/docs/models/components/createintegrationrequestdtochannel.md @@ -0,0 +1,15 @@ +# CreateIntegrationRequestDtoChannel + +## Example Usage + +```typescript +import { CreateIntegrationRequestDtoChannel } from "@novu/api/models/components"; + +let value: CreateIntegrationRequestDtoChannel = "in_app"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/components/createsubscriberrequestdtodata.md b/docs/models/components/createsubscriberrequestdtodata.md new file mode 100644 index 00000000..f0b620c2 --- /dev/null +++ b/docs/models/components/createsubscriberrequestdtodata.md @@ -0,0 +1,14 @@ +# CreateSubscriberRequestDtoData + +## Example Usage + +```typescript +import { CreateSubscriberRequestDtoData } from "@novu/api/models/components"; + +let value: CreateSubscriberRequestDtoData = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/delayregularmetadataunit.md b/docs/models/components/delayregularmetadataunit.md new file mode 100644 index 00000000..579f0e83 --- /dev/null +++ b/docs/models/components/delayregularmetadataunit.md @@ -0,0 +1,15 @@ +# DelayRegularMetadataUnit + +## Example Usage + +```typescript +import { DelayRegularMetadataUnit } from "@novu/api/models/components"; + +let value: DelayRegularMetadataUnit = "hours"; +``` + +## Values + +```typescript +"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" +``` \ No newline at end of file diff --git a/docs/models/components/deletemessageresponsedtostatus.md b/docs/models/components/deletemessageresponsedtostatus.md new file mode 100644 index 00000000..60cab91b --- /dev/null +++ b/docs/models/components/deletemessageresponsedtostatus.md @@ -0,0 +1,17 @@ +# DeleteMessageResponseDtoStatus + +The status enum for the performed action + +## Example Usage + +```typescript +import { DeleteMessageResponseDtoStatus } from "@novu/api/models/components"; + +let value: DeleteMessageResponseDtoStatus = "deleted"; +``` + +## Values + +```typescript +"deleted" +``` \ No newline at end of file diff --git a/docs/models/components/markallmessageasrequestdtomarkas.md b/docs/models/components/markallmessageasrequestdtomarkas.md new file mode 100644 index 00000000..e6c8a0f7 --- /dev/null +++ b/docs/models/components/markallmessageasrequestdtomarkas.md @@ -0,0 +1,17 @@ +# MarkAllMessageAsRequestDtoMarkAs + +Mark all subscriber messages as read, unread, seen or unseen + +## Example Usage + +```typescript +import { MarkAllMessageAsRequestDtoMarkAs } from "@novu/api/models/components"; + +let value: MarkAllMessageAsRequestDtoMarkAs = "unseen"; +``` + +## Values + +```typescript +"read" | "seen" | "unread" | "unseen" +``` \ No newline at end of file diff --git a/docs/models/components/markmessageactionasseendtopayload.md b/docs/models/components/markmessageactionasseendtopayload.md new file mode 100644 index 00000000..f176f4e9 --- /dev/null +++ b/docs/models/components/markmessageactionasseendtopayload.md @@ -0,0 +1,16 @@ +# MarkMessageActionAsSeenDtoPayload + +Message action payload + +## Example Usage + +```typescript +import { MarkMessageActionAsSeenDtoPayload } from "@novu/api/models/components"; + +let value: MarkMessageActionAsSeenDtoPayload = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtooverrides.md b/docs/models/components/messageresponsedtooverrides.md new file mode 100644 index 00000000..f8131ed8 --- /dev/null +++ b/docs/models/components/messageresponsedtooverrides.md @@ -0,0 +1,16 @@ +# MessageResponseDtoOverrides + +Provider specific overrides used when triggering the notification + +## Example Usage + +```typescript +import { MessageResponseDtoOverrides } from "@novu/api/models/components"; + +let value: MessageResponseDtoOverrides = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md b/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md new file mode 100644 index 00000000..57876028 --- /dev/null +++ b/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md @@ -0,0 +1,28 @@ +# EnvironmentsControllerV1GetCurrentEnvironmentResponse + +## Example Usage + +```typescript +import { EnvironmentsControllerV1GetCurrentEnvironmentResponse } from "@novu/api/models/operations"; + +let value: EnvironmentsControllerV1GetCurrentEnvironmentResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + organizationId: "", + identifier: "", + parentId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.EnvironmentResponseDto](../../models/components/environmentresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md b/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md new file mode 100644 index 00000000..b91cef1e --- /dev/null +++ b/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md @@ -0,0 +1,30 @@ +# EnvironmentsControllerV1ListMyEnvironmentsResponse + +## Example Usage + +```typescript +import { EnvironmentsControllerV1ListMyEnvironmentsResponse } from "@novu/api/models/operations"; + +let value: EnvironmentsControllerV1ListMyEnvironmentsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + name: "", + organizationId: "", + identifier: "", + parentId: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.EnvironmentResponseDto](../../models/components/environmentresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md b/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md new file mode 100644 index 00000000..fb55d9a1 --- /dev/null +++ b/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md @@ -0,0 +1,28 @@ +# EnvironmentsControllerV1ListOrganizationApiKeysResponse + +## Example Usage + +```typescript +import { EnvironmentsControllerV1ListOrganizationApiKeysResponse } from "@novu/api/models/operations"; + +let value: EnvironmentsControllerV1ListOrganizationApiKeysResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + key: "", + userId: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ApiKey](../../models/components/apikey.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md b/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md new file mode 100644 index 00000000..27d634f0 --- /dev/null +++ b/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md @@ -0,0 +1,26 @@ +# EventsControllerBroadcastEventToAllResponse + +## Example Usage + +```typescript +import { EventsControllerBroadcastEventToAllResponse } from "@novu/api/models/operations"; + +let value: EventsControllerBroadcastEventToAllResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "processed", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollercancelresponse.md b/docs/models/operations/eventscontrollercancelresponse.md new file mode 100644 index 00000000..54202b4f --- /dev/null +++ b/docs/models/operations/eventscontrollercancelresponse.md @@ -0,0 +1,25 @@ +# EventsControllerCancelResponse + +## Example Usage + +```typescript +import { EventsControllerCancelResponse } from "@novu/api/models/operations"; + +let value: EventsControllerCancelResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + data: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DataBooleanDto](../../models/components/databooleandto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollertriggerbulkresponse.md b/docs/models/operations/eventscontrollertriggerbulkresponse.md new file mode 100644 index 00000000..774620e9 --- /dev/null +++ b/docs/models/operations/eventscontrollertriggerbulkresponse.md @@ -0,0 +1,28 @@ +# EventsControllerTriggerBulkResponse + +## Example Usage + +```typescript +import { EventsControllerTriggerBulkResponse } from "@novu/api/models/operations"; + +let value: EventsControllerTriggerBulkResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + acknowledged: false, + status: "subscriber_id_missing", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollertriggerresponse.md b/docs/models/operations/eventscontrollertriggerresponse.md new file mode 100644 index 00000000..0fd91b3a --- /dev/null +++ b/docs/models/operations/eventscontrollertriggerresponse.md @@ -0,0 +1,26 @@ +# EventsControllerTriggerResponse + +## Example Usage + +```typescript +import { EventsControllerTriggerResponse } from "@novu/api/models/operations"; + +let value: EventsControllerTriggerResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "no_workflow_steps_defined", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md new file mode 100644 index 00000000..161f7486 --- /dev/null +++ b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md @@ -0,0 +1,40 @@ +# ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse + +## Example Usage + +```typescript +import { ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse } from "@novu/api/models/operations"; + +let value: + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + organizationId: "", + jobId: "", + environmentId: "", + notificationId: "", + notificationTemplateId: "", + subscriberId: "", + transactionId: "", + channel: "push", + detail: "", + source: "Internal", + status: "Pending", + isTest: false, + isRetry: false, + }, + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ExecutionDetailsResponseDto](../../models/components/executiondetailsresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollercreateintegrationresponse.md b/docs/models/operations/integrationscontrollercreateintegrationresponse.md new file mode 100644 index 00000000..5a964ab9 --- /dev/null +++ b/docs/models/operations/integrationscontrollercreateintegrationresponse.md @@ -0,0 +1,36 @@ +# IntegrationsControllerCreateIntegrationResponse + +## Example Usage + +```typescript +import { IntegrationsControllerCreateIntegrationResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerCreateIntegrationResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "in_app", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md b/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md new file mode 100644 index 00000000..4b4c3e30 --- /dev/null +++ b/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md @@ -0,0 +1,38 @@ +# IntegrationsControllerGetActiveIntegrationsResponse + +## Example Usage + +```typescript +import { IntegrationsControllerGetActiveIntegrationsResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerGetActiveIntegrationsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "in_app", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md b/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md new file mode 100644 index 00000000..e68cdb44 --- /dev/null +++ b/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md @@ -0,0 +1,23 @@ +# IntegrationsControllerGetWebhookSupportStatusResponse + +## Example Usage + +```typescript +import { IntegrationsControllerGetWebhookSupportStatusResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerGetWebhookSupportStatusResponse = { + headers: { + "key": [ + "", + ], + }, + result: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerlistintegrationsresponse.md b/docs/models/operations/integrationscontrollerlistintegrationsresponse.md new file mode 100644 index 00000000..40dd8daa --- /dev/null +++ b/docs/models/operations/integrationscontrollerlistintegrationsresponse.md @@ -0,0 +1,38 @@ +# IntegrationsControllerListIntegrationsResponse + +## Example Usage + +```typescript +import { IntegrationsControllerListIntegrationsResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerListIntegrationsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "in_app", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerremoveintegrationresponse.md b/docs/models/operations/integrationscontrollerremoveintegrationresponse.md new file mode 100644 index 00000000..61c6a362 --- /dev/null +++ b/docs/models/operations/integrationscontrollerremoveintegrationresponse.md @@ -0,0 +1,38 @@ +# IntegrationsControllerRemoveIntegrationResponse + +## Example Usage + +```typescript +import { IntegrationsControllerRemoveIntegrationResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerRemoveIntegrationResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "chat", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md b/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md new file mode 100644 index 00000000..57678ea8 --- /dev/null +++ b/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md @@ -0,0 +1,36 @@ +# IntegrationsControllerSetIntegrationAsPrimaryResponse + +## Example Usage + +```typescript +import { IntegrationsControllerSetIntegrationAsPrimaryResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerSetIntegrationAsPrimaryResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "push", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md b/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md new file mode 100644 index 00000000..01b31772 --- /dev/null +++ b/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md @@ -0,0 +1,36 @@ +# IntegrationsControllerUpdateIntegrationByIdResponse + +## Example Usage + +```typescript +import { IntegrationsControllerUpdateIntegrationByIdResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerUpdateIntegrationByIdResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "push", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessageresponse.md b/docs/models/operations/messagescontrollerdeletemessageresponse.md new file mode 100644 index 00000000..f54d9dec --- /dev/null +++ b/docs/models/operations/messagescontrollerdeletemessageresponse.md @@ -0,0 +1,26 @@ +# MessagesControllerDeleteMessageResponse + +## Example Usage + +```typescript +import { MessagesControllerDeleteMessageResponse } from "@novu/api/models/operations"; + +let value: MessagesControllerDeleteMessageResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "deleted", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DeleteMessageResponseDto](../../models/components/deletemessageresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md new file mode 100644 index 00000000..eb117477 --- /dev/null +++ b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md @@ -0,0 +1,21 @@ +# MessagesControllerDeleteMessagesByTransactionIdResponse + +## Example Usage + +```typescript +import { MessagesControllerDeleteMessagesByTransactionIdResponse } from "@novu/api/models/operations"; + +let value: MessagesControllerDeleteMessagesByTransactionIdResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollergetmessagesresponse.md b/docs/models/operations/messagescontrollergetmessagesresponse.md new file mode 100644 index 00000000..e3444aa3 --- /dev/null +++ b/docs/models/operations/messagescontrollergetmessagesresponse.md @@ -0,0 +1,30 @@ +# MessagesControllerGetMessagesResponse + +## Example Usage + +```typescript +import { MessagesControllerGetMessagesResponse } from "@novu/api/models/operations"; + +let value: MessagesControllerGetMessagesResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + hasMore: false, + data: [ + "", + ], + pageSize: 6531.08, + page: 2532.92, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md new file mode 100644 index 00000000..30dd544a --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md @@ -0,0 +1,27 @@ +# NotificationGroupsControllerCreateNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerCreateNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerCreateNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + environmentId: "", + organizationId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md new file mode 100644 index 00000000..9d4b3783 --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md @@ -0,0 +1,26 @@ +# NotificationGroupsControllerDeleteNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerDeleteNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerDeleteNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "deleted", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DeleteNotificationGroupResponseDto](../../models/components/deletenotificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md new file mode 100644 index 00000000..0a5962b8 --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md @@ -0,0 +1,27 @@ +# NotificationGroupsControllerGetNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerGetNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerGetNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + environmentId: "", + organizationId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md b/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md new file mode 100644 index 00000000..bfc3148c --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md @@ -0,0 +1,29 @@ +# NotificationGroupsControllerListNotificationGroupsResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerListNotificationGroupsResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerListNotificationGroupsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + name: "", + environmentId: "", + organizationId: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md new file mode 100644 index 00000000..257ac529 --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md @@ -0,0 +1,27 @@ +# NotificationGroupsControllerUpdateNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerUpdateNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerUpdateNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + environmentId: "", + organizationId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md b/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md new file mode 100644 index 00000000..f8de7850 --- /dev/null +++ b/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md @@ -0,0 +1,34 @@ +# NotificationsControllerGetActivityGraphStatsResponse + +## Example Usage + +```typescript +import { NotificationsControllerGetActivityGraphStatsResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetActivityGraphStatsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + id: "", + count: 5680.45, + templates: [ + "", + ], + channels: [ + "push", + ], + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivityGraphStatesResponse](../../models/components/activitygraphstatesresponse.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitystatsresponse.md b/docs/models/operations/notificationscontrollergetactivitystatsresponse.md new file mode 100644 index 00000000..0b4e27c4 --- /dev/null +++ b/docs/models/operations/notificationscontrollergetactivitystatsresponse.md @@ -0,0 +1,26 @@ +# NotificationsControllerGetActivityStatsResponse + +## Example Usage + +```typescript +import { NotificationsControllerGetActivityStatsResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetActivityStatsResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + weeklySent: 7917.25, + monthlySent: 5288.95, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivityStatsResponseDto](../../models/components/activitystatsresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetnotificationresponse.md b/docs/models/operations/notificationscontrollergetnotificationresponse.md new file mode 100644 index 00000000..b8b29c82 --- /dev/null +++ b/docs/models/operations/notificationscontrollergetnotificationresponse.md @@ -0,0 +1,27 @@ +# NotificationsControllerGetNotificationResponse + +## Example Usage + +```typescript +import { NotificationsControllerGetNotificationResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetNotificationResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + transactionId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivityNotificationResponseDto](../../models/components/activitynotificationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollerlistnotificationsresponse.md b/docs/models/operations/notificationscontrollerlistnotificationsresponse.md new file mode 100644 index 00000000..220f95f4 --- /dev/null +++ b/docs/models/operations/notificationscontrollerlistnotificationsresponse.md @@ -0,0 +1,30 @@ +# NotificationsControllerListNotificationsResponse + +## Example Usage + +```typescript +import { NotificationsControllerListNotificationsResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerListNotificationsResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + hasMore: false, + data: [ + "", + ], + pageSize: 9636.63, + page: 3834.42, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md b/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md new file mode 100644 index 00000000..c03b7c54 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md @@ -0,0 +1,21 @@ +# SubscribersControllerBulkCreateSubscribersResponse + +## Example Usage + +```typescript +import { SubscribersControllerBulkCreateSubscribersResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerBulkCreateSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md b/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md new file mode 100644 index 00000000..45085487 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md @@ -0,0 +1,21 @@ +# SubscribersControllerChatAccessOauthResponse + +## Example Usage + +```typescript +import { SubscribersControllerChatAccessOauthResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerChatAccessOauthResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md new file mode 100644 index 00000000..1f17ff94 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md @@ -0,0 +1,23 @@ +# SubscribersControllerChatOauthCallbackResponse + +## Example Usage + +```typescript +import { SubscribersControllerChatOauthCallbackResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerChatOauthCallbackResponse = { + headers: { + "key": [ + "", + ], + }, + result: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [operations.SubscribersControllerChatOauthCallbackResponseBody](../../models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md b/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md new file mode 100644 index 00000000..12c5d2d3 --- /dev/null +++ b/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerCreateSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerCreateSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerCreateSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md new file mode 100644 index 00000000..96b2334f --- /dev/null +++ b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md @@ -0,0 +1,21 @@ +# SubscribersControllerDeleteSubscriberCredentialsResponse + +## Example Usage + +```typescript +import { SubscribersControllerDeleteSubscriberCredentialsResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerDeleteSubscriberCredentialsResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md new file mode 100644 index 00000000..8941f043 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md @@ -0,0 +1,37 @@ +# SubscribersControllerGetNotificationsFeedResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetNotificationsFeedResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetNotificationsFeedResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + page: 3595.08, + hasMore: false, + pageSize: 4370.32, + data: [ + { + hasMore: false, + data: [ + "", + ], + pageSize: 6976.31, + page: 602.25, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [operations.SubscribersControllerGetNotificationsFeedResponseBody](../../models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md new file mode 100644 index 00000000..4c8c5595 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerGetSubscriberPreferenceByLevelResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetSubscriberPreferenceByLevelResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetSubscriberPreferenceByLevelResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + preference: { + enabled: false, + channels: {}, + }, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.GetSubscriberPreferencesResponseDto](../../models/components/getsubscriberpreferencesresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberresponse.md b/docs/models/operations/subscriberscontrollergetsubscriberresponse.md new file mode 100644 index 00000000..1b9b405e --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetsubscriberresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerGetSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetunseencountresponse.md b/docs/models/operations/subscriberscontrollergetunseencountresponse.md new file mode 100644 index 00000000..6628d906 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetunseencountresponse.md @@ -0,0 +1,25 @@ +# SubscribersControllerGetUnseenCountResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetUnseenCountResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetUnseenCountResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + count: 1289.26, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UnseenCountResponse](../../models/components/unseencountresponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md new file mode 100644 index 00000000..bddcc179 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md @@ -0,0 +1,38 @@ +# SubscribersControllerListSubscriberPreferencesResponse + +## Example Usage + +```typescript +import { SubscribersControllerListSubscriberPreferencesResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerListSubscriberPreferencesResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + template: { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], + }, + preference: { + enabled: false, + channels: {}, + }, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md b/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md new file mode 100644 index 00000000..8880a20d --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md @@ -0,0 +1,47 @@ +# SubscribersControllerMarkActionAsSeenResponse + +## Example Usage + +```typescript +import { SubscribersControllerMarkActionAsSeenResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkActionAsSeenResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + templateId: "", + environmentId: "", + messageTemplateId: "", + organizationId: "", + notificationId: "", + subscriberId: "", + createdAt: "", + content: { + type: "text", + content: "", + }, + transactionId: "", + channel: "in_app", + read: false, + seen: false, + cta: { + data: {}, + }, + status: "sent", + errorId: "", + errorText: "", + payload: {}, + overrides: {}, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.MessageResponseDto](../../models/components/messageresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md b/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md new file mode 100644 index 00000000..a8d15823 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md @@ -0,0 +1,23 @@ +# SubscribersControllerMarkAllUnreadAsReadResponse + +## Example Usage + +```typescript +import { SubscribersControllerMarkAllUnreadAsReadResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkAllUnreadAsReadResponse = { + headers: { + "key": [ + "", + ], + }, + result: 3637.11, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md b/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md new file mode 100644 index 00000000..080c2291 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md @@ -0,0 +1,25 @@ +# SubscribersControllerMarkMessagesAsResponse + +## Example Usage + +```typescript +import { SubscribersControllerMarkMessagesAsResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkMessagesAsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + {}, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.MessageEntity](../../models/components/messageentity.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md b/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md new file mode 100644 index 00000000..8c1d1364 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerModifySubscriberChannelResponse + +## Example Usage + +```typescript +import { SubscribersControllerModifySubscriberChannelResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerModifySubscriberChannelResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md b/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md new file mode 100644 index 00000000..6b3a99da --- /dev/null +++ b/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md @@ -0,0 +1,26 @@ +# SubscribersControllerRemoveSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerRemoveSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerRemoveSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "deleted", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DeleteSubscriberResponseDto](../../models/components/deletesubscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md new file mode 100644 index 00000000..bf20d9c1 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerUpdateSubscriberChannelResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberChannelResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberChannelResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md new file mode 100644 index 00000000..48ccd5a7 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md @@ -0,0 +1,36 @@ +# SubscribersControllerUpdateSubscriberGlobalPreferencesResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberGlobalPreferencesResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberGlobalPreferencesResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + template: { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], + }, + preference: { + enabled: false, + channels: {}, + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md new file mode 100644 index 00000000..84bf07eb --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerUpdateSubscriberOnlineFlagResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberOnlineFlagResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberOnlineFlagResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md new file mode 100644 index 00000000..cf8d8d3b --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md @@ -0,0 +1,36 @@ +# SubscribersControllerUpdateSubscriberPreferenceResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberPreferenceResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberPreferenceResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + template: { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], + }, + preference: { + enabled: false, + channels: {}, + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md new file mode 100644 index 00000000..096c2fed --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerUpdateSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrolleraddsubscribersresponse.md b/docs/models/operations/topicscontrolleraddsubscribersresponse.md new file mode 100644 index 00000000..29fa2cf2 --- /dev/null +++ b/docs/models/operations/topicscontrolleraddsubscribersresponse.md @@ -0,0 +1,21 @@ +# TopicsControllerAddSubscribersResponse + +## Example Usage + +```typescript +import { TopicsControllerAddSubscribersResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerAddSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollercreatetopicresponse.md b/docs/models/operations/topicscontrollercreatetopicresponse.md new file mode 100644 index 00000000..a4d12ed3 --- /dev/null +++ b/docs/models/operations/topicscontrollercreatetopicresponse.md @@ -0,0 +1,25 @@ +# TopicsControllerCreateTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerCreateTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerCreateTopicResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + key: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.CreateTopicResponseDto](../../models/components/createtopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerdeletetopicresponse.md b/docs/models/operations/topicscontrollerdeletetopicresponse.md new file mode 100644 index 00000000..0016e20e --- /dev/null +++ b/docs/models/operations/topicscontrollerdeletetopicresponse.md @@ -0,0 +1,21 @@ +# TopicsControllerDeleteTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerDeleteTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerDeleteTopicResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicresponse.md b/docs/models/operations/topicscontrollergettopicresponse.md new file mode 100644 index 00000000..44458224 --- /dev/null +++ b/docs/models/operations/topicscontrollergettopicresponse.md @@ -0,0 +1,31 @@ +# TopicsControllerGetTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerGetTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerGetTopicResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.GetTopicResponseDto](../../models/components/gettopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicsubscriberresponse.md b/docs/models/operations/topicscontrollergettopicsubscriberresponse.md new file mode 100644 index 00000000..774ef9c1 --- /dev/null +++ b/docs/models/operations/topicscontrollergettopicsubscriberresponse.md @@ -0,0 +1,30 @@ +# TopicsControllerGetTopicSubscriberResponse + +## Example Usage + +```typescript +import { TopicsControllerGetTopicSubscriberResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerGetTopicSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + organizationId: "", + environmentId: "", + subscriberId: "", + topicId: "", + topicKey: "", + externalSubscriberId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TopicSubscriberDto](../../models/components/topicsubscriberdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerlisttopicsresponse.md b/docs/models/operations/topicscontrollerlisttopicsresponse.md new file mode 100644 index 00000000..5e2081d1 --- /dev/null +++ b/docs/models/operations/topicscontrollerlisttopicsresponse.md @@ -0,0 +1,38 @@ +# TopicsControllerListTopicsResponse + +## Example Usage + +```typescript +import { TopicsControllerListTopicsResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerListTopicsResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + data: [ + { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], + }, + ], + page: 2444.26, + pageSize: 1589.70, + totalCount: 1103.75, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.FilterTopicsResponseDto](../../models/components/filtertopicsresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerremovesubscribersresponse.md b/docs/models/operations/topicscontrollerremovesubscribersresponse.md new file mode 100644 index 00000000..bca5e233 --- /dev/null +++ b/docs/models/operations/topicscontrollerremovesubscribersresponse.md @@ -0,0 +1,21 @@ +# TopicsControllerRemoveSubscribersResponse + +## Example Usage + +```typescript +import { TopicsControllerRemoveSubscribersResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerRemoveSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerrenametopicresponse.md b/docs/models/operations/topicscontrollerrenametopicresponse.md new file mode 100644 index 00000000..2977f8cc --- /dev/null +++ b/docs/models/operations/topicscontrollerrenametopicresponse.md @@ -0,0 +1,31 @@ +# TopicsControllerRenameTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerRenameTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerRenameTopicResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.RenameTopicResponseDto](../../models/components/renametopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts b/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts new file mode 100644 index 00000000..a80d8b06 --- /dev/null +++ b/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EnvironmentsControllerV1GetCurrentEnvironmentResponse = { + headers: { [k: string]: Array }; + result: components.EnvironmentResponseDto; +}; + +/** @internal */ +export const EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema: + z.ZodType< + EnvironmentsControllerV1GetCurrentEnvironmentResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.EnvironmentResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.EnvironmentResponseDto$Outbound; +}; + +/** @internal */ +export const EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema: + z.ZodType< + EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound, + z.ZodTypeDef, + EnvironmentsControllerV1GetCurrentEnvironmentResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.EnvironmentResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EnvironmentsControllerV1GetCurrentEnvironmentResponse$ { + /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema` instead. */ + export const inboundSchema = + EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema; + /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema` instead. */ + export const outboundSchema = + EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema; + /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound` instead. */ + export type Outbound = + EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound; +} + +export function environmentsControllerV1GetCurrentEnvironmentResponseToJSON( + environmentsControllerV1GetCurrentEnvironmentResponse: + EnvironmentsControllerV1GetCurrentEnvironmentResponse, +): string { + return JSON.stringify( + EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema.parse( + environmentsControllerV1GetCurrentEnvironmentResponse, + ), + ); +} + +export function environmentsControllerV1GetCurrentEnvironmentResponseFromJSON( + jsonString: string, +): SafeParseResult< + EnvironmentsControllerV1GetCurrentEnvironmentResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EnvironmentsControllerV1GetCurrentEnvironmentResponse' from JSON`, + ); +} diff --git a/src/models/operations/environmentscontrollerv1listmyenvironments.ts b/src/models/operations/environmentscontrollerv1listmyenvironments.ts new file mode 100644 index 00000000..c2892d2f --- /dev/null +++ b/src/models/operations/environmentscontrollerv1listmyenvironments.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EnvironmentsControllerV1ListMyEnvironmentsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema: + z.ZodType< + EnvironmentsControllerV1ListMyEnvironmentsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.EnvironmentResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema: + z.ZodType< + EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound, + z.ZodTypeDef, + EnvironmentsControllerV1ListMyEnvironmentsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.EnvironmentResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EnvironmentsControllerV1ListMyEnvironmentsResponse$ { + /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema` instead. */ + export const inboundSchema = + EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema` instead. */ + export const outboundSchema = + EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound` instead. */ + export type Outbound = + EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound; +} + +export function environmentsControllerV1ListMyEnvironmentsResponseToJSON( + environmentsControllerV1ListMyEnvironmentsResponse: + EnvironmentsControllerV1ListMyEnvironmentsResponse, +): string { + return JSON.stringify( + EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema.parse( + environmentsControllerV1ListMyEnvironmentsResponse, + ), + ); +} + +export function environmentsControllerV1ListMyEnvironmentsResponseFromJSON( + jsonString: string, +): SafeParseResult< + EnvironmentsControllerV1ListMyEnvironmentsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EnvironmentsControllerV1ListMyEnvironmentsResponse' from JSON`, + ); +} diff --git a/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts b/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts new file mode 100644 index 00000000..d34a04cf --- /dev/null +++ b/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts @@ -0,0 +1,94 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EnvironmentsControllerV1ListOrganizationApiKeysResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema: + z.ZodType< + EnvironmentsControllerV1ListOrganizationApiKeysResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.ApiKey$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema: + z.ZodType< + EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound, + z.ZodTypeDef, + EnvironmentsControllerV1ListOrganizationApiKeysResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.ApiKey$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EnvironmentsControllerV1ListOrganizationApiKeysResponse$ { + /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema` instead. */ + export const inboundSchema = + EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema` instead. */ + export const outboundSchema = + EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound` instead. */ + export type Outbound = + EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound; +} + +export function environmentsControllerV1ListOrganizationApiKeysResponseToJSON( + environmentsControllerV1ListOrganizationApiKeysResponse: + EnvironmentsControllerV1ListOrganizationApiKeysResponse, +): string { + return JSON.stringify( + EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema + .parse(environmentsControllerV1ListOrganizationApiKeysResponse), + ); +} + +export function environmentsControllerV1ListOrganizationApiKeysResponseFromJSON( + jsonString: string, +): SafeParseResult< + EnvironmentsControllerV1ListOrganizationApiKeysResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'EnvironmentsControllerV1ListOrganizationApiKeysResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollerbroadcasteventtoall.ts b/src/models/operations/eventscontrollerbroadcasteventtoall.ts new file mode 100644 index 00000000..fe501917 --- /dev/null +++ b/src/models/operations/eventscontrollerbroadcasteventtoall.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EventsControllerBroadcastEventToAllResponse = { + headers: { [k: string]: Array }; + result: components.TriggerEventResponseDto; +}; + +/** @internal */ +export const EventsControllerBroadcastEventToAllResponse$inboundSchema: + z.ZodType< + EventsControllerBroadcastEventToAllResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.TriggerEventResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EventsControllerBroadcastEventToAllResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.TriggerEventResponseDto$Outbound; +}; + +/** @internal */ +export const EventsControllerBroadcastEventToAllResponse$outboundSchema: + z.ZodType< + EventsControllerBroadcastEventToAllResponse$Outbound, + z.ZodTypeDef, + EventsControllerBroadcastEventToAllResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.TriggerEventResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerBroadcastEventToAllResponse$ { + /** @deprecated use `EventsControllerBroadcastEventToAllResponse$inboundSchema` instead. */ + export const inboundSchema = + EventsControllerBroadcastEventToAllResponse$inboundSchema; + /** @deprecated use `EventsControllerBroadcastEventToAllResponse$outboundSchema` instead. */ + export const outboundSchema = + EventsControllerBroadcastEventToAllResponse$outboundSchema; + /** @deprecated use `EventsControllerBroadcastEventToAllResponse$Outbound` instead. */ + export type Outbound = EventsControllerBroadcastEventToAllResponse$Outbound; +} + +export function eventsControllerBroadcastEventToAllResponseToJSON( + eventsControllerBroadcastEventToAllResponse: + EventsControllerBroadcastEventToAllResponse, +): string { + return JSON.stringify( + EventsControllerBroadcastEventToAllResponse$outboundSchema.parse( + eventsControllerBroadcastEventToAllResponse, + ), + ); +} + +export function eventsControllerBroadcastEventToAllResponseFromJSON( + jsonString: string, +): SafeParseResult< + EventsControllerBroadcastEventToAllResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventsControllerBroadcastEventToAllResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventsControllerBroadcastEventToAllResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollertrigger.ts b/src/models/operations/eventscontrollertrigger.ts new file mode 100644 index 00000000..25a5fcaa --- /dev/null +++ b/src/models/operations/eventscontrollertrigger.ts @@ -0,0 +1,84 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EventsControllerTriggerResponse = { + headers: { [k: string]: Array }; + result: components.TriggerEventResponseDto; +}; + +/** @internal */ +export const EventsControllerTriggerResponse$inboundSchema: z.ZodType< + EventsControllerTriggerResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.TriggerEventResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type EventsControllerTriggerResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.TriggerEventResponseDto$Outbound; +}; + +/** @internal */ +export const EventsControllerTriggerResponse$outboundSchema: z.ZodType< + EventsControllerTriggerResponse$Outbound, + z.ZodTypeDef, + EventsControllerTriggerResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.TriggerEventResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerTriggerResponse$ { + /** @deprecated use `EventsControllerTriggerResponse$inboundSchema` instead. */ + export const inboundSchema = EventsControllerTriggerResponse$inboundSchema; + /** @deprecated use `EventsControllerTriggerResponse$outboundSchema` instead. */ + export const outboundSchema = EventsControllerTriggerResponse$outboundSchema; + /** @deprecated use `EventsControllerTriggerResponse$Outbound` instead. */ + export type Outbound = EventsControllerTriggerResponse$Outbound; +} + +export function eventsControllerTriggerResponseToJSON( + eventsControllerTriggerResponse: EventsControllerTriggerResponse, +): string { + return JSON.stringify( + EventsControllerTriggerResponse$outboundSchema.parse( + eventsControllerTriggerResponse, + ), + ); +} + +export function eventsControllerTriggerResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventsControllerTriggerResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerTriggerResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollertriggerbulk.ts b/src/models/operations/eventscontrollertriggerbulk.ts new file mode 100644 index 00000000..45aa1492 --- /dev/null +++ b/src/models/operations/eventscontrollertriggerbulk.ts @@ -0,0 +1,87 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EventsControllerTriggerBulkResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const EventsControllerTriggerBulkResponse$inboundSchema: z.ZodType< + EventsControllerTriggerBulkResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.TriggerEventResponseDto$inboundSchema), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type EventsControllerTriggerBulkResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const EventsControllerTriggerBulkResponse$outboundSchema: z.ZodType< + EventsControllerTriggerBulkResponse$Outbound, + z.ZodTypeDef, + EventsControllerTriggerBulkResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.TriggerEventResponseDto$outboundSchema), +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerTriggerBulkResponse$ { + /** @deprecated use `EventsControllerTriggerBulkResponse$inboundSchema` instead. */ + export const inboundSchema = + EventsControllerTriggerBulkResponse$inboundSchema; + /** @deprecated use `EventsControllerTriggerBulkResponse$outboundSchema` instead. */ + export const outboundSchema = + EventsControllerTriggerBulkResponse$outboundSchema; + /** @deprecated use `EventsControllerTriggerBulkResponse$Outbound` instead. */ + export type Outbound = EventsControllerTriggerBulkResponse$Outbound; +} + +export function eventsControllerTriggerBulkResponseToJSON( + eventsControllerTriggerBulkResponse: EventsControllerTriggerBulkResponse, +): string { + return JSON.stringify( + EventsControllerTriggerBulkResponse$outboundSchema.parse( + eventsControllerTriggerBulkResponse, + ), + ); +} + +export function eventsControllerTriggerBulkResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventsControllerTriggerBulkResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerTriggerBulkResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollercreateintegration.ts b/src/models/operations/integrationscontrollercreateintegration.ts new file mode 100644 index 00000000..8e603d05 --- /dev/null +++ b/src/models/operations/integrationscontrollercreateintegration.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerCreateIntegrationResponse = { + headers: { [k: string]: Array }; + result: components.IntegrationResponseDto; +}; + +/** @internal */ +export const IntegrationsControllerCreateIntegrationResponse$inboundSchema: + z.ZodType< + IntegrationsControllerCreateIntegrationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.IntegrationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerCreateIntegrationResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.IntegrationResponseDto$Outbound; +}; + +/** @internal */ +export const IntegrationsControllerCreateIntegrationResponse$outboundSchema: + z.ZodType< + IntegrationsControllerCreateIntegrationResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerCreateIntegrationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.IntegrationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerCreateIntegrationResponse$ { + /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerCreateIntegrationResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerCreateIntegrationResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerCreateIntegrationResponse$Outbound; +} + +export function integrationsControllerCreateIntegrationResponseToJSON( + integrationsControllerCreateIntegrationResponse: + IntegrationsControllerCreateIntegrationResponse, +): string { + return JSON.stringify( + IntegrationsControllerCreateIntegrationResponse$outboundSchema.parse( + integrationsControllerCreateIntegrationResponse, + ), + ); +} + +export function integrationsControllerCreateIntegrationResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerCreateIntegrationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerCreateIntegrationResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerCreateIntegrationResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollergetactiveintegrations.ts b/src/models/operations/integrationscontrollergetactiveintegrations.ts new file mode 100644 index 00000000..44eab8ee --- /dev/null +++ b/src/models/operations/integrationscontrollergetactiveintegrations.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerGetActiveIntegrationsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema: + z.ZodType< + IntegrationsControllerGetActiveIntegrationsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.IntegrationResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerGetActiveIntegrationsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema: + z.ZodType< + IntegrationsControllerGetActiveIntegrationsResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerGetActiveIntegrationsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.IntegrationResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerGetActiveIntegrationsResponse$ { + /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerGetActiveIntegrationsResponse$Outbound; +} + +export function integrationsControllerGetActiveIntegrationsResponseToJSON( + integrationsControllerGetActiveIntegrationsResponse: + IntegrationsControllerGetActiveIntegrationsResponse, +): string { + return JSON.stringify( + IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema.parse( + integrationsControllerGetActiveIntegrationsResponse, + ), + ); +} + +export function integrationsControllerGetActiveIntegrationsResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerGetActiveIntegrationsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerGetActiveIntegrationsResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollerlistintegrations.ts b/src/models/operations/integrationscontrollerlistintegrations.ts new file mode 100644 index 00000000..6b0b65f9 --- /dev/null +++ b/src/models/operations/integrationscontrollerlistintegrations.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerListIntegrationsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const IntegrationsControllerListIntegrationsResponse$inboundSchema: + z.ZodType< + IntegrationsControllerListIntegrationsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.IntegrationResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerListIntegrationsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const IntegrationsControllerListIntegrationsResponse$outboundSchema: + z.ZodType< + IntegrationsControllerListIntegrationsResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerListIntegrationsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.IntegrationResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerListIntegrationsResponse$ { + /** @deprecated use `IntegrationsControllerListIntegrationsResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerListIntegrationsResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerListIntegrationsResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerListIntegrationsResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerListIntegrationsResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerListIntegrationsResponse$Outbound; +} + +export function integrationsControllerListIntegrationsResponseToJSON( + integrationsControllerListIntegrationsResponse: + IntegrationsControllerListIntegrationsResponse, +): string { + return JSON.stringify( + IntegrationsControllerListIntegrationsResponse$outboundSchema.parse( + integrationsControllerListIntegrationsResponse, + ), + ); +} + +export function integrationsControllerListIntegrationsResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerListIntegrationsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerListIntegrationsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerListIntegrationsResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts b/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts new file mode 100644 index 00000000..df21b7d2 --- /dev/null +++ b/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupsControllerCreateNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.NotificationGroupResponseDto; +}; + +/** @internal */ +export const NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerCreateNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.NotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerCreateNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.NotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerCreateNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerCreateNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.NotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerCreateNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerCreateNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerCreateNotificationGroupResponseToJSON( + notificationGroupsControllerCreateNotificationGroupResponse: + NotificationGroupsControllerCreateNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerCreateNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerCreateNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerCreateNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerCreateNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts b/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts new file mode 100644 index 00000000..6c51dad2 --- /dev/null +++ b/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupsControllerListNotificationGroupsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerListNotificationGroupsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.NotificationGroupResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerListNotificationGroupsResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: Array; + }; + +/** @internal */ +export const NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerListNotificationGroupsResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerListNotificationGroupsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.NotificationGroupResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerListNotificationGroupsResponse$ { + /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerListNotificationGroupsResponse$Outbound; +} + +export function notificationGroupsControllerListNotificationGroupsResponseToJSON( + notificationGroupsControllerListNotificationGroupsResponse: + NotificationGroupsControllerListNotificationGroupsResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema + .parse(notificationGroupsControllerListNotificationGroupsResponse), + ); +} + +export function notificationGroupsControllerListNotificationGroupsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerListNotificationGroupsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerListNotificationGroupsResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollergetactivitystats.ts b/src/models/operations/notificationscontrollergetactivitystats.ts new file mode 100644 index 00000000..49af179c --- /dev/null +++ b/src/models/operations/notificationscontrollergetactivitystats.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationsControllerGetActivityStatsResponse = { + headers: { [k: string]: Array }; + result: components.ActivityStatsResponseDto; +}; + +/** @internal */ +export const NotificationsControllerGetActivityStatsResponse$inboundSchema: + z.ZodType< + NotificationsControllerGetActivityStatsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivityStatsResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerGetActivityStatsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivityStatsResponseDto$Outbound; +}; + +/** @internal */ +export const NotificationsControllerGetActivityStatsResponse$outboundSchema: + z.ZodType< + NotificationsControllerGetActivityStatsResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerGetActivityStatsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivityStatsResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetActivityStatsResponse$ { + /** @deprecated use `NotificationsControllerGetActivityStatsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetActivityStatsResponse$inboundSchema; + /** @deprecated use `NotificationsControllerGetActivityStatsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetActivityStatsResponse$outboundSchema; + /** @deprecated use `NotificationsControllerGetActivityStatsResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerGetActivityStatsResponse$Outbound; +} + +export function notificationsControllerGetActivityStatsResponseToJSON( + notificationsControllerGetActivityStatsResponse: + NotificationsControllerGetActivityStatsResponse, +): string { + return JSON.stringify( + NotificationsControllerGetActivityStatsResponse$outboundSchema.parse( + notificationsControllerGetActivityStatsResponse, + ), + ); +} + +export function notificationsControllerGetActivityStatsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetActivityStatsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetActivityStatsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetActivityStatsResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts b/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts new file mode 100644 index 00000000..bf66b66f --- /dev/null +++ b/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts @@ -0,0 +1,89 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerBulkCreateSubscribersResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerBulkCreateSubscribersResponse$inboundSchema: + z.ZodType< + SubscribersControllerBulkCreateSubscribersResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type SubscribersControllerBulkCreateSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerBulkCreateSubscribersResponse$outboundSchema: + z.ZodType< + SubscribersControllerBulkCreateSubscribersResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerBulkCreateSubscribersResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerBulkCreateSubscribersResponse$ { + /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerBulkCreateSubscribersResponse$inboundSchema; + /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerBulkCreateSubscribersResponse$outboundSchema; + /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerBulkCreateSubscribersResponse$Outbound; +} + +export function subscribersControllerBulkCreateSubscribersResponseToJSON( + subscribersControllerBulkCreateSubscribersResponse: + SubscribersControllerBulkCreateSubscribersResponse, +): string { + return JSON.stringify( + SubscribersControllerBulkCreateSubscribersResponse$outboundSchema.parse( + subscribersControllerBulkCreateSubscribersResponse, + ), + ); +} + +export function subscribersControllerBulkCreateSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerBulkCreateSubscribersResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerBulkCreateSubscribersResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerBulkCreateSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollercreatesubscriber.ts b/src/models/operations/subscriberscontrollercreatesubscriber.ts new file mode 100644 index 00000000..b2565f10 --- /dev/null +++ b/src/models/operations/subscriberscontrollercreatesubscriber.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerCreateSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerCreateSubscriberResponse$inboundSchema: + z.ZodType< + SubscribersControllerCreateSubscriberResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerCreateSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerCreateSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerCreateSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerCreateSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerCreateSubscriberResponse$ { + /** @deprecated use `SubscribersControllerCreateSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerCreateSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerCreateSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerCreateSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerCreateSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerCreateSubscriberResponse$Outbound; +} + +export function subscribersControllerCreateSubscriberResponseToJSON( + subscribersControllerCreateSubscriberResponse: + SubscribersControllerCreateSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerCreateSubscriberResponse$outboundSchema.parse( + subscribersControllerCreateSubscriberResponse, + ), + ); +} + +export function subscribersControllerCreateSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerCreateSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerCreateSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerCreateSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollercreatetopic.ts b/src/models/operations/topicscontrollercreatetopic.ts new file mode 100644 index 00000000..e26599ab --- /dev/null +++ b/src/models/operations/topicscontrollercreatetopic.ts @@ -0,0 +1,87 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerCreateTopicResponse = { + headers: { [k: string]: Array }; + result: components.CreateTopicResponseDto; +}; + +/** @internal */ +export const TopicsControllerCreateTopicResponse$inboundSchema: z.ZodType< + TopicsControllerCreateTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.CreateTopicResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerCreateTopicResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.CreateTopicResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerCreateTopicResponse$outboundSchema: z.ZodType< + TopicsControllerCreateTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerCreateTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.CreateTopicResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerCreateTopicResponse$ { + /** @deprecated use `TopicsControllerCreateTopicResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerCreateTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerCreateTopicResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerCreateTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerCreateTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerCreateTopicResponse$Outbound; +} + +export function topicsControllerCreateTopicResponseToJSON( + topicsControllerCreateTopicResponse: TopicsControllerCreateTopicResponse, +): string { + return JSON.stringify( + TopicsControllerCreateTopicResponse$outboundSchema.parse( + topicsControllerCreateTopicResponse, + ), + ); +} + +export function topicsControllerCreateTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerCreateTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerCreateTopicResponse' from JSON`, + ); +} From 9761c4298de72bb902c05be950e2e04ed1cd058b Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:26:52 +0100 Subject: [PATCH 06/12] relaunch --- .speakeasy/gen.lock | 77 +- .speakeasy/gen.yaml | 2 +- .../speakeasy-modifications-overlay.yaml | 494 +- .speakeasy/temp/applied_HkXoAbCOKh.yaml | 8848 ---------------- .speakeasy/temp/applied_MAxCyLGLwa.yaml | 8848 ---------------- .speakeasy/temp/applied_PRNWFJIfIy.yaml | 8848 ---------------- .speakeasy/temp/applied_oLKtLpgDDo.yaml | 8848 ---------------- .speakeasy/temp/downloaded_KiKCSXnkWs.yaml | 9166 ----------------- .speakeasy/temp/downloaded_UTufwKwdmv.yaml | 9166 ----------------- .speakeasy/temp/downloaded_cXfUyUrcKj.yaml | 9166 ----------------- .speakeasy/temp/downloaded_dDzgnLtqbI.yaml | 9166 ----------------- .speakeasy/temp/overlay_OzyUuenxwp.yaml | 8848 ---------------- .speakeasy/temp/overlay_ZRSXyvupfe.yaml | 8848 ---------------- .speakeasy/temp/overlay_fZoitFDeAQ.yaml | 8848 ---------------- .speakeasy/temp/overlay_hpRiUsGiJG.yaml | 8848 ---------------- README.md | 138 +- USAGE.md | 2 +- docs/models/components/markas.md | 2 +- .../components/messagemarkasrequestdto.md | 6 +- docs/models/components/unseencountresponse.md | 2 +- ...scriberscontrollergetunseencountrequest.md | 2 +- ...criberscontrollergetunseencountresponse.md | 2 +- ...scriberscontrollermarkmessagesasrequest.md | 6 +- docs/sdks/authentication/README.md | 20 +- docs/sdks/environments/README.md | 20 +- docs/sdks/executiondetails/README.md | 13 +- docs/sdks/integrations/README.md | 10 +- docs/sdks/integrationswebhooks/README.md | 80 - docs/sdks/messages/README.md | 10 +- docs/sdks/notifications/README.md | 10 +- docs/sdks/notificationsstats/README.md | 80 - docs/sdks/novu/README.md | 10 +- docs/sdks/novumessages/README.md | 175 +- .../novusubscribersnotifications/README.md | 86 - docs/sdks/novutopicssubscribers/README.md | 249 - docs/sdks/preferences/README.md | 94 +- docs/sdks/properties/README.md | 10 +- docs/sdks/stats/README.md | 83 +- docs/sdks/subscribers/README.md | 20 +- docs/sdks/subscribersmessages/README.md | 172 - docs/sdks/subscribersnotifications/README.md | 88 - docs/sdks/subscriberspreferences/README.md | 81 - docs/sdks/topics/README.md | 20 +- docs/sdks/workflowgroups/README.md | 12 +- jsr.json | 2 +- package-lock.json | 4 +- package.json | 2 +- sources/json-development.json | 173 +- src/funcs/cancel.ts | 154 - src/funcs/environmentsGetAll.ts | 124 - src/funcs/environmentsGetCurrent.ts | 124 - src/funcs/environmentsList.ts | 90 +- src/funcs/environmentsRetrieve.ts | 89 +- src/funcs/executionDetailsGet.ts | 157 - src/funcs/executionDetailsRetrieve.ts | 119 +- src/funcs/integrationsSetAsPrimary.ts | 118 +- src/funcs/integrationsSetPrimary.ts | 156 - src/funcs/integrationsWebhooksGetStatus.ts | 160 - src/funcs/integrationsWebhooksRetrieve.ts | 120 +- src/funcs/messagesGet.ts | 153 - src/funcs/messagesRetrieve.ts | 123 +- src/funcs/notificationsGet.ts | 151 - src/funcs/notificationsRetrieve.ts | 113 +- src/funcs/notificationsStatsGet.ts | 123 - src/funcs/notificationsStatsGraph.ts | 117 +- src/funcs/notificationsStatsRetrieve.ts | 86 +- ...ubscribersAuthenticationChatAccessOauth.ts | 130 +- ...rsAuthenticationChatAccessOauthCallBack.ts | 131 +- .../subscribersAuthenticationHandleOauth.ts | 160 - ...ribersAuthenticationHandleOauthCallback.ts | 161 - src/funcs/subscribersGet.ts | 162 - src/funcs/subscribersGetAll.ts | 203 - src/funcs/subscribersList.ts | 116 +- src/funcs/subscribersMessagesMark.ts | 159 - src/funcs/subscribersMessagesMarkAllAs.ts | 122 +- src/funcs/subscribersNotificationsGetFeed.ts | 159 - .../subscribersNotificationsGetUnseenCount.ts | 155 - src/funcs/subscribersNotificationsRetrieve.ts | 130 +- .../subscribersNotificationsUnseenCount.ts | 126 +- src/funcs/subscribersPreferencesGet.ts | 163 - src/funcs/subscribersPreferencesGetByLevel.ts | 161 - src/funcs/subscribersPreferencesList.ts | 123 +- .../subscribersPreferencesRetrieveByLevel.ts | 131 +- .../subscribersPropertiesUpdateOnlineFlag.ts | 124 +- ...subscribersPropertiesUpdateOnlineStatus.ts | 169 - src/funcs/subscribersRetrieve.ts | 120 +- src/funcs/topicsGet.ts | 152 - src/funcs/topicsGetAll.ts | 148 - src/funcs/topicsList.ts | 118 +- src/funcs/topicsRetrieve.ts | 112 +- src/funcs/topicsSubscribersAdd.ts | 162 - src/funcs/topicsSubscribersAssign.ts | 121 +- src/funcs/topicsSubscribersCheck.ts | 164 - src/funcs/topicsSubscribersDelete.ts | 123 +- src/funcs/topicsSubscribersRemove.ts | 164 - src/funcs/topicsSubscribersRetrieve.ts | 119 +- src/funcs/workflowGroupsGet.ts | 157 - src/funcs/workflowGroupsRetrieve.ts | 114 +- src/lib/config.ts | 4 +- src/sdk/authentication.ts | 12 +- src/sdk/environments.ts | 12 +- src/sdk/executiondetails.ts | 6 +- src/sdk/integrations.ts | 12 +- src/sdk/integrationswebhooks.ts | 27 - src/sdk/messages.ts | 6 +- src/sdk/notifications.ts | 6 +- src/sdk/notificationsstats.ts | 24 - src/sdk/novumessages.ts | 38 +- src/sdk/novunotifications.ts | 5 +- src/sdk/novusubscribers.ts | 35 +- src/sdk/novusubscribersnotifications.ts | 24 - src/sdk/novutopicssubscribers.ts | 70 - src/sdk/preferences.ts | 33 +- src/sdk/properties.ts | 6 +- src/sdk/sdk.ts | 44 +- src/sdk/stats.ts | 21 +- src/sdk/subscribers.ts | 22 +- src/sdk/subscribersmessages.ts | 42 - src/sdk/subscribersnotifications.ts | 24 - src/sdk/subscriberspreferences.ts | 30 - src/sdk/topics.ts | 20 +- src/sdk/webhooks.ts | 3 +- src/sdk/workflowgroups.ts | 6 +- 123 files changed, 2610 insertions(+), 114463 deletions(-) delete mode 100644 .speakeasy/temp/applied_HkXoAbCOKh.yaml delete mode 100644 .speakeasy/temp/applied_MAxCyLGLwa.yaml delete mode 100644 .speakeasy/temp/applied_PRNWFJIfIy.yaml delete mode 100644 .speakeasy/temp/applied_oLKtLpgDDo.yaml delete mode 100644 .speakeasy/temp/downloaded_KiKCSXnkWs.yaml delete mode 100644 .speakeasy/temp/downloaded_UTufwKwdmv.yaml delete mode 100644 .speakeasy/temp/downloaded_cXfUyUrcKj.yaml delete mode 100644 .speakeasy/temp/downloaded_dDzgnLtqbI.yaml delete mode 100644 .speakeasy/temp/overlay_OzyUuenxwp.yaml delete mode 100644 .speakeasy/temp/overlay_ZRSXyvupfe.yaml delete mode 100644 .speakeasy/temp/overlay_fZoitFDeAQ.yaml delete mode 100644 .speakeasy/temp/overlay_hpRiUsGiJG.yaml delete mode 100644 docs/sdks/integrationswebhooks/README.md delete mode 100644 docs/sdks/notificationsstats/README.md delete mode 100644 docs/sdks/novusubscribersnotifications/README.md delete mode 100644 docs/sdks/novutopicssubscribers/README.md delete mode 100644 docs/sdks/subscribersmessages/README.md delete mode 100644 docs/sdks/subscribersnotifications/README.md delete mode 100644 docs/sdks/subscriberspreferences/README.md delete mode 100644 src/funcs/cancel.ts delete mode 100644 src/funcs/environmentsGetAll.ts delete mode 100644 src/funcs/environmentsGetCurrent.ts delete mode 100644 src/funcs/executionDetailsGet.ts delete mode 100644 src/funcs/integrationsSetPrimary.ts delete mode 100644 src/funcs/integrationsWebhooksGetStatus.ts delete mode 100644 src/funcs/messagesGet.ts delete mode 100644 src/funcs/notificationsGet.ts delete mode 100644 src/funcs/notificationsStatsGet.ts delete mode 100644 src/funcs/subscribersAuthenticationHandleOauth.ts delete mode 100644 src/funcs/subscribersAuthenticationHandleOauthCallback.ts delete mode 100644 src/funcs/subscribersGet.ts delete mode 100644 src/funcs/subscribersGetAll.ts delete mode 100644 src/funcs/subscribersMessagesMark.ts delete mode 100644 src/funcs/subscribersNotificationsGetFeed.ts delete mode 100644 src/funcs/subscribersNotificationsGetUnseenCount.ts delete mode 100644 src/funcs/subscribersPreferencesGet.ts delete mode 100644 src/funcs/subscribersPreferencesGetByLevel.ts delete mode 100644 src/funcs/subscribersPropertiesUpdateOnlineStatus.ts delete mode 100644 src/funcs/topicsGet.ts delete mode 100644 src/funcs/topicsGetAll.ts delete mode 100644 src/funcs/topicsSubscribersAdd.ts delete mode 100644 src/funcs/topicsSubscribersCheck.ts delete mode 100644 src/funcs/topicsSubscribersRemove.ts delete mode 100644 src/funcs/workflowGroupsGet.ts delete mode 100644 src/sdk/integrationswebhooks.ts delete mode 100644 src/sdk/notificationsstats.ts delete mode 100644 src/sdk/novusubscribersnotifications.ts delete mode 100644 src/sdk/novutopicssubscribers.ts delete mode 100644 src/sdk/subscribersmessages.ts delete mode 100644 src/sdk/subscribersnotifications.ts delete mode 100644 src/sdk/subscriberspreferences.ts diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index e1805c0c..85c32c75 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 6bff3a53-3f0b-40b4-942f-ff70dc583ae5 management: - docChecksum: 23a1a47a0223e2cc7c8f22cbc9c329a8 + docChecksum: 94d6ad7aa34a4727c08897680b358b24 docVersion: "1.0" speakeasyVersion: 1.445.2 generationVersion: 2.461.4 - releaseVersion: 0.0.1-alpha.13 - configChecksum: e9a6d515e982f92b4c9784dd8e13c989 + releaseVersion: 0.0.1-alpha.19 + configChecksum: bd7eb4c6370d3a31d86a517a8ce6f715 published: true features: typescript: @@ -305,80 +305,77 @@ generatedFiles: - docs/sdks/environments/README.md - docs/sdks/executiondetails/README.md - docs/sdks/integrations/README.md - - docs/sdks/integrationswebhooks/README.md - docs/sdks/messages/README.md - docs/sdks/notifications/README.md - - docs/sdks/notificationsstats/README.md - docs/sdks/novu/README.md - docs/sdks/novumessages/README.md - - docs/sdks/novusubscribersnotifications/README.md - - docs/sdks/novutopicssubscribers/README.md + - docs/sdks/novunotifications/README.md + - docs/sdks/novusubscribers/README.md - docs/sdks/preferences/README.md - docs/sdks/properties/README.md - docs/sdks/stats/README.md - docs/sdks/subscribers/README.md - - docs/sdks/subscribersmessages/README.md - - docs/sdks/subscribersnotifications/README.md - - docs/sdks/subscriberspreferences/README.md - docs/sdks/topics/README.md + - docs/sdks/webhooks/README.md - docs/sdks/workflowgroups/README.md - jsr.json - package.json - src/core.ts - - src/funcs/cancel.ts + - src/funcs/cancelByTransactionId.ts - src/funcs/environmentsApiKeysList.ts - - src/funcs/environmentsGetAll.ts - - src/funcs/environmentsGetCurrent.ts - - src/funcs/executionDetailsGet.ts + - src/funcs/environmentsList.ts + - src/funcs/environmentsRetrieve.ts + - src/funcs/executionDetailsRetrieve.ts - src/funcs/integrationsCreate.ts - src/funcs/integrationsDelete.ts - src/funcs/integrationsList.ts - src/funcs/integrationsListActive.ts - - src/funcs/integrationsSetPrimary.ts + - src/funcs/integrationsSetAsPrimary.ts - src/funcs/integrationsUpdate.ts - - src/funcs/integrationsWebhooksGetStatus.ts + - src/funcs/integrationsWebhooksRetrieve.ts - src/funcs/messagesDelete.ts - src/funcs/messagesDeleteByTransactionId.ts - - src/funcs/messagesGet.ts - - src/funcs/notificationsGet.ts + - src/funcs/messagesRetrieve.ts - src/funcs/notificationsList.ts - - src/funcs/notificationsStatsGet.ts - - src/funcs/subscribersAuthenticationHandleOauth.ts - - src/funcs/subscribersAuthenticationHandleOauthCallback.ts + - src/funcs/notificationsRetrieve.ts + - src/funcs/notificationsStatsGraph.ts + - src/funcs/notificationsStatsRetrieve.ts + - src/funcs/subscribersAuthenticationChatAccessOauth.ts + - src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts - src/funcs/subscribersCreate.ts - src/funcs/subscribersCreateBulk.ts - src/funcs/subscribersCredentialsAppend.ts - src/funcs/subscribersCredentialsDelete.ts - src/funcs/subscribersCredentialsUpdate.ts - src/funcs/subscribersDelete.ts - - src/funcs/subscribersGet.ts - - src/funcs/subscribersGetAll.ts - - src/funcs/subscribersMessagesMark.ts + - src/funcs/subscribersList.ts - src/funcs/subscribersMessagesMarkAll.ts + - src/funcs/subscribersMessagesMarkAllAs.ts - src/funcs/subscribersMessagesUpdateAsSeen.ts - - src/funcs/subscribersNotificationsGetFeed.ts - - src/funcs/subscribersNotificationsGetUnseenCount.ts - - src/funcs/subscribersPreferencesGet.ts - - src/funcs/subscribersPreferencesGetByLevel.ts + - src/funcs/subscribersNotificationsRetrieve.ts + - src/funcs/subscribersNotificationsUnseenCount.ts + - src/funcs/subscribersPreferencesList.ts + - src/funcs/subscribersPreferencesRetrieveByLevel.ts - src/funcs/subscribersPreferencesUpdate.ts - src/funcs/subscribersPreferencesUpdateGlobal.ts - - src/funcs/subscribersPropertiesUpdateOnlineStatus.ts + - src/funcs/subscribersPropertiesUpdateOnlineFlag.ts + - src/funcs/subscribersRetrieve.ts - src/funcs/subscribersUpdate.ts - src/funcs/topicsCreate.ts - src/funcs/topicsDelete.ts - - src/funcs/topicsGet.ts - - src/funcs/topicsGetAll.ts + - src/funcs/topicsList.ts - src/funcs/topicsRename.ts - - src/funcs/topicsSubscribersAdd.ts - - src/funcs/topicsSubscribersCheck.ts - - src/funcs/topicsSubscribersRemove.ts + - src/funcs/topicsRetrieve.ts + - src/funcs/topicsSubscribersAssign.ts + - src/funcs/topicsSubscribersDelete.ts + - src/funcs/topicsSubscribersRetrieve.ts - src/funcs/trigger.ts - src/funcs/triggerBroadcast.ts - src/funcs/triggerBulk.ts - src/funcs/workflowGroupsCreate.ts - src/funcs/workflowGroupsDelete.ts - - src/funcs/workflowGroupsGet.ts - src/funcs/workflowGroupsList.ts + - src/funcs/workflowGroupsRetrieve.ts - src/funcs/workflowGroupsUpdate.ts - src/hooks/hooks.ts - src/hooks/index.ts @@ -549,22 +546,18 @@ generatedFiles: - src/sdk/executiondetails.ts - src/sdk/index.ts - src/sdk/integrations.ts - - src/sdk/integrationswebhooks.ts - src/sdk/messages.ts - src/sdk/notifications.ts - - src/sdk/notificationsstats.ts - src/sdk/novumessages.ts - - src/sdk/novusubscribersnotifications.ts - - src/sdk/novutopicssubscribers.ts + - src/sdk/novunotifications.ts + - src/sdk/novusubscribers.ts - src/sdk/preferences.ts - src/sdk/properties.ts - src/sdk/sdk.ts - src/sdk/stats.ts - src/sdk/subscribers.ts - - src/sdk/subscribersmessages.ts - - src/sdk/subscribersnotifications.ts - - src/sdk/subscriberspreferences.ts - src/sdk/topics.ts + - src/sdk/webhooks.ts - src/sdk/workflowgroups.ts - src/types/blobs.ts - src/types/constdatetime.ts diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index c18e2389..15db42f9 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false typescript: - version: 0.0.1-alpha.13 + version: 0.0.1-alpha.19 additionalDependencies: dependencies: {} devDependencies: {} diff --git a/.speakeasy/speakeasy-modifications-overlay.yaml b/.speakeasy/speakeasy-modifications-overlay.yaml index 7ad9e788..b9e34a58 100644 --- a/.speakeasy/speakeasy-modifications-overlay.yaml +++ b/.speakeasy/speakeasy-modifications-overlay.yaml @@ -1,464 +1,402 @@ overlay: 1.0.0 info: title: Speakeasy Modifications - version: 0.0.2 + version: 0.0.5 x-speakeasy-metadata: after: "" before: "" type: speakeasy-modifications actions: - - target: $["paths"]["/v1/notification-groups/{id}"]["patch"] - update: - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_updateNotificationGroup() - after: sdk.workflowGroups.update() + before: sdk.Subscribers.SubscribersController_removeSubscriber() + after: sdk.subscribers.delete() reviewed_at: 1732386050400 - created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}"]["delete"] - update: - x-speakeasy-group: subscribers.credentials - x-speakeasy-name-override: delete + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/notification-groups/{id}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Credentials.SubscribersController_deleteSubscriberCredentials() - after: sdk.subscribers.credentials.delete() + before: sdk.Workflow groups.NotificationGroupsController_getNotificationGroup() + after: sdk.workflowGroups.get() reviewed_at: 1732386050400 - created_at: 1732385969423 - - target: $["paths"]["/v1/notification-groups/{id}"]["delete"] - update: - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/notifications"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_deleteNotificationGroup() - after: sdk.workflowGroups.delete() + before: sdk.Notifications.NotificationsController_listNotifications() + after: sdk.notifications.list() reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-as"]["post"] - update: - x-speakeasy-group: subscribers.messages - x-speakeasy-name-override: mark + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Messages.markAllAs() - after: sdk.subscribers.messages.mark() + before: sdk.Subscribers.Credentials.append() + after: sdk.subscribers.credentials.append() reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/topics/{topicKey}/subscribers/removal"]["post"] - update: - x-speakeasy-group: topics.subscribers - x-speakeasy-name-override: remove + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/topics"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.Subscribers.TopicsController_removeSubscribers() - after: sdk.topics.subscribers.remove() + before: sdk.Topics.TopicsController_listTopics() + after: sdk.topics.getAll() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}"]["delete"] - update: - x-speakeasy-name-override: delete + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["put"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_removeSubscriber() - after: sdk.subscribers.delete() + before: sdk.Subscribers.SubscribersController_updateSubscriber() + after: sdk.subscribers.update() reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/topics"]["post"] - update: - x-speakeasy-name-override: create + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/integrations/{integrationId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_createTopic() - after: sdk.topics.create() + before: sdk.Integrations.IntegrationsController_removeIntegration() + after: sdk.integrations.delete() reviewed_at: 1732386050400 created_at: 1732385969423 + disabled: true - target: $["paths"]["/v1/notifications/graph/stats"]["get"] - update: - x-speakeasy-group: notificationsStats - x-speakeasy-name-override: get x-speakeasy-metadata: type: method-name before: sdk.Notifications.Stats.graph() after: sdk.notificationsStats.get() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}"]["get"] - update: - x-speakeasy-name-override: get + disabled: true + - target: $["paths"]["/v1/messages"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_getSubscriber() - after: sdk.subscribers.get() + before: sdk.Messages.MessagesController_getMessages() + after: sdk.messages.get() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/notifications/stats"]["get"] - update: - x-speakeasy-group: notifications.stats - x-speakeasy-name-override: get + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-all"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Notifications.Stats.NotificationsController_getActivityStats() - after: sdk.notifications.stats.get() + before: sdk.Subscribers.Messages.markAll() + after: sdk.subscribersMessages.markAll() reviewed_at: 1732386050400 - created_at: 1732385969423 - - target: $["paths"]["/v1/messages"]["get"] - update: - x-speakeasy-name-override: get + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/environments"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Messages.MessagesController_getMessages() - after: sdk.messages.get() + before: sdk.Environments.EnvironmentsControllerV1_listMyEnvironments() + after: sdk.environments.getAll() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["get"] - update: - x-speakeasy-group: subscribers.preferences - x-speakeasy-name-override: getByLevel + disabled: true + - target: $["paths"]["/v1/topics/{topicKey}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.retrieveByLevel() - after: sdk.subscribers.preferences.getByLevel() + before: sdk.Topics.TopicsController_deleteTopic() + after: sdk.topics.delete() reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}/online-status"]["patch"] - update: - x-speakeasy-name-override: updateOnlineStatus + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/topics"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.properties.updateOnlineFlag() - after: sdk.subscribers.properties.updateOnlineStatus() + before: sdk.Topics.TopicsController_createTopic() + after: sdk.topics.create() reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["get"] - update: - x-speakeasy-group: subscribers.preferences - x-speakeasy-name-override: get + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/notifications/stats"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.SubscribersController_listSubscriberPreferences() - after: sdk.subscribers.preferences.get() + before: sdk.Notifications.Stats.NotificationsController_getActivityStats() + after: sdk.notifications.stats.get() reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/integrations/{integrationId}"]["delete"] - update: - x-speakeasy-name-override: delete + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_removeIntegration() - after: sdk.integrations.delete() + before: sdk.Subscribers.SubscribersController_getSubscriber() + after: sdk.subscribers.get() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-all"]["post"] - update: - x-speakeasy-group: subscribersMessages + disabled: true + - target: $["paths"]["/v1/integrations"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Messages.markAll() - after: sdk.subscribersMessages.markAll() + before: sdk.Integrations.IntegrationsController_createIntegration() + after: sdk.integrations.create() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/notifications/{notificationId}"]["get"] - update: - x-speakeasy-name-override: get + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Notifications.NotificationsController_getNotification() - after: sdk.notifications.get() + before: sdk.Subscribers.Preferences.updateGlobal() + after: sdk.subscribersPreferences.updateGlobal() reviewed_at: 1732386050400 - created_at: 1732385969423 - - target: $["paths"]["/v1/topics/{topicKey}/subscribers/{externalSubscriberId}"]["get"] - update: - x-speakeasy-group: topics.subscribers - x-speakeasy-name-override: check + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/environments/api-keys"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.Subscribers.TopicsController_getTopicSubscriber() - after: sdk.topics.subscribers.check() + before: sdk.Environments.ApiKeys.EnvironmentsControllerV1_listOrganizationApiKeys() + after: sdk.environments.apiKeys.list() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/unseen"]["get"] - update: - x-speakeasy-group: subscribersNotifications - x-speakeasy-name-override: getUnseenCount + disabled: true + - target: $["paths"]["/v1/execution-details"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Notifications.unseenCount() - after: sdk.subscribersNotifications.getUnseenCount() + before: sdk.Execution Details.ExecutionDetailsController_getExecutionDetailsForNotification() + after: sdk.executionDetails.get() reviewed_at: 1732386050400 - created_at: 1732385969423 - - target: $["paths"]["/v1/integrations"]["get"] - update: - x-speakeasy-name-override: list + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/topics/{topicKey}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_listIntegrations() - after: sdk.integrations.list() + before: sdk.Topics.TopicsController_getTopic() + after: sdk.topics.get() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback"]["get"] - update: - x-speakeasy-group: subscribers.authentication - x-speakeasy-name-override: handleOauthCallback + disabled: true + - target: $["paths"]["/v1/notification-groups"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Authentication.chatAccessOauthCallBack() - after: sdk.subscribers.authentication.handleOauthCallback() + before: sdk.Workflow groups.NotificationGroupsController_createNotificationGroup() + after: sdk.workflowGroups.create() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/notification-groups/{id}"]["get"] - update: - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_getNotificationGroup() - after: sdk.workflowGroups.get() + before: sdk.Subscribers.Credentials.SubscribersController_deleteSubscriberCredentials() + after: sdk.subscribers.credentials.delete() reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/topics/{topicKey}/subscribers"]["post"] - update: - x-speakeasy-group: topics.subscribers - x-speakeasy-name-override: add + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/unseen"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.Subscribers.assign() - after: sdk.topics.subscribers.add() + before: sdk.Subscribers.Notifications.unseenCount() + after: sdk.subscribersNotifications.getUnseenCount() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}"]["put"] - update: - x-speakeasy-name-override: update + disabled: true + - target: $["paths"]["/v1/integrations/{integrationId}"]["put"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_updateSubscriber() - after: sdk.subscribers.update() + before: sdk.Integrations.IntegrationsController_updateIntegrationById() + after: sdk.integrations.update() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/environments/api-keys"]["get"] - update: - x-speakeasy-group: environments.apiKeys - x-speakeasy-name-override: list + disabled: true + - target: $["paths"]["/v1/notification-groups"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Environments.ApiKeys.EnvironmentsControllerV1_listOrganizationApiKeys() - after: sdk.environments.apiKeys.list() + before: sdk.Workflow groups.NotificationGroupsController_listNotificationGroups() + after: sdk.workflowGroups.list() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/topics/{topicKey}"]["delete"] - update: - x-speakeasy-name-override: delete + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/online-status"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_deleteTopic() - after: sdk.topics.delete() + before: sdk.Subscribers.properties.updateOnlineFlag() + after: sdk.subscribers.properties.updateOnlineStatus() + reviewed_at: 1732386050400 + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback"]["get"] + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Authentication.chatAccessOauthCallBack() + after: sdk.subscribers.authentication.handleOauthCallback() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/messages/{messageId}"]["delete"] - update: - x-speakeasy-name-override: delete + disabled: true + - target: $["paths"]["/v1/integrations"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Messages.MessagesController_deleteMessage() - after: sdk.messages.delete() + before: sdk.Integrations.IntegrationsController_listIntegrations() + after: sdk.integrations.list() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["put"] - update: - x-speakeasy-group: subscribers.credentials - x-speakeasy-name-override: update + disabled: true + - target: $["paths"]["/v1/notification-groups/{id}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Credentials.SubscribersController_updateSubscriberChannel() - after: sdk.subscribers.credentials.update() + before: sdk.Workflow groups.NotificationGroupsController_deleteNotificationGroup() + after: sdk.workflowGroups.delete() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/environments"]["get"] - update: - x-speakeasy-name-override: getAll + disabled: true + - target: $["paths"]["/v1/notification-groups/{id}"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Environments.EnvironmentsControllerV1_listMyEnvironments() - after: sdk.environments.getAll() + before: sdk.Workflow groups.NotificationGroupsController_updateNotificationGroup() + after: sdk.workflowGroups.update() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/integrations/{integrationId}"]["put"] + disabled: true + - target: $["paths"]["/v1/events/trigger/{transactionId}"]["delete"] update: - x-speakeasy-name-override: update + x-speakeasy-name-override: cancelByTransactionId x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_updateIntegrationById() - after: sdk.integrations.update() + before: sdk.Events.cancel() + after: sdk.events.cancelByTransactionId() + reviewed_at: 1732563929240 + created_at: 1732563888541 + - target: $["paths"]["/v1/integrations/webhook/provider/{providerOrIntegrationId}/status"]["get"] + x-speakeasy-metadata: + type: method-name + before: sdk.Integrations.Webhooks.IntegrationsController_getWebhookSupportStatus() + after: sdk.integrationsWebhooks.getStatus() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 + disabled: true - target: $["paths"]["/v1/subscribers"]["get"] - update: - x-speakeasy-name-override: getAll x-speakeasy-metadata: type: method-name before: sdk.Subscribers.SubscribersController_listSubscribers() after: sdk.subscribers.getAll() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["patch"] - update: - x-speakeasy-group: subscribers.credentials + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Credentials.append() - after: sdk.subscribers.credentials.append() + before: sdk.Subscribers.Authentication.chatAccessOauth() + after: sdk.subscribers.authentication.handleOauth() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/notification-groups"]["post"] - update: - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create + disabled: true + - target: $["paths"]["/v1/subscribers"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_createNotificationGroup() - after: sdk.workflowGroups.create() + before: sdk.Subscribers.SubscribersController_createSubscriber() + after: sdk.subscribers.create() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/notification-groups"]["get"] - update: - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_listNotificationGroups() - after: sdk.workflowGroups.list() + before: sdk.Subscribers.Preferences.retrieveByLevel() + after: sdk.subscribers.preferences.getByLevel() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth"]["get"] - update: - x-speakeasy-group: subscribers.authentication - x-speakeasy-name-override: handleOauth + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["put"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Authentication.chatAccessOauth() - after: sdk.subscribers.authentication.handleOauth() + before: sdk.Subscribers.Credentials.SubscribersController_updateSubscriberChannel() + after: sdk.subscribers.credentials.update() reviewed_at: 1732386050400 - created_at: 1732385969423 - - target: $["paths"]["/v1/notifications"]["get"] - update: - x-speakeasy-name-override: list + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/topics/{topicKey}/subscribers"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Notifications.NotificationsController_listNotifications() - after: sdk.notifications.list() + before: sdk.Topics.Subscribers.assign() + after: sdk.topics.subscribers.add() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["patch"] - update: - x-speakeasy-group: subscribersPreferences + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.updateGlobal() - after: sdk.subscribersPreferences.updateGlobal() + before: sdk.Subscribers.Preferences.SubscribersController_listSubscriberPreferences() + after: sdk.subscribers.preferences.get() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["patch"] - update: - x-speakeasy-group: subscribers.preferences - x-speakeasy-name-override: update + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.SubscribersController_updateSubscriberPreference() - after: sdk.subscribers.preferences.update() + before: sdk.Subscribers.Messages.updateAsSeen() + after: sdk.subscribersMessages.updateAsSeen() reviewed_at: 1732386050400 - created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/feed"]["get"] - update: - x-speakeasy-group: subscribers.notifications - x-speakeasy-name-override: getFeed + created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/{externalSubscriberId}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Notifications.SubscribersController_getNotificationsFeed() - after: sdk.subscribers.notifications.getFeed() + before: sdk.Topics.Subscribers.TopicsController_getTopicSubscriber() + after: sdk.topics.subscribers.check() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/topics"]["get"] - update: - x-speakeasy-name-override: getAll + disabled: true + - target: $["paths"]["/v1/environments/me"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_listTopics() - after: sdk.topics.getAll() + before: sdk.Environments.EnvironmentsControllerV1_getCurrentEnvironment() + after: sdk.environments.getCurrent() reviewed_at: 1732386050400 created_at: 1732385969424 + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-as"]["post"] + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Messages.markAllAs() + after: sdk.subscribers.messages.mark() + reviewed_at: 1732386050400 + created_at: 1732385969424 + disabled: true - target: $["paths"]["/v1/integrations/{integrationId}/set-primary"]["post"] - update: - x-speakeasy-name-override: setPrimary x-speakeasy-metadata: type: method-name before: sdk.Integrations.setAsPrimary() after: sdk.integrations.setPrimary() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/execution-details"]["get"] - update: - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - x-speakeasy-metadata: - type: method-name - before: sdk.Execution Details.ExecutionDetailsController_getExecutionDetailsForNotification() - after: sdk.executionDetails.get() - reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/integrations/webhook/provider/{providerOrIntegrationId}/status"]["get"] - update: - x-speakeasy-group: integrationsWebhooks - x-speakeasy-name-override: getStatus + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/feed"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.Webhooks.IntegrationsController_getWebhookSupportStatus() - after: sdk.integrationsWebhooks.getStatus() + before: sdk.Subscribers.Notifications.SubscribersController_getNotificationsFeed() + after: sdk.subscribers.notifications.getFeed() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/subscribers"]["post"] - update: - x-speakeasy-name-override: create + disabled: true + - target: $["paths"]["/v1/notifications/{notificationId}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_createSubscriber() - after: sdk.subscribers.create() + before: sdk.Notifications.NotificationsController_getNotification() + after: sdk.notifications.get() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/topics/{topicKey}"]["get"] - update: - x-speakeasy-name-override: get + disabled: true + - target: $["paths"]["/v1/messages/{messageId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_getTopic() - after: sdk.topics.get() + before: sdk.Messages.MessagesController_deleteMessage() + after: sdk.messages.delete() reviewed_at: 1732386050400 created_at: 1732385969423 - - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}"]["post"] - update: - x-speakeasy-group: subscribersMessages - x-speakeasy-metadata: - type: method-name - before: sdk.Subscribers.Messages.updateAsSeen() - after: sdk.subscribersMessages.updateAsSeen() - reviewed_at: 1732386050400 - created_at: 1732385969424 - - target: $["paths"]["/v1/integrations"]["post"] - update: - x-speakeasy-name-override: create + disabled: true + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/removal"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_createIntegration() - after: sdk.integrations.create() + before: sdk.Topics.Subscribers.TopicsController_removeSubscribers() + after: sdk.topics.subscribers.remove() reviewed_at: 1732386050400 created_at: 1732385969424 - - target: $["paths"]["/v1/environments/me"]["get"] - update: - x-speakeasy-name-override: getCurrent + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Environments.EnvironmentsControllerV1_getCurrentEnvironment() - after: sdk.environments.getCurrent() + before: sdk.Subscribers.Preferences.SubscribersController_updateSubscriberPreference() + after: sdk.subscribers.preferences.update() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 + disabled: true diff --git a/.speakeasy/temp/applied_HkXoAbCOKh.yaml b/.speakeasy/temp/applied_HkXoAbCOKh.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/applied_HkXoAbCOKh.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/applied_MAxCyLGLwa.yaml b/.speakeasy/temp/applied_MAxCyLGLwa.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/applied_MAxCyLGLwa.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/applied_PRNWFJIfIy.yaml b/.speakeasy/temp/applied_PRNWFJIfIy.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/applied_PRNWFJIfIy.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/applied_oLKtLpgDDo.yaml b/.speakeasy/temp/applied_oLKtLpgDDo.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/applied_oLKtLpgDDo.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_KiKCSXnkWs.yaml b/.speakeasy/temp/downloaded_KiKCSXnkWs.yaml deleted file mode 100644 index 8e0ac771..00000000 --- a/.speakeasy/temp/downloaded_KiKCSXnkWs.yaml +++ /dev/null @@ -1,9166 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: Environments.ApiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: |2- - - Trigger event is the main (and only) way to send notifications to subscribers. - The trigger identifier is used to match the particular workflow associated with it. - Additional information can be passed according the body interface below. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: |2- - - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to - send announcements, etc. - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: |2- - - Using a previously generated transactionId during the event trigger, - will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: Notifications.Stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: graph - x-speakeasy-group: Notifications.Stats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. - Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are - successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on - the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that - organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that - are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: Integrations.Webhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported - or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setAsPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and - `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will - be later used to receive notifications, and access notification feeds. - Communication credentials such as email, phone number, and 3 rd party - credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: |2- - - Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - The bulk API is limited to 500 subscribers per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: Subscribers.Credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: Subscribers.Credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: Subscribers.Credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineFlag - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: retrieveByLevel - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: Subscribers.Notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string - like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: unseenCount - x-speakeasy-group: Subscribers.Notifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: markAllAs - x-speakeasy-group: Subscribers.Messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: Subscribers.Messages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. - Optionally you can pass feed id (or array) to mark messages of a - particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: Subscribers.Messages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: chatAccessOauthCallBack - x-speakeasy-group: Subscribers.Authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: chatAccessOauth - x-speakeasy-group: Subscribers.Authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query - parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of - message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query - parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: assign - x-speakeasy-group: Topics.Subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: Topics.Subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: Topics.Subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it - can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. - Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more - details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to - trigger workflows, and enable you to send notifications to subscribers - based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by - a workflow acting as a message blueprint. Notifications can be individual - or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your - favorite delivery provider. During the runtime of the API, the - Integrations Store is responsible for storing the configurations of all - the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure - to wrap content of email notifications. Layouts can be manipulated and - assigned to new or existing workflows within the Novu platform, allowing - users to create, manage, and assign these layouts to workflows, so they - can be reused to structure the appearance of notifications sent through - the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a - container for the logic and blueprint that are associated with a type of - notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same - functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous - to a pending pull request in git, enabling you to test changes before they - are applied to your environment and atomically apply them when you are - ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your - data and configuration. This means that subscribers, and preferences - created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for - a domain or subdomain. The feature parses the contents of the email and - POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing - message associated with its relevant metadata. This can be used to monitor - activity and discover potential issues with a specific provider or a - channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have - organizations, they are referred to as tenants. Tenants in Novu provides - the ability to tailor specific notification experiences to users of - different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a - particular channel. Messages contain information about the request that - triggered its delivery, a view of the data sent to the recipient, and a - timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each - organization you create has its own separate integration store, workflows, - subscribers, and API keys. This separation of resources allows you to - manage multi-tenant environments and separate domains within a single - account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They - provided detailed information on the execution of a workflow, including - the status of each step, the input and output of each step, and the - overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey - ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This - identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the workflow, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - Existing tenants will be updated with the provided details. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. - This identifier can be found on the template page. - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the template, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - If a new tenant object is provided, we will create a new tenant. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be - obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given - provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the - subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and - should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this - workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the - workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the - Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the - topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. - The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be - refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token - bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that - was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_UTufwKwdmv.yaml b/.speakeasy/temp/downloaded_UTufwKwdmv.yaml deleted file mode 100644 index 8e0ac771..00000000 --- a/.speakeasy/temp/downloaded_UTufwKwdmv.yaml +++ /dev/null @@ -1,9166 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: Environments.ApiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: |2- - - Trigger event is the main (and only) way to send notifications to subscribers. - The trigger identifier is used to match the particular workflow associated with it. - Additional information can be passed according the body interface below. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: |2- - - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to - send announcements, etc. - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: |2- - - Using a previously generated transactionId during the event trigger, - will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: Notifications.Stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: graph - x-speakeasy-group: Notifications.Stats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. - Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are - successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on - the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that - organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that - are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: Integrations.Webhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported - or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setAsPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and - `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will - be later used to receive notifications, and access notification feeds. - Communication credentials such as email, phone number, and 3 rd party - credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: |2- - - Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - The bulk API is limited to 500 subscribers per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: Subscribers.Credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: Subscribers.Credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: Subscribers.Credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineFlag - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: retrieveByLevel - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: Subscribers.Notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string - like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: unseenCount - x-speakeasy-group: Subscribers.Notifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: markAllAs - x-speakeasy-group: Subscribers.Messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: Subscribers.Messages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. - Optionally you can pass feed id (or array) to mark messages of a - particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: Subscribers.Messages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: chatAccessOauthCallBack - x-speakeasy-group: Subscribers.Authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: chatAccessOauth - x-speakeasy-group: Subscribers.Authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query - parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of - message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query - parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: assign - x-speakeasy-group: Topics.Subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: Topics.Subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: Topics.Subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it - can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. - Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more - details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to - trigger workflows, and enable you to send notifications to subscribers - based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by - a workflow acting as a message blueprint. Notifications can be individual - or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your - favorite delivery provider. During the runtime of the API, the - Integrations Store is responsible for storing the configurations of all - the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure - to wrap content of email notifications. Layouts can be manipulated and - assigned to new or existing workflows within the Novu platform, allowing - users to create, manage, and assign these layouts to workflows, so they - can be reused to structure the appearance of notifications sent through - the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a - container for the logic and blueprint that are associated with a type of - notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same - functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous - to a pending pull request in git, enabling you to test changes before they - are applied to your environment and atomically apply them when you are - ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your - data and configuration. This means that subscribers, and preferences - created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for - a domain or subdomain. The feature parses the contents of the email and - POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing - message associated with its relevant metadata. This can be used to monitor - activity and discover potential issues with a specific provider or a - channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have - organizations, they are referred to as tenants. Tenants in Novu provides - the ability to tailor specific notification experiences to users of - different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a - particular channel. Messages contain information about the request that - triggered its delivery, a view of the data sent to the recipient, and a - timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each - organization you create has its own separate integration store, workflows, - subscribers, and API keys. This separation of resources allows you to - manage multi-tenant environments and separate domains within a single - account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They - provided detailed information on the execution of a workflow, including - the status of each step, the input and output of each step, and the - overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey - ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This - identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the workflow, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - Existing tenants will be updated with the provided details. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. - This identifier can be found on the template page. - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the template, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - If a new tenant object is provided, we will create a new tenant. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be - obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given - provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the - subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and - should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this - workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the - workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the - Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the - topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. - The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be - refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token - bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that - was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_cXfUyUrcKj.yaml b/.speakeasy/temp/downloaded_cXfUyUrcKj.yaml deleted file mode 100644 index 8e0ac771..00000000 --- a/.speakeasy/temp/downloaded_cXfUyUrcKj.yaml +++ /dev/null @@ -1,9166 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: Environments.ApiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: |2- - - Trigger event is the main (and only) way to send notifications to subscribers. - The trigger identifier is used to match the particular workflow associated with it. - Additional information can be passed according the body interface below. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: |2- - - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to - send announcements, etc. - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: |2- - - Using a previously generated transactionId during the event trigger, - will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: Notifications.Stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: graph - x-speakeasy-group: Notifications.Stats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. - Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are - successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on - the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that - organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that - are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: Integrations.Webhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported - or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setAsPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and - `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will - be later used to receive notifications, and access notification feeds. - Communication credentials such as email, phone number, and 3 rd party - credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: |2- - - Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - The bulk API is limited to 500 subscribers per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: Subscribers.Credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: Subscribers.Credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: Subscribers.Credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineFlag - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: retrieveByLevel - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: Subscribers.Notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string - like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: unseenCount - x-speakeasy-group: Subscribers.Notifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: markAllAs - x-speakeasy-group: Subscribers.Messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: Subscribers.Messages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. - Optionally you can pass feed id (or array) to mark messages of a - particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: Subscribers.Messages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: chatAccessOauthCallBack - x-speakeasy-group: Subscribers.Authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: chatAccessOauth - x-speakeasy-group: Subscribers.Authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query - parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of - message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query - parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: assign - x-speakeasy-group: Topics.Subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: Topics.Subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: Topics.Subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it - can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. - Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more - details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to - trigger workflows, and enable you to send notifications to subscribers - based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by - a workflow acting as a message blueprint. Notifications can be individual - or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your - favorite delivery provider. During the runtime of the API, the - Integrations Store is responsible for storing the configurations of all - the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure - to wrap content of email notifications. Layouts can be manipulated and - assigned to new or existing workflows within the Novu platform, allowing - users to create, manage, and assign these layouts to workflows, so they - can be reused to structure the appearance of notifications sent through - the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a - container for the logic and blueprint that are associated with a type of - notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same - functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous - to a pending pull request in git, enabling you to test changes before they - are applied to your environment and atomically apply them when you are - ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your - data and configuration. This means that subscribers, and preferences - created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for - a domain or subdomain. The feature parses the contents of the email and - POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing - message associated with its relevant metadata. This can be used to monitor - activity and discover potential issues with a specific provider or a - channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have - organizations, they are referred to as tenants. Tenants in Novu provides - the ability to tailor specific notification experiences to users of - different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a - particular channel. Messages contain information about the request that - triggered its delivery, a view of the data sent to the recipient, and a - timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each - organization you create has its own separate integration store, workflows, - subscribers, and API keys. This separation of resources allows you to - manage multi-tenant environments and separate domains within a single - account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They - provided detailed information on the execution of a workflow, including - the status of each step, the input and output of each step, and the - overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey - ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This - identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the workflow, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - Existing tenants will be updated with the provided details. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. - This identifier can be found on the template page. - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the template, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - If a new tenant object is provided, we will create a new tenant. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be - obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given - provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the - subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and - should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this - workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the - workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the - Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the - topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. - The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be - refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token - bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that - was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_dDzgnLtqbI.yaml b/.speakeasy/temp/downloaded_dDzgnLtqbI.yaml deleted file mode 100644 index 8e0ac771..00000000 --- a/.speakeasy/temp/downloaded_dDzgnLtqbI.yaml +++ /dev/null @@ -1,9166 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: Environments.ApiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: |2- - - Trigger event is the main (and only) way to send notifications to subscribers. - The trigger identifier is used to match the particular workflow associated with it. - Additional information can be passed according the body interface below. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: |2- - - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to - send announcements, etc. - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: |2- - - Using a previously generated transactionId during the event trigger, - will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: Notifications.Stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: graph - x-speakeasy-group: Notifications.Stats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. - Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are - successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on - the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that - organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that - are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: Integrations.Webhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported - or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setAsPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and - `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will - be later used to receive notifications, and access notification feeds. - Communication credentials such as email, phone number, and 3 rd party - credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: |2- - - Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - The bulk API is limited to 500 subscribers per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: Subscribers.Credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: Subscribers.Credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: Subscribers.Credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineFlag - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: retrieveByLevel - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: Subscribers.Notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string - like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: unseenCount - x-speakeasy-group: Subscribers.Notifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: markAllAs - x-speakeasy-group: Subscribers.Messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: Subscribers.Messages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. - Optionally you can pass feed id (or array) to mark messages of a - particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: Subscribers.Messages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: chatAccessOauthCallBack - x-speakeasy-group: Subscribers.Authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: chatAccessOauth - x-speakeasy-group: Subscribers.Authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query - parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of - message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query - parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: assign - x-speakeasy-group: Topics.Subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: Topics.Subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: Topics.Subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it - can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. - Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more - details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to - trigger workflows, and enable you to send notifications to subscribers - based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by - a workflow acting as a message blueprint. Notifications can be individual - or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your - favorite delivery provider. During the runtime of the API, the - Integrations Store is responsible for storing the configurations of all - the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure - to wrap content of email notifications. Layouts can be manipulated and - assigned to new or existing workflows within the Novu platform, allowing - users to create, manage, and assign these layouts to workflows, so they - can be reused to structure the appearance of notifications sent through - the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a - container for the logic and blueprint that are associated with a type of - notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same - functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous - to a pending pull request in git, enabling you to test changes before they - are applied to your environment and atomically apply them when you are - ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your - data and configuration. This means that subscribers, and preferences - created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for - a domain or subdomain. The feature parses the contents of the email and - POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing - message associated with its relevant metadata. This can be used to monitor - activity and discover potential issues with a specific provider or a - channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have - organizations, they are referred to as tenants. Tenants in Novu provides - the ability to tailor specific notification experiences to users of - different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a - particular channel. Messages contain information about the request that - triggered its delivery, a view of the data sent to the recipient, and a - timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each - organization you create has its own separate integration store, workflows, - subscribers, and API keys. This separation of resources allows you to - manage multi-tenant environments and separate domains within a single - account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They - provided detailed information on the execution of a workflow, including - the status of each step, the input and output of each step, and the - overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey - ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This - identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the workflow, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - Existing tenants will be updated with the provided details. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. - This identifier can be found on the template page. - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the template, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - If a new tenant object is provided, we will create a new tenant. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be - obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given - provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the - subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and - should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this - workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the - workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the - Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the - topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. - The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be - refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token - bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that - was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_OzyUuenxwp.yaml b/.speakeasy/temp/overlay_OzyUuenxwp.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/overlay_OzyUuenxwp.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_ZRSXyvupfe.yaml b/.speakeasy/temp/overlay_ZRSXyvupfe.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/overlay_ZRSXyvupfe.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_fZoitFDeAQ.yaml b/.speakeasy/temp/overlay_fZoitFDeAQ.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/overlay_fZoitFDeAQ.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_hpRiUsGiJG.yaml b/.speakeasy/temp/overlay_hpRiUsGiJG.yaml deleted file mode 100644 index 123fdd83..00000000 --- a/.speakeasy/temp/overlay_hpRiUsGiJG.yaml +++ /dev/null @@ -1,8848 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getCurrent - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: environments.apiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - x-speakeasy-group: executionDetails - x-speakeasy-name-override: get - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: list - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: notifications.stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: get - x-speakeasy-group: notificationsStats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: create - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: list - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: get - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: update - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - x-speakeasy-group: workflowGroups - x-speakeasy-name-override: delete - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: list - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: integrationsWebhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: getStatus - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getAll - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: create - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: subscribers.credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: subscribers.credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: subscribers.credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineStatus - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: subscribersPreferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: getByLevel - x-speakeasy-group: subscribers.preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: subscribers.preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: update - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: subscribers.notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - x-speakeasy-name-override: getFeed - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: getUnseenCount - x-speakeasy-group: subscribersNotifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: mark - x-speakeasy-group: subscribers.messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: subscribersMessages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: subscribersMessages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: handleOauthCallback - x-speakeasy-group: subscribers.authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: handleOauth - x-speakeasy-group: subscribers.authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: get - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - x-speakeasy-name-override: delete - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: create - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: getAll - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: add - x-speakeasy-group: topics.subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: topics.subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: check - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: topics.subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: remove - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: delete - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - x-speakeasy-name-override: get - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/README.md b/README.md index 6c0aa4d7..7d8a8e14 100644 --- a/README.md +++ b/README.md @@ -204,7 +204,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.cancel(""); + const result = await novu.cancelByTransactionId(""); // Handle the result console.log(result); @@ -223,8 +223,8 @@ run(); ### [environments](docs/sdks/environments/README.md) -* [getCurrent](docs/sdks/environments/README.md#getcurrent) - Get current environment -* [getAll](docs/sdks/environments/README.md#getall) - Get environments +* [retrieve](docs/sdks/environments/README.md#retrieve) - Get current environment +* [list](docs/sdks/environments/README.md#list) - Get environments #### [environments.apiKeys](docs/sdks/apikeys/README.md) @@ -232,7 +232,7 @@ run(); ### [executionDetails](docs/sdks/executiondetails/README.md) -* [get](docs/sdks/executiondetails/README.md#get) - Get execution details +* [retrieve](docs/sdks/executiondetails/README.md#retrieve) - Get execution details ### [integrations](docs/sdks/integrations/README.md) @@ -241,51 +241,48 @@ run(); * [listActive](docs/sdks/integrations/README.md#listactive) - Get active integrations * [update](docs/sdks/integrations/README.md#update) - Update integration * [delete](docs/sdks/integrations/README.md#delete) - Delete integration -* [setPrimary](docs/sdks/integrations/README.md#setprimary) - Set integration as primary +* [setAsPrimary](docs/sdks/integrations/README.md#setasprimary) - Set integration as primary -### [integrationsWebhooks](docs/sdks/integrationswebhooks/README.md) +#### [integrations.webhooks](docs/sdks/webhooks/README.md) -* [getStatus](docs/sdks/integrationswebhooks/README.md#getstatus) - Get webhook support status for provider +* [retrieve](docs/sdks/webhooks/README.md#retrieve) - Get webhook support status for provider ### [messages](docs/sdks/messages/README.md) -* [get](docs/sdks/messages/README.md#get) - Get messages +* [retrieve](docs/sdks/messages/README.md#retrieve) - Get messages * [delete](docs/sdks/messages/README.md#delete) - Delete message * [deleteByTransactionId](docs/sdks/messages/README.md#deletebytransactionid) - Delete messages by transactionId ### [notifications](docs/sdks/notifications/README.md) * [list](docs/sdks/notifications/README.md#list) - Get notifications -* [get](docs/sdks/notifications/README.md#get) - Get notification +* [retrieve](docs/sdks/notifications/README.md#retrieve) - Get notification #### [notifications.stats](docs/sdks/stats/README.md) -* [get](docs/sdks/stats/README.md#get) - Get notification statistics - -### [notificationsStats](docs/sdks/notificationsstats/README.md) - -* [get](docs/sdks/notificationsstats/README.md#get) - Get notification graph statistics +* [retrieve](docs/sdks/stats/README.md#retrieve) - Get notification statistics +* [graph](docs/sdks/stats/README.md#graph) - Get notification graph statistics ### [Novu SDK](docs/sdks/novu/README.md) * [trigger](docs/sdks/novu/README.md#trigger) - Trigger event * [triggerBulk](docs/sdks/novu/README.md#triggerbulk) - Bulk trigger event * [triggerBroadcast](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all -* [cancel](docs/sdks/novu/README.md#cancel) - Cancel triggered event +* [cancelByTransactionId](docs/sdks/novu/README.md#cancelbytransactionid) - Cancel triggered event ### [subscribers](docs/sdks/subscribers/README.md) -* [getAll](docs/sdks/subscribers/README.md#getall) - Get subscribers +* [list](docs/sdks/subscribers/README.md#list) - Get subscribers * [create](docs/sdks/subscribers/README.md#create) - Create subscriber -* [get](docs/sdks/subscribers/README.md#get) - Get subscriber +* [retrieve](docs/sdks/subscribers/README.md#retrieve) - Get subscriber * [update](docs/sdks/subscribers/README.md#update) - Update subscriber * [delete](docs/sdks/subscribers/README.md#delete) - Delete subscriber * [createBulk](docs/sdks/subscribers/README.md#createbulk) - Bulk create subscribers #### [subscribers.authentication](docs/sdks/authentication/README.md) -* [handleOauthCallback](docs/sdks/authentication/README.md#handleoauthcallback) - Handle providers oauth redirect -* [handleOauth](docs/sdks/authentication/README.md#handleoauth) - Handle chat oauth +* [chatAccessOauthCallBack](docs/sdks/authentication/README.md#chataccessoauthcallback) - Handle providers oauth redirect +* [chatAccessOauth](docs/sdks/authentication/README.md#chataccessoauth) - Handle chat oauth #### [subscribers.credentials](docs/sdks/credentials/README.md) @@ -295,54 +292,45 @@ run(); #### [subscribers.messages](docs/sdks/novumessages/README.md) -* [mark](docs/sdks/novumessages/README.md#mark) - Mark a subscriber messages as seen, read, unseen or unread +* [markAllAs](docs/sdks/novumessages/README.md#markallas) - Mark a subscriber messages as seen, read, unseen or unread +* [markAll](docs/sdks/novumessages/README.md#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. +* [updateAsSeen](docs/sdks/novumessages/README.md#updateasseen) - Mark message action as seen -#### [subscribers.notifications](docs/sdks/novusubscribersnotifications/README.md) +#### [subscribers.notifications](docs/sdks/novunotifications/README.md) -* [getFeed](docs/sdks/novusubscribersnotifications/README.md#getfeed) - Get in-app notification feed for a particular subscriber +* [retrieve](docs/sdks/novunotifications/README.md#retrieve) - Get in-app notification feed for a particular subscriber +* [unseenCount](docs/sdks/novunotifications/README.md#unseencount) - Get the unseen in-app notifications count for subscribers feed #### [subscribers.preferences](docs/sdks/preferences/README.md) -* [get](docs/sdks/preferences/README.md#get) - Get subscriber preferences -* [getByLevel](docs/sdks/preferences/README.md#getbylevel) - Get subscriber preferences by level +* [list](docs/sdks/preferences/README.md#list) - Get subscriber preferences +* [updateGlobal](docs/sdks/preferences/README.md#updateglobal) - Update subscriber global preferences +* [retrieveByLevel](docs/sdks/preferences/README.md#retrievebylevel) - Get subscriber preferences by level * [update](docs/sdks/preferences/README.md#update) - Update subscriber preference #### [subscribers.properties](docs/sdks/properties/README.md) -* [updateOnlineStatus](docs/sdks/properties/README.md#updateonlinestatus) - Update subscriber online status - -### [subscribersMessages](docs/sdks/subscribersmessages/README.md) - -* [markAll](docs/sdks/subscribersmessages/README.md#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. -* [updateAsSeen](docs/sdks/subscribersmessages/README.md#updateasseen) - Mark message action as seen - -### [subscribersNotifications](docs/sdks/subscribersnotifications/README.md) - -* [getUnseenCount](docs/sdks/subscribersnotifications/README.md#getunseencount) - Get the unseen in-app notifications count for subscribers feed - -### [subscribersPreferences](docs/sdks/subscriberspreferences/README.md) - -* [updateGlobal](docs/sdks/subscriberspreferences/README.md#updateglobal) - Update subscriber global preferences +* [updateOnlineFlag](docs/sdks/properties/README.md#updateonlineflag) - Update subscriber online status ### [topics](docs/sdks/topics/README.md) * [create](docs/sdks/topics/README.md#create) - Topic creation -* [getAll](docs/sdks/topics/README.md#getall) - Filter topics +* [list](docs/sdks/topics/README.md#list) - Filter topics * [delete](docs/sdks/topics/README.md#delete) - Delete topic -* [get](docs/sdks/topics/README.md#get) - Get topic +* [retrieve](docs/sdks/topics/README.md#retrieve) - Get topic * [rename](docs/sdks/topics/README.md#rename) - Rename a topic -#### [topics.subscribers](docs/sdks/novutopicssubscribers/README.md) +#### [topics.subscribers](docs/sdks/novusubscribers/README.md) -* [add](docs/sdks/novutopicssubscribers/README.md#add) - Subscribers addition -* [check](docs/sdks/novutopicssubscribers/README.md#check) - Check topic subscriber -* [remove](docs/sdks/novutopicssubscribers/README.md#remove) - Subscribers removal +* [assign](docs/sdks/novusubscribers/README.md#assign) - Subscribers addition +* [retrieve](docs/sdks/novusubscribers/README.md#retrieve) - Check topic subscriber +* [delete](docs/sdks/novusubscribers/README.md#delete) - Subscribers removal ### [workflowGroups](docs/sdks/workflowgroups/README.md) * [create](docs/sdks/workflowgroups/README.md#create) - Create workflow group * [list](docs/sdks/workflowgroups/README.md#list) - Get workflow groups -* [get](docs/sdks/workflowgroups/README.md#get) - Get workflow group +* [retrieve](docs/sdks/workflowgroups/README.md#retrieve) - Get workflow group * [update](docs/sdks/workflowgroups/README.md#update) - Update workflow group * [delete](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group @@ -364,61 +352,61 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). Available standalone functions -- [`cancel`](docs/sdks/novu/README.md#cancel) - Cancel triggered event +- [`cancelByTransactionId`](docs/sdks/novu/README.md#cancelbytransactionid) - Cancel triggered event - [`environmentsApiKeysList`](docs/sdks/apikeys/README.md#list) - Get api keys -- [`environmentsGetAll`](docs/sdks/environments/README.md#getall) - Get environments -- [`environmentsGetCurrent`](docs/sdks/environments/README.md#getcurrent) - Get current environment -- [`executionDetailsGet`](docs/sdks/executiondetails/README.md#get) - Get execution details +- [`environmentsList`](docs/sdks/environments/README.md#list) - Get environments +- [`environmentsRetrieve`](docs/sdks/environments/README.md#retrieve) - Get current environment +- [`executionDetailsRetrieve`](docs/sdks/executiondetails/README.md#retrieve) - Get execution details - [`integrationsCreate`](docs/sdks/integrations/README.md#create) - Create integration - [`integrationsDelete`](docs/sdks/integrations/README.md#delete) - Delete integration - [`integrationsList`](docs/sdks/integrations/README.md#list) - Get integrations - [`integrationsListActive`](docs/sdks/integrations/README.md#listactive) - Get active integrations -- [`integrationsSetPrimary`](docs/sdks/integrations/README.md#setprimary) - Set integration as primary +- [`integrationsSetAsPrimary`](docs/sdks/integrations/README.md#setasprimary) - Set integration as primary - [`integrationsUpdate`](docs/sdks/integrations/README.md#update) - Update integration -- [`integrationsWebhooksGetStatus`](docs/sdks/integrationswebhooks/README.md#getstatus) - Get webhook support status for provider +- [`integrationsWebhooksRetrieve`](docs/sdks/webhooks/README.md#retrieve) - Get webhook support status for provider - [`messagesDelete`](docs/sdks/messages/README.md#delete) - Delete message - [`messagesDeleteByTransactionId`](docs/sdks/messages/README.md#deletebytransactionid) - Delete messages by transactionId -- [`messagesGet`](docs/sdks/messages/README.md#get) - Get messages -- [`notificationsGet`](docs/sdks/notifications/README.md#get) - Get notification +- [`messagesRetrieve`](docs/sdks/messages/README.md#retrieve) - Get messages - [`notificationsList`](docs/sdks/notifications/README.md#list) - Get notifications -- [`notificationsStatsGet`](docs/sdks/notificationsstats/README.md#get) - Get notification graph statistics -- [`notificationsStatsGet`](docs/sdks/stats/README.md#get) - Get notification statistics -- [`subscribersAuthenticationHandleOauth`](docs/sdks/authentication/README.md#handleoauth) - Handle chat oauth -- [`subscribersAuthenticationHandleOauthCallback`](docs/sdks/authentication/README.md#handleoauthcallback) - Handle providers oauth redirect +- [`notificationsRetrieve`](docs/sdks/notifications/README.md#retrieve) - Get notification +- [`notificationsStatsGraph`](docs/sdks/stats/README.md#graph) - Get notification graph statistics +- [`notificationsStatsRetrieve`](docs/sdks/stats/README.md#retrieve) - Get notification statistics +- [`subscribersAuthenticationChatAccessOauth`](docs/sdks/authentication/README.md#chataccessoauth) - Handle chat oauth +- [`subscribersAuthenticationChatAccessOauthCallBack`](docs/sdks/authentication/README.md#chataccessoauthcallback) - Handle providers oauth redirect - [`subscribersCreate`](docs/sdks/subscribers/README.md#create) - Create subscriber - [`subscribersCreateBulk`](docs/sdks/subscribers/README.md#createbulk) - Bulk create subscribers - [`subscribersCredentialsAppend`](docs/sdks/credentials/README.md#append) - Modify subscriber credentials - [`subscribersCredentialsDelete`](docs/sdks/credentials/README.md#delete) - Delete subscriber credentials by providerId - [`subscribersCredentialsUpdate`](docs/sdks/credentials/README.md#update) - Update subscriber credentials - [`subscribersDelete`](docs/sdks/subscribers/README.md#delete) - Delete subscriber -- [`subscribersGet`](docs/sdks/subscribers/README.md#get) - Get subscriber -- [`subscribersGetAll`](docs/sdks/subscribers/README.md#getall) - Get subscribers -- [`subscribersMessagesMark`](docs/sdks/novumessages/README.md#mark) - Mark a subscriber messages as seen, read, unseen or unread -- [`subscribersMessagesMarkAll`](docs/sdks/subscribersmessages/README.md#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. -- [`subscribersMessagesUpdateAsSeen`](docs/sdks/subscribersmessages/README.md#updateasseen) - Mark message action as seen -- [`subscribersNotificationsGetFeed`](docs/sdks/novusubscribersnotifications/README.md#getfeed) - Get in-app notification feed for a particular subscriber -- [`subscribersNotificationsGetUnseenCount`](docs/sdks/subscribersnotifications/README.md#getunseencount) - Get the unseen in-app notifications count for subscribers feed -- [`subscribersPreferencesGet`](docs/sdks/preferences/README.md#get) - Get subscriber preferences -- [`subscribersPreferencesGetByLevel`](docs/sdks/preferences/README.md#getbylevel) - Get subscriber preferences by level +- [`subscribersList`](docs/sdks/subscribers/README.md#list) - Get subscribers +- [`subscribersMessagesMarkAll`](docs/sdks/novumessages/README.md#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. +- [`subscribersMessagesMarkAllAs`](docs/sdks/novumessages/README.md#markallas) - Mark a subscriber messages as seen, read, unseen or unread +- [`subscribersMessagesUpdateAsSeen`](docs/sdks/novumessages/README.md#updateasseen) - Mark message action as seen +- [`subscribersNotificationsRetrieve`](docs/sdks/novunotifications/README.md#retrieve) - Get in-app notification feed for a particular subscriber +- [`subscribersNotificationsUnseenCount`](docs/sdks/novunotifications/README.md#unseencount) - Get the unseen in-app notifications count for subscribers feed +- [`subscribersPreferencesList`](docs/sdks/preferences/README.md#list) - Get subscriber preferences +- [`subscribersPreferencesRetrieveByLevel`](docs/sdks/preferences/README.md#retrievebylevel) - Get subscriber preferences by level - [`subscribersPreferencesUpdate`](docs/sdks/preferences/README.md#update) - Update subscriber preference -- [`subscribersPreferencesUpdateGlobal`](docs/sdks/subscriberspreferences/README.md#updateglobal) - Update subscriber global preferences -- [`subscribersPropertiesUpdateOnlineStatus`](docs/sdks/properties/README.md#updateonlinestatus) - Update subscriber online status +- [`subscribersPreferencesUpdateGlobal`](docs/sdks/preferences/README.md#updateglobal) - Update subscriber global preferences +- [`subscribersPropertiesUpdateOnlineFlag`](docs/sdks/properties/README.md#updateonlineflag) - Update subscriber online status +- [`subscribersRetrieve`](docs/sdks/subscribers/README.md#retrieve) - Get subscriber - [`subscribersUpdate`](docs/sdks/subscribers/README.md#update) - Update subscriber - [`topicsCreate`](docs/sdks/topics/README.md#create) - Topic creation - [`topicsDelete`](docs/sdks/topics/README.md#delete) - Delete topic -- [`topicsGet`](docs/sdks/topics/README.md#get) - Get topic -- [`topicsGetAll`](docs/sdks/topics/README.md#getall) - Filter topics +- [`topicsList`](docs/sdks/topics/README.md#list) - Filter topics - [`topicsRename`](docs/sdks/topics/README.md#rename) - Rename a topic -- [`topicsSubscribersAdd`](docs/sdks/novutopicssubscribers/README.md#add) - Subscribers addition -- [`topicsSubscribersCheck`](docs/sdks/novutopicssubscribers/README.md#check) - Check topic subscriber -- [`topicsSubscribersRemove`](docs/sdks/novutopicssubscribers/README.md#remove) - Subscribers removal +- [`topicsRetrieve`](docs/sdks/topics/README.md#retrieve) - Get topic +- [`topicsSubscribersAssign`](docs/sdks/novusubscribers/README.md#assign) - Subscribers addition +- [`topicsSubscribersDelete`](docs/sdks/novusubscribers/README.md#delete) - Subscribers removal +- [`topicsSubscribersRetrieve`](docs/sdks/novusubscribers/README.md#retrieve) - Check topic subscriber - [`trigger`](docs/sdks/novu/README.md#trigger) - Trigger event - [`triggerBroadcast`](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all - [`triggerBulk`](docs/sdks/novu/README.md#triggerbulk) - Bulk trigger event - [`workflowGroupsCreate`](docs/sdks/workflowgroups/README.md#create) - Create workflow group - [`workflowGroupsDelete`](docs/sdks/workflowgroups/README.md#delete) - Delete workflow group -- [`workflowGroupsGet`](docs/sdks/workflowgroups/README.md#get) - Get workflow group - [`workflowGroupsList`](docs/sdks/workflowgroups/README.md#list) - Get workflow groups +- [`workflowGroupsRetrieve`](docs/sdks/workflowgroups/README.md#retrieve) - Get workflow group - [`workflowGroupsUpdate`](docs/sdks/workflowgroups/README.md#update) - Update workflow group @@ -444,7 +432,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.getAll(); + const result = await novu.subscribers.list(); for await (const page of result) { // Handle the page diff --git a/USAGE.md b/USAGE.md index 10c561a3..9550b3ba 100644 --- a/USAGE.md +++ b/USAGE.md @@ -130,7 +130,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.cancel(""); + const result = await novu.cancelByTransactionId(""); // Handle the result console.log(result); diff --git a/docs/models/components/markas.md b/docs/models/components/markas.md index 45c389ae..63197c56 100644 --- a/docs/models/components/markas.md +++ b/docs/models/components/markas.md @@ -5,7 +5,7 @@ ```typescript import { MarkAs } from "@novu/api/models/components"; -let value: MarkAs = "unseen"; +let value: MarkAs = "seen"; ``` ## Values diff --git a/docs/models/components/messagemarkasrequestdto.md b/docs/models/components/messagemarkasrequestdto.md index 33bcd0bd..7a8a3575 100644 --- a/docs/models/components/messagemarkasrequestdto.md +++ b/docs/models/components/messagemarkasrequestdto.md @@ -6,8 +6,10 @@ import { MessageMarkAsRequestDto } from "@novu/api/models/components"; let value: MessageMarkAsRequestDto = { - messageId: "", - markAs: "unseen", + messageId: [ + "", + ], + markAs: "unread", }; ``` diff --git a/docs/models/components/unseencountresponse.md b/docs/models/components/unseencountresponse.md index ba086ed8..0c18cc03 100644 --- a/docs/models/components/unseencountresponse.md +++ b/docs/models/components/unseencountresponse.md @@ -6,7 +6,7 @@ import { UnseenCountResponse } from "@novu/api/models/components"; let value: UnseenCountResponse = { - count: 5812.73, + count: 8137.98, }; ``` diff --git a/docs/models/operations/subscriberscontrollergetunseencountrequest.md b/docs/models/operations/subscriberscontrollergetunseencountrequest.md index e2635938..be7f9ad7 100644 --- a/docs/models/operations/subscriberscontrollergetunseencountrequest.md +++ b/docs/models/operations/subscriberscontrollergetunseencountrequest.md @@ -8,7 +8,7 @@ import { SubscribersControllerGetUnseenCountRequest } from "@novu/api/models/ope let value: SubscribersControllerGetUnseenCountRequest = { seen: false, subscriberId: "", - limit: 2103.83, + limit: 6667.67, }; ``` diff --git a/docs/models/operations/subscriberscontrollergetunseencountresponse.md b/docs/models/operations/subscriberscontrollergetunseencountresponse.md index 6628d906..5f1db382 100644 --- a/docs/models/operations/subscriberscontrollergetunseencountresponse.md +++ b/docs/models/operations/subscriberscontrollergetunseencountresponse.md @@ -12,7 +12,7 @@ let value: SubscribersControllerGetUnseenCountResponse = { ], }, result: { - count: 1289.26, + count: 6706.38, }, }; ``` diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md index 3fe0fd9a..6869e508 100644 --- a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md +++ b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md @@ -8,10 +8,8 @@ import { SubscribersControllerMarkMessagesAsRequest } from "@novu/api/models/ope let value: SubscribersControllerMarkMessagesAsRequest = { subscriberId: "", messageMarkAsRequestDto: { - messageId: [ - "", - ], - markAs: "unread", + messageId: "", + markAs: "read", }, }; ``` diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md index 6b087527..879f43a1 100644 --- a/docs/sdks/authentication/README.md +++ b/docs/sdks/authentication/README.md @@ -5,10 +5,10 @@ ### Available Operations -* [handleOauthCallback](#handleoauthcallback) - Handle providers oauth redirect -* [handleOauth](#handleoauth) - Handle chat oauth +* [chatAccessOauthCallBack](#chataccessoauthcallback) - Handle providers oauth redirect +* [chatAccessOauth](#chataccessoauth) - Handle chat oauth -## handleOauthCallback +## chatAccessOauthCallBack Handle providers oauth redirect @@ -22,7 +22,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.authentication.handleOauthCallback({ + const result = await novu.subscribers.authentication.chatAccessOauthCallBack({ subscriberId: "", providerId: "", code: "", @@ -43,7 +43,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationHandleOauthCallback } from "@novu/api/funcs/subscribersAuthenticationHandleOauthCallback.js"; +import { subscribersAuthenticationChatAccessOauthCallBack } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -52,7 +52,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersAuthenticationHandleOauthCallback(novu, { + const res = await subscribersAuthenticationChatAccessOauthCallBack(novu, { subscriberId: "", providerId: "", code: "", @@ -92,7 +92,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## handleOauth +## chatAccessOauth Handle chat oauth @@ -106,7 +106,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.authentication.handleOauth({ + const result = await novu.subscribers.authentication.chatAccessOauth({ subscriberId: "", providerId: "", hmacHash: "", @@ -126,7 +126,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationHandleOauth } from "@novu/api/funcs/subscribersAuthenticationHandleOauth.js"; +import { subscribersAuthenticationChatAccessOauth } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauth.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -135,7 +135,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersAuthenticationHandleOauth(novu, { + const res = await subscribersAuthenticationChatAccessOauth(novu, { subscriberId: "", providerId: "", hmacHash: "", diff --git a/docs/sdks/environments/README.md b/docs/sdks/environments/README.md index 0f77a9f4..90933a53 100644 --- a/docs/sdks/environments/README.md +++ b/docs/sdks/environments/README.md @@ -8,10 +8,10 @@ Novu uses the concept of environments to ensure logical separation of your data ### Available Operations -* [getCurrent](#getcurrent) - Get current environment -* [getAll](#getall) - Get environments +* [retrieve](#retrieve) - Get current environment +* [list](#list) - Get environments -## getCurrent +## retrieve Get current environment @@ -25,7 +25,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.environments.getCurrent(); + const result = await novu.environments.retrieve(); // Handle the result console.log(result); @@ -40,7 +40,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { environmentsGetCurrent } from "@novu/api/funcs/environmentsGetCurrent.js"; +import { environmentsRetrieve } from "@novu/api/funcs/environmentsRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -49,7 +49,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await environmentsGetCurrent(novu); + const res = await environmentsRetrieve(novu); if (!res.ok) { throw res.error; @@ -82,7 +82,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## getAll +## list Get environments @@ -96,7 +96,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.environments.getAll(); + const result = await novu.environments.list(); // Handle the result console.log(result); @@ -111,7 +111,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { environmentsGetAll } from "@novu/api/funcs/environmentsGetAll.js"; +import { environmentsList } from "@novu/api/funcs/environmentsList.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -120,7 +120,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await environmentsGetAll(novu); + const res = await environmentsList(novu); if (!res.ok) { throw res.error; diff --git a/docs/sdks/executiondetails/README.md b/docs/sdks/executiondetails/README.md index be04b951..150d009c 100644 --- a/docs/sdks/executiondetails/README.md +++ b/docs/sdks/executiondetails/README.md @@ -3,11 +3,14 @@ ## Overview +Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + + ### Available Operations -* [get](#get) - Get execution details +* [retrieve](#retrieve) - Get execution details -## get +## retrieve Get execution details @@ -21,7 +24,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.executionDetails.get("", ""); + const result = await novu.executionDetails.retrieve("", ""); // Handle the result console.log(result); @@ -36,7 +39,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { executionDetailsGet } from "@novu/api/funcs/executionDetailsGet.js"; +import { executionDetailsRetrieve } from "@novu/api/funcs/executionDetailsRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -45,7 +48,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await executionDetailsGet(novu, "", ""); + const res = await executionDetailsRetrieve(novu, "", ""); if (!res.ok) { throw res.error; diff --git a/docs/sdks/integrations/README.md b/docs/sdks/integrations/README.md index 2f609044..e54c9f26 100644 --- a/docs/sdks/integrations/README.md +++ b/docs/sdks/integrations/README.md @@ -13,7 +13,7 @@ With the help of the Integration Store, you can easily integrate your favorite d * [listActive](#listactive) - Get active integrations * [update](#update) - Update integration * [delete](#delete) - Delete integration -* [setPrimary](#setprimary) - Set integration as primary +* [setAsPrimary](#setasprimary) - Set integration as primary ## list @@ -380,7 +380,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## setPrimary +## setAsPrimary Set integration as primary @@ -394,7 +394,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.integrations.setPrimary(""); + const result = await novu.integrations.setAsPrimary(""); // Handle the result console.log(result); @@ -409,7 +409,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { integrationsSetPrimary } from "@novu/api/funcs/integrationsSetPrimary.js"; +import { integrationsSetAsPrimary } from "@novu/api/funcs/integrationsSetAsPrimary.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -418,7 +418,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await integrationsSetPrimary(novu, ""); + const res = await integrationsSetAsPrimary(novu, ""); if (!res.ok) { throw res.error; diff --git a/docs/sdks/integrationswebhooks/README.md b/docs/sdks/integrationswebhooks/README.md deleted file mode 100644 index deb6de80..00000000 --- a/docs/sdks/integrationswebhooks/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# IntegrationsWebhooks -(*integrationsWebhooks*) - -## Overview - -### Available Operations - -* [getStatus](#getstatus) - Get webhook support status for provider - -## getStatus - -Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrationsWebhooks.getStatus(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsWebhooksGetStatus } from "@novu/api/funcs/integrationsWebhooksGetStatus.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsWebhooksGetStatus(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerGetWebhookSupportStatusResponse](../../models/operations/integrationscontrollergetwebhooksupportstatusresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/messages/README.md b/docs/sdks/messages/README.md index 79dd7f96..3821db0c 100644 --- a/docs/sdks/messages/README.md +++ b/docs/sdks/messages/README.md @@ -8,11 +8,11 @@ A message in Novu represents a notification delivered to a recipient on a partic ### Available Operations -* [get](#get) - Get messages +* [retrieve](#retrieve) - Get messages * [delete](#delete) - Delete message * [deleteByTransactionId](#deletebytransactionid) - Delete messages by transactionId -## get +## retrieve Returns a list of messages, could paginate using the `page` query parameter @@ -26,7 +26,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.messages.get({}); + const result = await novu.messages.retrieve({}); // Handle the result console.log(result); @@ -41,7 +41,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { messagesGet } from "@novu/api/funcs/messagesGet.js"; +import { messagesRetrieve } from "@novu/api/funcs/messagesRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -50,7 +50,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await messagesGet(novu, {}); + const res = await messagesRetrieve(novu, {}); if (!res.ok) { throw res.error; diff --git a/docs/sdks/notifications/README.md b/docs/sdks/notifications/README.md index 5b145531..09ed556c 100644 --- a/docs/sdks/notifications/README.md +++ b/docs/sdks/notifications/README.md @@ -6,7 +6,7 @@ ### Available Operations * [list](#list) - Get notifications -* [get](#get) - Get notification +* [retrieve](#retrieve) - Get notification ## list @@ -114,7 +114,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## get +## retrieve Get notification @@ -128,7 +128,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.notifications.get(""); + const result = await novu.notifications.retrieve(""); // Handle the result console.log(result); @@ -143,7 +143,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { notificationsGet } from "@novu/api/funcs/notificationsGet.js"; +import { notificationsRetrieve } from "@novu/api/funcs/notificationsRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -152,7 +152,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await notificationsGet(novu, ""); + const res = await notificationsRetrieve(novu, ""); if (!res.ok) { throw res.error; diff --git a/docs/sdks/notificationsstats/README.md b/docs/sdks/notificationsstats/README.md deleted file mode 100644 index 8230c830..00000000 --- a/docs/sdks/notificationsstats/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# NotificationsStats -(*notificationsStats*) - -## Overview - -### Available Operations - -* [get](#get) - Get notification graph statistics - -## get - -Get notification graph statistics - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.notificationsStats.get(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsStatsGet } from "@novu/api/funcs/notificationsStatsGet.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsStatsGet(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `days` | *number* | :heavy_minus_sign: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationsControllerGetActivityGraphStatsResponse](../../models/operations/notificationscontrollergetactivitygraphstatsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novu/README.md b/docs/sdks/novu/README.md index df3e2047..be1d0edb 100644 --- a/docs/sdks/novu/README.md +++ b/docs/sdks/novu/README.md @@ -12,7 +12,7 @@ Novu Documentation * [trigger](#trigger) - Trigger event * [triggerBulk](#triggerbulk) - Bulk trigger event * [triggerBroadcast](#triggerbroadcast) - Broadcast event to all -* [cancel](#cancel) - Cancel triggered event +* [cancelByTransactionId](#cancelbytransactionid) - Cancel triggered event ## trigger @@ -361,7 +361,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## cancel +## cancelByTransactionId Using a previously generated transactionId during the event trigger, @@ -378,7 +378,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.cancel(""); + const result = await novu.cancelByTransactionId(""); // Handle the result console.log(result); @@ -393,7 +393,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { cancel } from "@novu/api/funcs/cancel.js"; +import { cancelByTransactionId } from "@novu/api/funcs/cancelByTransactionId.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -402,7 +402,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await cancel(novu, ""); + const res = await cancelByTransactionId(novu, ""); if (!res.ok) { throw res.error; diff --git a/docs/sdks/novumessages/README.md b/docs/sdks/novumessages/README.md index a8751080..a48fcb6d 100644 --- a/docs/sdks/novumessages/README.md +++ b/docs/sdks/novumessages/README.md @@ -5,9 +5,11 @@ ### Available Operations -* [mark](#mark) - Mark a subscriber messages as seen, read, unseen or unread +* [markAllAs](#markallas) - Mark a subscriber messages as seen, read, unseen or unread +* [markAll](#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. +* [updateAsSeen](#updateasseen) - Mark message action as seen -## mark +## markAllAs Mark a subscriber messages as seen, read, unseen or unread @@ -21,7 +23,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.messages.mark({ + const result = await novu.subscribers.messages.markAllAs({ messageId: "", markAs: "read", }, ""); @@ -39,7 +41,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesMark } from "@novu/api/funcs/subscribersMessagesMark.js"; +import { subscribersMessagesMarkAllAs } from "@novu/api/funcs/subscribersMessagesMarkAllAs.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -48,7 +50,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersMessagesMark(novu, { + const res = await subscribersMessagesMarkAllAs(novu, { messageId: "", markAs: "read", }, ""); @@ -82,6 +84,169 @@ run(); ### Errors +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## markAll + +Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.messages.markAll({ + markAs: "seen", + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesMarkAll } from "@novu/api/funcs/subscribersMessagesMarkAll.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesMarkAll(novu, { + markAs: "seen", + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerMarkAllUnreadAsReadResponse](../../models/operations/subscriberscontrollermarkallunreadasreadresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## updateAsSeen + +Mark message action as seen + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.messages.updateAsSeen({ + messageId: "", + type: "", + subscriberId: "", + markMessageActionAsSeenDto: { + status: "done", + }, + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesUpdateAsSeen } from "@novu/api/funcs/subscribersMessagesUpdateAsSeen.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesUpdateAsSeen(novu, { + messageId: "", + type: "", + subscriberId: "", + markMessageActionAsSeenDto: { + status: "done", + }, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerMarkActionAsSeenRequest](../../models/operations/subscriberscontrollermarkactionasseenrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerMarkActionAsSeenResponse](../../models/operations/subscriberscontrollermarkactionasseenresponse.md)\>** + +### Errors + | Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novusubscribersnotifications/README.md b/docs/sdks/novusubscribersnotifications/README.md deleted file mode 100644 index 7ca79d9b..00000000 --- a/docs/sdks/novusubscribersnotifications/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# NovuSubscribersNotifications -(*subscribers.notifications*) - -## Overview - -### Available Operations - -* [getFeed](#getfeed) - Get in-app notification feed for a particular subscriber - -## getFeed - -Get in-app notification feed for a particular subscriber - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.notifications.getFeed({ - subscriberId: "", - payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersNotificationsGetFeed } from "@novu/api/funcs/subscribersNotificationsGetFeed.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersNotificationsGetFeed(novu, { - subscriberId: "", - payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerGetNotificationsFeedRequest](../../models/operations/subscriberscontrollergetnotificationsfeedrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponse](../../models/operations/subscriberscontrollergetnotificationsfeedresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novutopicssubscribers/README.md b/docs/sdks/novutopicssubscribers/README.md deleted file mode 100644 index ab3724ff..00000000 --- a/docs/sdks/novutopicssubscribers/README.md +++ /dev/null @@ -1,249 +0,0 @@ -# NovuTopicsSubscribers -(*topics.subscribers*) - -## Overview - -### Available Operations - -* [add](#add) - Subscribers addition -* [check](#check) - Check topic subscriber -* [remove](#remove) - Subscribers removal - -## add - -Add subscribers to a topic by key - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.subscribers.add({ - subscribers: [ - "", - "", - ], - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersAdd } from "@novu/api/funcs/topicsSubscribersAdd.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersAdd(novu, { - subscribers: [ - "", - "", - ], - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `addSubscribersRequestDto` | [components.AddSubscribersRequestDto](../../models/components/addsubscribersrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerAddSubscribersResponse](../../models/operations/topicscontrolleraddsubscribersresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## check - -Check if a subscriber belongs to a certain topic - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.subscribers.check("", ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersCheck } from "@novu/api/funcs/topicsSubscribersCheck.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersCheck(novu, "", ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `externalSubscriberId` | *string* | :heavy_check_mark: | The external subscriber id | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerGetTopicSubscriberResponse](../../models/operations/topicscontrollergettopicsubscriberresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## remove - -Remove subscribers from a topic - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.subscribers.remove({ - subscribers: [ - "", - "", - ], - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersRemove } from "@novu/api/funcs/topicsSubscribersRemove.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersRemove(novu, { - subscribers: [ - "", - "", - ], - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerRemoveSubscribersResponse](../../models/operations/topicscontrollerremovesubscribersresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/preferences/README.md b/docs/sdks/preferences/README.md index 7b5a26fa..a8f3b2ce 100644 --- a/docs/sdks/preferences/README.md +++ b/docs/sdks/preferences/README.md @@ -5,11 +5,12 @@ ### Available Operations -* [get](#get) - Get subscriber preferences -* [getByLevel](#getbylevel) - Get subscriber preferences by level +* [list](#list) - Get subscriber preferences +* [updateGlobal](#updateglobal) - Update subscriber global preferences +* [retrieveByLevel](#retrievebylevel) - Get subscriber preferences by level * [update](#update) - Update subscriber preference -## get +## list Get subscriber preferences @@ -23,7 +24,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.preferences.get(""); + const result = await novu.subscribers.preferences.list(""); // Handle the result console.log(result); @@ -38,7 +39,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesGet } from "@novu/api/funcs/subscribersPreferencesGet.js"; +import { subscribersPreferencesList } from "@novu/api/funcs/subscribersPreferencesList.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -47,7 +48,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersPreferencesGet(novu, ""); + const res = await subscribersPreferencesList(novu, ""); if (!res.ok) { throw res.error; @@ -82,7 +83,80 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## getByLevel +## updateGlobal + +Update subscriber global preferences + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.preferences.updateGlobal({}, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesUpdateGlobal } from "@novu/api/funcs/subscribersPreferencesUpdateGlobal.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesUpdateGlobal(novu, {}, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse](../../models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieveByLevel Get subscriber preferences by level @@ -96,7 +170,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.preferences.getByLevel({ + const result = await novu.subscribers.preferences.retrieveByLevel({ parameter: "global", subscriberId: "", }); @@ -114,7 +188,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesGetByLevel } from "@novu/api/funcs/subscribersPreferencesGetByLevel.js"; +import { subscribersPreferencesRetrieveByLevel } from "@novu/api/funcs/subscribersPreferencesRetrieveByLevel.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -123,7 +197,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersPreferencesGetByLevel(novu, { + const res = await subscribersPreferencesRetrieveByLevel(novu, { parameter: "global", subscriberId: "", }); diff --git a/docs/sdks/properties/README.md b/docs/sdks/properties/README.md index 089bbf10..3d2dba0a 100644 --- a/docs/sdks/properties/README.md +++ b/docs/sdks/properties/README.md @@ -5,9 +5,9 @@ ### Available Operations -* [updateOnlineStatus](#updateonlinestatus) - Update subscriber online status +* [updateOnlineFlag](#updateonlineflag) - Update subscriber online status -## updateOnlineStatus +## updateOnlineFlag Used to update the subscriber isOnline flag. @@ -21,7 +21,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.properties.updateOnlineStatus({ + const result = await novu.subscribers.properties.updateOnlineFlag({ isOnline: true, }, ""); @@ -38,7 +38,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersPropertiesUpdateOnlineStatus } from "@novu/api/funcs/subscribersPropertiesUpdateOnlineStatus.js"; +import { subscribersPropertiesUpdateOnlineFlag } from "@novu/api/funcs/subscribersPropertiesUpdateOnlineFlag.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -47,7 +47,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersPropertiesUpdateOnlineStatus(novu, { + const res = await subscribersPropertiesUpdateOnlineFlag(novu, { isOnline: true, }, ""); diff --git a/docs/sdks/stats/README.md b/docs/sdks/stats/README.md index 19d480ab..5cd03b19 100644 --- a/docs/sdks/stats/README.md +++ b/docs/sdks/stats/README.md @@ -5,9 +5,10 @@ ### Available Operations -* [get](#get) - Get notification statistics +* [retrieve](#retrieve) - Get notification statistics +* [graph](#graph) - Get notification graph statistics -## get +## retrieve Get notification statistics @@ -21,7 +22,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.notifications.stats.get(); + const result = await novu.notifications.stats.retrieve(); // Handle the result console.log(result); @@ -36,7 +37,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { notificationsStatsGet } from "@novu/api/funcs/notificationsStatsGet.js"; +import { notificationsStatsRetrieve } from "@novu/api/funcs/notificationsStatsRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -45,7 +46,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await notificationsStatsGet(novu); + const res = await notificationsStatsRetrieve(novu); if (!res.ok) { throw res.error; @@ -74,6 +75,78 @@ run(); ### Errors +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## graph + +Get notification graph statistics + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.notifications.stats.graph(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsStatsGraph } from "@novu/api/funcs/notificationsStatsGraph.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsStatsGraph(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `days` | *number* | :heavy_minus_sign: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationsControllerGetActivityGraphStatsResponse](../../models/operations/notificationscontrollergetactivitygraphstatsresponse.md)\>** + +### Errors + | Error Type | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/subscribers/README.md b/docs/sdks/subscribers/README.md index 99f443e5..849106c8 100644 --- a/docs/sdks/subscribers/README.md +++ b/docs/sdks/subscribers/README.md @@ -8,14 +8,14 @@ A subscriber in Novu represents someone who should receive a message. A subscrib ### Available Operations -* [getAll](#getall) - Get subscribers +* [list](#list) - Get subscribers * [create](#create) - Create subscriber -* [get](#get) - Get subscriber +* [retrieve](#retrieve) - Get subscriber * [update](#update) - Update subscriber * [delete](#delete) - Delete subscriber * [createBulk](#createbulk) - Bulk create subscribers -## getAll +## list Returns a list of subscribers, could paginated using the `page` and `limit` query parameter @@ -29,7 +29,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.getAll(); + const result = await novu.subscribers.list(); for await (const page of result) { // Handle the page @@ -46,7 +46,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersGetAll } from "@novu/api/funcs/subscribersGetAll.js"; +import { subscribersList } from "@novu/api/funcs/subscribersList.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -55,7 +55,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersGetAll(novu); + const res = await subscribersList(novu); if (!res.ok) { throw res.error; @@ -168,7 +168,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## get +## retrieve Get subscriber by your internal id used to identify the subscriber @@ -182,7 +182,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.subscribers.get(""); + const result = await novu.subscribers.retrieve(""); // Handle the result console.log(result); @@ -197,7 +197,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { subscribersGet } from "@novu/api/funcs/subscribersGet.js"; +import { subscribersRetrieve } from "@novu/api/funcs/subscribersRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -206,7 +206,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await subscribersGet(novu, ""); + const res = await subscribersRetrieve(novu, ""); if (!res.ok) { throw res.error; diff --git a/docs/sdks/subscribersmessages/README.md b/docs/sdks/subscribersmessages/README.md deleted file mode 100644 index e0681399..00000000 --- a/docs/sdks/subscribersmessages/README.md +++ /dev/null @@ -1,172 +0,0 @@ -# SubscribersMessages -(*subscribersMessages*) - -## Overview - -### Available Operations - -* [markAll](#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. -* [updateAsSeen](#updateasseen) - Mark message action as seen - -## markAll - -Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribersMessages.markAll({ - markAs: "seen", - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesMarkAll } from "@novu/api/funcs/subscribersMessagesMarkAll.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesMarkAll(novu, { - markAs: "seen", - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerMarkAllUnreadAsReadResponse](../../models/operations/subscriberscontrollermarkallunreadasreadresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## updateAsSeen - -Mark message action as seen - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribersMessages.updateAsSeen({ - messageId: "", - type: "", - subscriberId: "", - markMessageActionAsSeenDto: { - status: "done", - }, - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesUpdateAsSeen } from "@novu/api/funcs/subscribersMessagesUpdateAsSeen.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesUpdateAsSeen(novu, { - messageId: "", - type: "", - subscriberId: "", - markMessageActionAsSeenDto: { - status: "done", - }, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerMarkActionAsSeenRequest](../../models/operations/subscriberscontrollermarkactionasseenrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerMarkActionAsSeenResponse](../../models/operations/subscriberscontrollermarkactionasseenresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/subscribersnotifications/README.md b/docs/sdks/subscribersnotifications/README.md deleted file mode 100644 index 17669086..00000000 --- a/docs/sdks/subscribersnotifications/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# SubscribersNotifications -(*subscribersNotifications*) - -## Overview - -### Available Operations - -* [getUnseenCount](#getunseencount) - Get the unseen in-app notifications count for subscribers feed - -## getUnseenCount - -Get the unseen in-app notifications count for subscribers feed - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribersNotifications.getUnseenCount({ - seen: false, - subscriberId: "", - limit: 2979.49, - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersNotificationsGetUnseenCount } from "@novu/api/funcs/subscribersNotificationsGetUnseenCount.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersNotificationsGetUnseenCount(novu, { - seen: false, - subscriberId: "", - limit: 2979.49, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerGetUnseenCountRequest](../../models/operations/subscriberscontrollergetunseencountrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerGetUnseenCountResponse](../../models/operations/subscriberscontrollergetunseencountresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/subscriberspreferences/README.md b/docs/sdks/subscriberspreferences/README.md deleted file mode 100644 index 92608a7e..00000000 --- a/docs/sdks/subscriberspreferences/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# SubscribersPreferences -(*subscribersPreferences*) - -## Overview - -### Available Operations - -* [updateGlobal](#updateglobal) - Update subscriber global preferences - -## updateGlobal - -Update subscriber global preferences - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribersPreferences.updateGlobal({}, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesUpdateGlobal } from "@novu/api/funcs/subscribersPreferencesUpdateGlobal.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesUpdateGlobal(novu, {}, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse](../../models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/topics/README.md b/docs/sdks/topics/README.md index dc8a4b95..6bfcdf0e 100644 --- a/docs/sdks/topics/README.md +++ b/docs/sdks/topics/README.md @@ -9,9 +9,9 @@ Topics are a way to group subscribers together so that they can be notified of e ### Available Operations * [create](#create) - Topic creation -* [getAll](#getall) - Filter topics +* [list](#list) - Filter topics * [delete](#delete) - Delete topic -* [get](#get) - Get topic +* [retrieve](#retrieve) - Get topic * [rename](#rename) - Rename a topic ## create @@ -92,7 +92,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## getAll +## list Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter @@ -106,7 +106,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.topics.getAll({}); + const result = await novu.topics.list({}); // Handle the result console.log(result); @@ -121,7 +121,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { topicsGetAll } from "@novu/api/funcs/topicsGetAll.js"; +import { topicsList } from "@novu/api/funcs/topicsList.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -130,7 +130,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await topicsGetAll(novu, {}); + const res = await topicsList(novu, {}); if (!res.ok) { throw res.error; @@ -236,7 +236,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## get +## retrieve Get a topic by its topic key @@ -250,7 +250,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.topics.get(""); + const result = await novu.topics.retrieve(""); // Handle the result console.log(result); @@ -265,7 +265,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { topicsGet } from "@novu/api/funcs/topicsGet.js"; +import { topicsRetrieve } from "@novu/api/funcs/topicsRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -274,7 +274,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await topicsGet(novu, ""); + const res = await topicsRetrieve(novu, ""); if (!res.ok) { throw res.error; diff --git a/docs/sdks/workflowgroups/README.md b/docs/sdks/workflowgroups/README.md index 5f261265..d0d7e3ba 100644 --- a/docs/sdks/workflowgroups/README.md +++ b/docs/sdks/workflowgroups/README.md @@ -3,11 +3,13 @@ ## Overview +Workflow groups are used to organize workflows into logical groups. + ### Available Operations * [create](#create) - Create workflow group * [list](#list) - Get workflow groups -* [get](#get) - Get workflow group +* [retrieve](#retrieve) - Get workflow group * [update](#update) - Update workflow group * [delete](#delete) - Delete workflow group @@ -158,7 +160,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## get +## retrieve workflow group was previously named notification group @@ -172,7 +174,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.workflowGroups.get(""); + const result = await novu.workflowGroups.retrieve(""); // Handle the result console.log(result); @@ -187,7 +189,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsGet } from "@novu/api/funcs/workflowGroupsGet.js"; +import { workflowGroupsRetrieve } from "@novu/api/funcs/workflowGroupsRetrieve.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -196,7 +198,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await workflowGroupsGet(novu, ""); + const res = await workflowGroupsRetrieve(novu, ""); if (!res.ok) { throw res.error; diff --git a/jsr.json b/jsr.json index cb18e220..1e13a20f 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.13", + "version": "0.0.1-alpha.19", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index afd528a6..e7d304ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.13", + "version": "0.0.1-alpha.19", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@novu/api", - "version": "0.0.1-alpha.13", + "version": "0.0.1-alpha.19", "devDependencies": { "@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/parser": "^7.7.1", diff --git a/package.json b/package.json index b48e4c83..70cf2774 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.13", + "version": "0.0.1-alpha.19", "author": "Novu", "main": "./index.js", "sideEffects": false, diff --git a/sources/json-development.json b/sources/json-development.json index 6b70e897..f9f90652 100644 --- a/sources/json-development.json +++ b/sources/json-development.json @@ -162,8 +162,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "getCurrent" + ] } }, "/v1/environments": { @@ -330,14 +329,13 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "getAll" + ] } }, "/v1/environments/api-keys": { "get": { "operationId": "EnvironmentsControllerV1_listOrganizationApiKeys", - "x-speakeasy-group": "environments.apiKeys", + "x-speakeasy-group": "Environments.ApiKeys", "summary": "Get api keys", "parameters": [], "responses": { @@ -499,8 +497,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "list" + ] } }, "/v1/execution-details": { @@ -684,9 +681,7 @@ { "api-key": [] } - ], - "x-speakeasy-group": "executionDetails", - "x-speakeasy-name-override": "get" + ] } }, "/v1/events/trigger": { @@ -1239,7 +1234,7 @@ "x-speakeasy-usage-example": { "title": "Cancel Triggered Event" }, - "x-speakeasy-name-override": "cancel", + "x-speakeasy-name-override": "cancelByTransactionId", "summary": "Cancel triggered event", "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ", "parameters": [ @@ -1650,14 +1645,13 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "list" + ] } }, "/v1/notifications/stats": { "get": { "operationId": "NotificationsController_getActivityStats", - "x-speakeasy-group": "notifications.stats", + "x-speakeasy-group": "Notifications.Stats", "summary": "Get notification statistics", "parameters": [], "responses": { @@ -1816,15 +1810,14 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "get" + ] } }, "/v1/notifications/graph/stats": { "get": { "operationId": "NotificationsController_getActivityGraphStats", - "x-speakeasy-name-override": "get", - "x-speakeasy-group": "notificationsStats", + "x-speakeasy-name-override": "graph", + "x-speakeasy-group": "Notifications.Stats", "summary": "Get notification graph statistics", "parameters": [ { @@ -2168,8 +2161,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "get" + ] } }, "/v1/notification-groups": { @@ -2344,9 +2336,7 @@ { "api-key": [] } - ], - "x-speakeasy-group": "workflowGroups", - "x-speakeasy-name-override": "create" + ] }, "get": { "operationId": "NotificationGroupsController_listNotificationGroups", @@ -2512,9 +2502,7 @@ { "api-key": [] } - ], - "x-speakeasy-group": "workflowGroups", - "x-speakeasy-name-override": "list" + ] } }, "/v1/notification-groups/{id}": { @@ -2688,9 +2676,7 @@ { "api-key": [] } - ], - "x-speakeasy-group": "workflowGroups", - "x-speakeasy-name-override": "get" + ] }, "patch": { "operationId": "NotificationGroupsController_updateNotificationGroup", @@ -2872,9 +2858,7 @@ { "api-key": [] } - ], - "x-speakeasy-group": "workflowGroups", - "x-speakeasy-name-override": "update" + ] }, "delete": { "operationId": "NotificationGroupsController_deleteNotificationGroup", @@ -3046,9 +3030,7 @@ { "api-key": [] } - ], - "x-speakeasy-group": "workflowGroups", - "x-speakeasy-name-override": "delete" + ] } }, "/v1/integrations": { @@ -3216,8 +3198,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "list" + ] }, "post": { "operationId": "IntegrationsController_createIntegration", @@ -3390,8 +3371,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "create" + ] } }, "/v1/integrations/active": { @@ -3566,7 +3546,7 @@ "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": { "get": { "operationId": "IntegrationsController_getWebhookSupportStatus", - "x-speakeasy-group": "integrationsWebhooks", + "x-speakeasy-group": "Integrations.Webhooks", "summary": "Get webhook support status for provider", "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value", "parameters": [ @@ -3735,8 +3715,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "getStatus" + ] } }, "/v1/integrations/{integrationId}": { @@ -3945,8 +3924,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "update" + ] }, "delete": { "operationId": "IntegrationsController_removeIntegration", @@ -4120,14 +4098,13 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "delete" + ] } }, "/v1/integrations/{integrationId}/set-primary": { "post": { "operationId": "IntegrationsController_setIntegrationAsPrimary", - "x-speakeasy-name-override": "setPrimary", + "x-speakeasy-name-override": "setAsPrimary", "summary": "Set integration as primary", "parameters": [ { @@ -4537,8 +4514,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "getAll" + ] }, "post": { "operationId": "SubscribersController_createSubscriber", @@ -4711,8 +4687,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "create" + ] } }, "/v1/subscribers/{subscriberId}": { @@ -4895,8 +4870,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "get" + ] }, "put": { "operationId": "SubscribersController_updateSubscriber", @@ -5078,8 +5052,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "update" + ] }, "delete": { "operationId": "SubscribersController_removeSubscriber", @@ -5251,8 +5224,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "delete" + ] } }, "/v1/subscribers/bulk": { @@ -5404,7 +5376,7 @@ "/v1/subscribers/{subscriberId}/credentials": { "put": { "operationId": "SubscribersController_updateSubscriberChannel", - "x-speakeasy-group": "subscribers.credentials", + "x-speakeasy-group": "Subscribers.Credentials", "summary": "Update subscriber credentials", "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.", "parameters": [ @@ -5583,13 +5555,12 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "update" + ] }, "patch": { "operationId": "SubscribersController_modifySubscriberChannel", "x-speakeasy-name-override": "append", - "x-speakeasy-group": "subscribers.credentials", + "x-speakeasy-group": "Subscribers.Credentials", "summary": "Modify subscriber credentials", "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n\n This endpoint appends provided credentials and deviceTokens to the existing ones.", "parameters": [ @@ -5774,7 +5745,7 @@ "/v1/subscribers/{subscriberId}/credentials/{providerId}": { "delete": { "operationId": "SubscribersController_deleteSubscriberCredentials", - "x-speakeasy-group": "subscribers.credentials", + "x-speakeasy-group": "Subscribers.Credentials", "summary": "Delete subscriber credentials by providerId", "description": "Delete subscriber credentials such as slack and expo tokens.", "parameters": [ @@ -5944,14 +5915,13 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "delete" + ] } }, "/v1/subscribers/{subscriberId}/online-status": { "patch": { "operationId": "SubscribersController_updateSubscriberOnlineFlag", - "x-speakeasy-name-override": "updateOnlineStatus", + "x-speakeasy-name-override": "updateOnlineFlag", "x-speakeasy-group": "Subscribers.properties", "summary": "Update subscriber online status", "description": "Used to update the subscriber isOnline flag.", @@ -6137,7 +6107,7 @@ "/v1/subscribers/{subscriberId}/preferences": { "get": { "operationId": "SubscribersController_listSubscriberPreferences", - "x-speakeasy-group": "subscribers.preferences", + "x-speakeasy-group": "Subscribers.Preferences", "summary": "Get subscriber preferences", "parameters": [ { @@ -6317,13 +6287,12 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "get" + ] }, "patch": { "operationId": "SubscribersController_updateSubscriberGlobalPreferences", "x-speakeasy-name-override": "updateGlobal", - "x-speakeasy-group": "subscribersPreferences", + "x-speakeasy-group": "Subscribers.Preferences", "summary": "Update subscriber global preferences", "parameters": [ { @@ -6507,8 +6476,8 @@ "/v1/subscribers/{subscriberId}/preferences/{parameter}": { "get": { "operationId": "SubscribersController_getSubscriberPreferenceByLevel", - "x-speakeasy-name-override": "getByLevel", - "x-speakeasy-group": "subscribers.preferences", + "x-speakeasy-name-override": "retrieveByLevel", + "x-speakeasy-group": "Subscribers.Preferences", "summary": "Get subscriber preferences by level", "parameters": [ { @@ -6705,7 +6674,7 @@ }, "patch": { "operationId": "SubscribersController_updateSubscriberPreference", - "x-speakeasy-group": "subscribers.preferences", + "x-speakeasy-group": "Subscribers.Preferences", "summary": "Update subscriber preference", "parameters": [ { @@ -6891,14 +6860,13 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "update" + ] } }, "/v1/subscribers/{subscriberId}/notifications/feed": { "get": { "operationId": "SubscribersController_getNotificationsFeed", - "x-speakeasy-group": "subscribers.notifications", + "x-speakeasy-group": "Subscribers.Notifications", "summary": "Get in-app notification feed for a particular subscriber", "parameters": [ { @@ -7124,15 +7092,14 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "getFeed" + ] } }, "/v1/subscribers/{subscriberId}/notifications/unseen": { "get": { "operationId": "SubscribersController_getUnseenCount", - "x-speakeasy-name-override": "getUnseenCount", - "x-speakeasy-group": "subscribersNotifications", + "x-speakeasy-name-override": "unseenCount", + "x-speakeasy-group": "Subscribers.Notifications", "summary": "Get the unseen in-app notifications count for subscribers feed", "parameters": [ { @@ -7322,8 +7289,8 @@ "/v1/subscribers/{subscriberId}/messages/mark-as": { "post": { "operationId": "SubscribersController_markMessagesAs", - "x-speakeasy-name-override": "mark", - "x-speakeasy-group": "subscribers.messages", + "x-speakeasy-name-override": "markAllAs", + "x-speakeasy-group": "Subscribers.Messages", "summary": "Mark a subscriber messages as seen, read, unseen or unread", "parameters": [ { @@ -7488,7 +7455,7 @@ "post": { "operationId": "SubscribersController_markAllUnreadAsRead", "x-speakeasy-name-override": "markAll", - "x-speakeasy-group": "subscribersMessages", + "x-speakeasy-group": "Subscribers.Messages", "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.", "parameters": [ { @@ -7650,7 +7617,7 @@ "post": { "operationId": "SubscribersController_markActionAsSeen", "x-speakeasy-name-override": "updateAsSeen", - "x-speakeasy-group": "subscribersMessages", + "x-speakeasy-group": "Subscribers.Messages", "summary": "Mark message action as seen", "parameters": [ { @@ -7848,8 +7815,8 @@ "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": { "get": { "operationId": "SubscribersController_chatOauthCallback", - "x-speakeasy-name-override": "handleOauthCallback", - "x-speakeasy-group": "subscribers.authentication", + "x-speakeasy-name-override": "chatAccessOauthCallBack", + "x-speakeasy-group": "Subscribers.Authentication", "summary": "Handle providers oauth redirect", "parameters": [ { @@ -8038,8 +8005,8 @@ "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": { "get": { "operationId": "SubscribersController_chatAccessOauth", - "x-speakeasy-name-override": "handleOauth", - "x-speakeasy-group": "subscribers.authentication", + "x-speakeasy-name-override": "chatAccessOauth", + "x-speakeasy-group": "Subscribers.Authentication", "summary": "Handle chat oauth", "parameters": [ { @@ -8425,8 +8392,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "get" + ] } }, "/v1/messages/{messageId}": { @@ -8600,8 +8566,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "delete" + ] } }, "/v1/messages/transaction/{transactionId}": { @@ -8960,8 +8925,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "create" + ] }, "get": { "operationId": "TopicsController_listTopics", @@ -9156,15 +9120,14 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "getAll" + ] } }, "/v1/topics/{topicKey}/subscribers": { "post": { "operationId": "TopicsController_addSubscribers", - "x-speakeasy-name-override": "add", - "x-speakeasy-group": "topics.subscribers", + "x-speakeasy-name-override": "assign", + "x-speakeasy-group": "Topics.Subscribers", "summary": "Subscribers addition", "description": "Add subscribers to a topic by key", "parameters": [ @@ -9343,7 +9306,7 @@ "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": { "get": { "operationId": "TopicsController_getTopicSubscriber", - "x-speakeasy-group": "topics.subscribers", + "x-speakeasy-group": "Topics.Subscribers", "summary": "Check topic subscriber", "description": "Check if a subscriber belongs to a certain topic", "parameters": [ @@ -9499,14 +9462,13 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "check" + ] } }, "/v1/topics/{topicKey}/subscribers/removal": { "post": { "operationId": "TopicsController_removeSubscribers", - "x-speakeasy-group": "topics.subscribers", + "x-speakeasy-group": "Topics.Subscribers", "summary": "Subscribers removal", "description": "Remove subscribers from a topic", "parameters": [ @@ -9679,8 +9641,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "remove" + ] } }, "/v1/topics/{topicKey}": { @@ -9868,8 +9829,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "delete" + ] }, "get": { "operationId": "TopicsController_getTopic", @@ -10042,8 +10002,7 @@ { "api-key": [] } - ], - "x-speakeasy-name-override": "get" + ] }, "patch": { "operationId": "TopicsController_renameTopic", diff --git a/src/funcs/cancel.ts b/src/funcs/cancel.ts deleted file mode 100644 index 9589a631..00000000 --- a/src/funcs/cancel.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Cancel triggered event - * - * @remarks - * - * Using a previously generated transactionId during the event trigger, - * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - */ -export async function cancel( - client: NovuCore, - transactionId: string, - options?: RequestOptions, -): Promise< - Result< - operations.EventsControllerCancelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.EventsControllerCancelRequest = { - transactionId: transactionId, - }; - - const parsed = safeParse( - input, - (value) => - operations.EventsControllerCancelRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - transactionId: encodeSimple("transactionId", payload.transactionId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EventsController_cancel", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EventsControllerCancelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(200, operations.EventsControllerCancelResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/environmentsGetAll.ts b/src/funcs/environmentsGetAll.ts deleted file mode 100644 index bbc8467b..00000000 --- a/src/funcs/environmentsGetAll.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get environments - */ -export async function environmentsGetAll( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/environments")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EnvironmentsControllerV1_listMyEnvironments", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/environmentsGetCurrent.ts b/src/funcs/environmentsGetCurrent.ts deleted file mode 100644 index ece83a29..00000000 --- a/src/funcs/environmentsGetCurrent.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get current environment - */ -export async function environmentsGetCurrent( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/environments/me")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EnvironmentsControllerV1_getCurrentEnvironment", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/environmentsList.ts b/src/funcs/environmentsList.ts index b3c6bf4e..a89ef071 100644 --- a/src/funcs/environmentsList.ts +++ b/src/funcs/environmentsList.ts @@ -2,13 +2,11 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; +import * as M from "../lib/matchers.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -18,17 +16,18 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** * Get environments */ export async function environmentsList( - client$: NovuCore, + client: NovuCore, options?: RequestOptions, ): Promise< Result< - Array, + operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -38,38 +37,25 @@ export async function environmentsList( | ConnectionError > > { - const path$ = pathToFunc("/v1/environments")(); + const path = pathToFunc("/v1/environments")(); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { - operationID: "EnvironmentsController_listMyEnvironments", + operationID: "EnvironmentsControllerV1_listMyEnvironments", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -79,16 +65,40 @@ export async function environmentsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - Array, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -97,12 +107,18 @@ export async function environmentsList( | RequestTimeoutError | ConnectionError >( - m$.json(200, z.array(components.EnvironmentResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/environmentsRetrieve.ts b/src/funcs/environmentsRetrieve.ts index bbbcedc0..dfbd74df 100644 --- a/src/funcs/environmentsRetrieve.ts +++ b/src/funcs/environmentsRetrieve.ts @@ -3,11 +3,10 @@ */ import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; +import * as M from "../lib/matchers.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -17,17 +16,18 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** * Get current environment */ export async function environmentsRetrieve( - client$: NovuCore, + client: NovuCore, options?: RequestOptions, ): Promise< Result< - components.EnvironmentResponseDto, + operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -37,38 +37,25 @@ export async function environmentsRetrieve( | ConnectionError > > { - const path$ = pathToFunc("/v1/environments/me")(); + const path = pathToFunc("/v1/environments/me")(); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { - operationID: "EnvironmentsController_getCurrentEnvironment", + operationID: "EnvironmentsControllerV1_getCurrentEnvironment", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -78,16 +65,40 @@ export async function environmentsRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.EnvironmentResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -96,12 +107,18 @@ export async function environmentsRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.EnvironmentResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/executionDetailsGet.ts b/src/funcs/executionDetailsGet.ts deleted file mode 100644 index e7f55906..00000000 --- a/src/funcs/executionDetailsGet.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get execution details - */ -export async function executionDetailsGet( - client: NovuCore, - notificationId: string, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = - { - notificationId: notificationId, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/execution-details")(); - - const query = encodeFormQuery({ - "notificationId": payload.notificationId, - "subscriberId": payload.subscriberId, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: - "ExecutionDetailsController_getExecutionDetailsForNotification", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/executionDetailsRetrieve.ts b/src/funcs/executionDetailsRetrieve.ts index 0e67d6ed..75a9bd93 100644 --- a/src/funcs/executionDetailsRetrieve.ts +++ b/src/funcs/executionDetailsRetrieve.ts @@ -2,15 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -27,13 +25,13 @@ import { Result } from "../types/fp.js"; * Get execution details */ export async function executionDetailsRetrieve( - client$: NovuCore, + client: NovuCore, notificationId: string, subscriberId: string, options?: RequestOptions, ): Promise< Result< - Array, + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -43,67 +41,52 @@ export async function executionDetailsRetrieve( | ConnectionError > > { - const input$: + const input: operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = { notificationId: notificationId, subscriberId: subscriberId, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations .ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const path$ = pathToFunc("/v1/execution-details")(); + const path = pathToFunc("/v1/execution-details")(); - const query$ = encodeFormQuery$({ - "notificationId": payload$.notificationId, - "subscriberId": payload$.subscriberId, + const query = encodeFormQuery({ + "notificationId": payload.notificationId, + "subscriberId": payload.subscriberId, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "ExecutionDetailsController_getExecutionDetailsForNotification", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -113,16 +96,42 @@ export async function executionDetailsRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - Array, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -131,12 +140,18 @@ export async function executionDetailsRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, z.array(components.ExecutionDetailsResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/integrationsSetAsPrimary.ts b/src/funcs/integrationsSetAsPrimary.ts index a13a3be9..e3baf90e 100644 --- a/src/funcs/integrationsSetAsPrimary.ts +++ b/src/funcs/integrationsSetAsPrimary.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -26,12 +25,12 @@ import { Result } from "../types/fp.js"; * Set integration as primary */ export async function integrationsSetAsPrimary( - client$: NovuCore, + client: NovuCore, integrationId: string, options?: RequestOptions, ): Promise< Result< - components.IntegrationResponseDto, + operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -41,67 +40,53 @@ export async function integrationsSetAsPrimary( | ConnectionError > > { - const input$: - operations.IntegrationsControllerSetIntegrationAsPrimaryRequest = { + const input: operations.IntegrationsControllerSetIntegrationAsPrimaryRequest = + { integrationId: integrationId, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations .IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - integrationId: encodeSimple$("integrationId", payload$.integrationId, { + const pathParams = { + integrationId: encodeSimple("integrationId", payload.integrationId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/integrations/{integrationId}/set-primary")( - pathParams$, + const path = pathToFunc("/v1/integrations/{integrationId}/set-primary")( + pathParams, ); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "IntegrationsController_setIntegrationAsPrimary", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -111,16 +96,41 @@ export async function integrationsSetAsPrimary( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.IntegrationResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -129,12 +139,18 @@ export async function integrationsSetAsPrimary( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.IntegrationResponseDto$inboundSchema), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([404, 409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/integrationsSetPrimary.ts b/src/funcs/integrationsSetPrimary.ts deleted file mode 100644 index 8b6fb52f..00000000 --- a/src/funcs/integrationsSetPrimary.ts +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Set integration as primary - */ -export async function integrationsSetPrimary( - client: NovuCore, - integrationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.IntegrationsControllerSetIntegrationAsPrimaryRequest = - { - integrationId: integrationId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - integrationId: encodeSimple("integrationId", payload.integrationId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/integrations/{integrationId}/set-primary")( - pathParams, - ); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_setIntegrationAsPrimary", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([404, 409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsWebhooksGetStatus.ts b/src/funcs/integrationsWebhooksGetStatus.ts deleted file mode 100644 index dd0bee1f..00000000 --- a/src/funcs/integrationsWebhooksGetStatus.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get webhook support status for provider - * - * @remarks - * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - */ -export async function integrationsWebhooksGetStatus( - client: NovuCore, - providerOrIntegrationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerGetWebhookSupportStatusResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.IntegrationsControllerGetWebhookSupportStatusRequest = - { - providerOrIntegrationId: providerOrIntegrationId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - providerOrIntegrationId: encodeSimple( - "providerOrIntegrationId", - payload.providerOrIntegrationId, - { explode: false, charEncoding: "percent" }, - ), - }; - - const path = pathToFunc( - "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status", - )(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_getWebhookSupportStatus", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerGetWebhookSupportStatusResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsWebhooksRetrieve.ts b/src/funcs/integrationsWebhooksRetrieve.ts index 773c34b6..2f11ee97 100644 --- a/src/funcs/integrationsWebhooksRetrieve.ts +++ b/src/funcs/integrationsWebhooksRetrieve.ts @@ -2,11 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,12 +28,12 @@ import { Result } from "../types/fp.js"; * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value */ export async function integrationsWebhooksRetrieve( - client$: NovuCore, + client: NovuCore, providerOrIntegrationId: string, options?: RequestOptions, ): Promise< Result< - boolean, + operations.IntegrationsControllerGetWebhookSupportStatusResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,68 +43,54 @@ export async function integrationsWebhooksRetrieve( | ConnectionError > > { - const input$: - operations.IntegrationsControllerGetWebhookSupportStatusRequest = { + const input: operations.IntegrationsControllerGetWebhookSupportStatusRequest = + { providerOrIntegrationId: providerOrIntegrationId, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations .IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - providerOrIntegrationId: encodeSimple$( + const pathParams = { + providerOrIntegrationId: encodeSimple( "providerOrIntegrationId", - payload$.providerOrIntegrationId, + payload.providerOrIntegrationId, { explode: false, charEncoding: "percent" }, ), }; - const path$ = pathToFunc( + const path = pathToFunc( "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status", - )(pathParams$); + )(pathParams); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "IntegrationsController_getWebhookSupportStatus", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -115,16 +100,41 @@ export async function integrationsWebhooksRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - boolean, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerGetWebhookSupportStatusResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -133,12 +143,18 @@ export async function integrationsWebhooksRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, z.boolean()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/messagesGet.ts b/src/funcs/messagesGet.ts deleted file mode 100644 index d0093347..00000000 --- a/src/funcs/messagesGet.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get messages - * - * @remarks - * Returns a list of messages, could paginate using the `page` query parameter - */ -export async function messagesGet( - client: NovuCore, - request: operations.MessagesControllerGetMessagesRequest, - options?: RequestOptions, -): Promise< - Result< - operations.MessagesControllerGetMessagesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.MessagesControllerGetMessagesRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/messages")(); - - const query = encodeFormQuery({ - "channel": payload.channel, - "limit": payload.limit, - "page": payload.page, - "subscriberId": payload.subscriberId, - "transactionId": payload.transactionId, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "MessagesController_getMessages", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.MessagesControllerGetMessagesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.MessagesControllerGetMessagesResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/messagesRetrieve.ts b/src/funcs/messagesRetrieve.ts index a17a2ded..a6c96530 100644 --- a/src/funcs/messagesRetrieve.ts +++ b/src/funcs/messagesRetrieve.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -29,12 +28,12 @@ import { Result } from "../types/fp.js"; * Returns a list of messages, could paginate using the `page` query parameter */ export async function messagesRetrieve( - client$: NovuCore, + client: NovuCore, request: operations.MessagesControllerGetMessagesRequest, options?: RequestOptions, ): Promise< Result< - components.ActivitiesResponseDto, + operations.MessagesControllerGetMessagesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,64 +43,47 @@ export async function messagesRetrieve( | ConnectionError > > { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + request, + (value) => operations.MessagesControllerGetMessagesRequest$outboundSchema.parse( - value$, + value, ), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const path$ = pathToFunc("/v1/messages")(); + const path = pathToFunc("/v1/messages")(); - const query$ = encodeFormQuery$({ - "channel": payload$.channel, - "limit": payload$.limit, - "page": payload$.page, - "subscriberId": payload$.subscriberId, - "transactionId": payload$.transactionId, + const query = encodeFormQuery({ + "channel": payload.channel, + "limit": payload.limit, + "page": payload.page, + "subscriberId": payload.subscriberId, + "transactionId": payload.transactionId, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "MessagesController_getMessages", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -111,16 +93,42 @@ export async function messagesRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.ActivitiesResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.MessagesControllerGetMessagesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -129,12 +137,17 @@ export async function messagesRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.ActivitiesResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations.MessagesControllerGetMessagesResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/notificationsGet.ts b/src/funcs/notificationsGet.ts deleted file mode 100644 index 61f40254..00000000 --- a/src/funcs/notificationsGet.ts +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get notification - */ -export async function notificationsGet( - client: NovuCore, - notificationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationsControllerGetNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.NotificationsControllerGetNotificationRequest = { - notificationId: notificationId, - }; - - const parsed = safeParse( - input, - (value) => - operations.NotificationsControllerGetNotificationRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - notificationId: encodeSimple("notificationId", payload.notificationId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/notifications/{notificationId}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationsController_getNotification", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationsControllerGetNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.NotificationsControllerGetNotificationResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/notificationsRetrieve.ts b/src/funcs/notificationsRetrieve.ts index b834e689..c18ce6a2 100644 --- a/src/funcs/notificationsRetrieve.ts +++ b/src/funcs/notificationsRetrieve.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -26,12 +25,12 @@ import { Result } from "../types/fp.js"; * Get notification */ export async function notificationsRetrieve( - client$: NovuCore, + client: NovuCore, notificationId: string, options?: RequestOptions, ): Promise< Result< - components.ActivityNotificationResponseDto, + operations.NotificationsControllerGetNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -41,63 +40,49 @@ export async function notificationsRetrieve( | ConnectionError > > { - const input$: operations.NotificationsControllerGetNotificationRequest = { + const input: operations.NotificationsControllerGetNotificationRequest = { notificationId: notificationId, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations.NotificationsControllerGetNotificationRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - notificationId: encodeSimple$("notificationId", payload$.notificationId, { + const pathParams = { + notificationId: encodeSimple("notificationId", payload.notificationId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/notifications/{notificationId}")(pathParams$); + const path = pathToFunc("/v1/notifications/{notificationId}")(pathParams); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "NotificationsController_getNotification", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -107,16 +92,41 @@ export async function notificationsRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.ActivityNotificationResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationsControllerGetNotificationResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -125,12 +135,17 @@ export async function notificationsRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.ActivityNotificationResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations.NotificationsControllerGetNotificationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/notificationsStatsGet.ts b/src/funcs/notificationsStatsGet.ts deleted file mode 100644 index f6016299..00000000 --- a/src/funcs/notificationsStatsGet.ts +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get notification statistics - */ -export async function notificationsStatsGet( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationsControllerGetActivityStatsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/notifications/stats")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationsController_getActivityStats", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationsControllerGetActivityStatsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.NotificationsControllerGetActivityStatsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/notificationsStatsGraph.ts b/src/funcs/notificationsStatsGraph.ts index 8e64da09..518bac45 100644 --- a/src/funcs/notificationsStatsGraph.ts +++ b/src/funcs/notificationsStatsGraph.ts @@ -2,15 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -27,12 +25,12 @@ import { Result } from "../types/fp.js"; * Get notification graph statistics */ export async function notificationsStatsGraph( - client$: NovuCore, + client: NovuCore, days?: number | undefined, options?: RequestOptions, ): Promise< Result< - Array, + operations.NotificationsControllerGetActivityGraphStatsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -42,63 +40,48 @@ export async function notificationsStatsGraph( | ConnectionError > > { - const input$: operations.NotificationsControllerGetActivityGraphStatsRequest = + const input: operations.NotificationsControllerGetActivityGraphStatsRequest = { days: days, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations .NotificationsControllerGetActivityGraphStatsRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const path$ = pathToFunc("/v1/notifications/graph/stats")(); + const path = pathToFunc("/v1/notifications/graph/stats")(); - const query$ = encodeFormQuery$({ - "days": payload$.days, + const query = encodeFormQuery({ + "days": payload.days, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "NotificationsController_getActivityGraphStats", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -108,16 +91,42 @@ export async function notificationsStatsGraph( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - Array, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationsControllerGetActivityGraphStatsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -126,12 +135,18 @@ export async function notificationsStatsGraph( | RequestTimeoutError | ConnectionError >( - m$.json(200, z.array(components.ActivityGraphStatesResponse$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .NotificationsControllerGetActivityGraphStatsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/notificationsStatsRetrieve.ts b/src/funcs/notificationsStatsRetrieve.ts index af40cec5..d90ece34 100644 --- a/src/funcs/notificationsStatsRetrieve.ts +++ b/src/funcs/notificationsStatsRetrieve.ts @@ -3,11 +3,10 @@ */ import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; +import * as M from "../lib/matchers.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -17,17 +16,18 @@ import { } from "../models/errors/httpclienterrors.js"; import { SDKError } from "../models/errors/sdkerror.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; import { Result } from "../types/fp.js"; /** * Get notification statistics */ export async function notificationsStatsRetrieve( - client$: NovuCore, + client: NovuCore, options?: RequestOptions, ): Promise< Result< - components.ActivityStatsResponseDto, + operations.NotificationsControllerGetActivityStatsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -37,38 +37,25 @@ export async function notificationsStatsRetrieve( | ConnectionError > > { - const path$ = pathToFunc("/v1/notifications/stats")(); + const path = pathToFunc("/v1/notifications/stats")(); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "NotificationsController_getActivityStats", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -78,16 +65,40 @@ export async function notificationsStatsRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.ActivityStatsResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationsControllerGetActivityStatsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -96,12 +107,17 @@ export async function notificationsStatsRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.ActivityStatsResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations.NotificationsControllerGetActivityStatsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersAuthenticationChatAccessOauth.ts b/src/funcs/subscribersAuthenticationChatAccessOauth.ts index f217a422..08684004 100644 --- a/src/funcs/subscribersAuthenticationChatAccessOauth.ts +++ b/src/funcs/subscribersAuthenticationChatAccessOauth.ts @@ -2,14 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { - encodeFormQuery as encodeFormQuery$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -29,12 +25,12 @@ import { Result } from "../types/fp.js"; * Handle chat oauth */ export async function subscribersAuthenticationChatAccessOauth( - client$: NovuCore, + client: NovuCore, request: operations.SubscribersControllerChatAccessOauthRequest, options?: RequestOptions, ): Promise< Result< - void, + operations.SubscribersControllerChatAccessOauthResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,74 +40,57 @@ export async function subscribersAuthenticationChatAccessOauth( | ConnectionError > > { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + request, + (value) => operations.SubscribersControllerChatAccessOauthRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - providerId: encodeSimple$("providerId", payload$.providerId, { + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { explode: false, charEncoding: "percent", }), - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc( + const path = pathToFunc( "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth", - )(pathParams$); + )(pathParams); - const query$ = encodeFormQuery$({ - "environmentId": payload$.environmentId, - "hmacHash": payload$.hmacHash, - "integrationIdentifier": payload$.integrationIdentifier, + const query = encodeFormQuery({ + "environmentId": payload.environmentId, + "hmacHash": payload.hmacHash, + "integrationIdentifier": payload.integrationIdentifier, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "*/*", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_chatAccessOauth", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -121,16 +100,42 @@ export async function subscribersAuthenticationChatAccessOauth( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - void, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerChatAccessOauthResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -139,12 +144,17 @@ export async function subscribersAuthenticationChatAccessOauth( | RequestTimeoutError | ConnectionError >( - m$.nil(200, z.void()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.nil( + 200, + operations.SubscribersControllerChatAccessOauthResponse$inboundSchema + .optional(), + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts b/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts index 1cf9abef..f4d70e72 100644 --- a/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts +++ b/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts @@ -3,12 +3,9 @@ */ import { NovuCore } from "../core.js"; -import { - encodeFormQuery as encodeFormQuery$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -28,12 +25,12 @@ import { Result } from "../types/fp.js"; * Handle providers oauth redirect */ export async function subscribersAuthenticationChatAccessOauthCallBack( - client$: NovuCore, + client: NovuCore, request: operations.SubscribersControllerChatOauthCallbackRequest, options?: RequestOptions, ): Promise< Result< - operations.SubscribersControllerChatOauthCallbackResponseBody, + operations.SubscribersControllerChatOauthCallbackResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -43,75 +40,58 @@ export async function subscribersAuthenticationChatAccessOauthCallBack( | ConnectionError > > { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + request, + (value) => operations.SubscribersControllerChatOauthCallbackRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - providerId: encodeSimple$("providerId", payload$.providerId, { + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { explode: false, charEncoding: "percent", }), - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc( + const path = pathToFunc( "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback", - )(pathParams$); + )(pathParams); - const query$ = encodeFormQuery$({ - "code": payload$.code, - "environmentId": payload$.environmentId, - "hmacHash": payload$.hmacHash, - "integrationIdentifier": payload$.integrationIdentifier, + const query = encodeFormQuery({ + "code": payload.code, + "environmentId": payload.environmentId, + "hmacHash": payload.hmacHash, + "integrationIdentifier": payload.integrationIdentifier, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_chatOauthCallback", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -121,16 +101,42 @@ export async function subscribersAuthenticationChatAccessOauthCallBack( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - operations.SubscribersControllerChatOauthCallbackResponseBody, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerChatOauthCallbackResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -139,16 +145,17 @@ export async function subscribersAuthenticationChatAccessOauthCallBack( | RequestTimeoutError | ConnectionError >( - m$.json( + M.json( 200, - operations - .SubscribersControllerChatOauthCallbackResponseBody$inboundSchema, + operations.SubscribersControllerChatOauthCallbackResponse$inboundSchema, + { key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersAuthenticationHandleOauth.ts b/src/funcs/subscribersAuthenticationHandleOauth.ts deleted file mode 100644 index d624e7f7..00000000 --- a/src/funcs/subscribersAuthenticationHandleOauth.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Handle chat oauth - */ -export async function subscribersAuthenticationHandleOauth( - client: NovuCore, - request: operations.SubscribersControllerChatAccessOauthRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerChatAccessOauthResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerChatAccessOauthRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - providerId: encodeSimple("providerId", payload.providerId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth", - )(pathParams); - - const query = encodeFormQuery({ - "environmentId": payload.environmentId, - "hmacHash": payload.hmacHash, - "integrationIdentifier": payload.integrationIdentifier, - }); - - const headers = new Headers({ - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_chatAccessOauth", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerChatAccessOauthResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 200, - operations.SubscribersControllerChatAccessOauthResponse$inboundSchema - .optional(), - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersAuthenticationHandleOauthCallback.ts b/src/funcs/subscribersAuthenticationHandleOauthCallback.ts deleted file mode 100644 index 77b6249a..00000000 --- a/src/funcs/subscribersAuthenticationHandleOauthCallback.ts +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Handle providers oauth redirect - */ -export async function subscribersAuthenticationHandleOauthCallback( - client: NovuCore, - request: operations.SubscribersControllerChatOauthCallbackRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerChatOauthCallbackResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerChatOauthCallbackRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - providerId: encodeSimple("providerId", payload.providerId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback", - )(pathParams); - - const query = encodeFormQuery({ - "code": payload.code, - "environmentId": payload.environmentId, - "hmacHash": payload.hmacHash, - "integrationIdentifier": payload.integrationIdentifier, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_chatOauthCallback", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerChatOauthCallbackResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerChatOauthCallbackResponse$inboundSchema, - { key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersGet.ts b/src/funcs/subscribersGet.ts deleted file mode 100644 index 4469fd47..00000000 --- a/src/funcs/subscribersGet.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get subscriber - * - * @remarks - * Get subscriber by your internal id used to identify the subscriber - */ -export async function subscribersGet( - client: NovuCore, - subscriberId: string, - includeTopics?: string | undefined, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerGetSubscriberRequest = { - subscriberId: subscriberId, - includeTopics: includeTopics, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerGetSubscriberRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); - - const query = encodeFormQuery({ - "includeTopics": payload.includeTopics, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getSubscriber", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerGetSubscriberResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersGetAll.ts b/src/funcs/subscribersGetAll.ts deleted file mode 100644 index 9d8ef3b0..00000000 --- a/src/funcs/subscribersGetAll.ts +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { dlv } from "../lib/dlv.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; -import { - createPageIterator, - haltIterator, - PageIterator, - Paginator, -} from "../types/operations.js"; - -/** - * Get subscribers - * - * @remarks - * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - */ -export async function subscribersGetAll( - client: NovuCore, - page?: number | undefined, - limit?: number | undefined, - options?: RequestOptions, -): Promise< - PageIterator< - Result< - operations.SubscribersControllerListSubscribersResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > - > -> { - const input: operations.SubscribersControllerListSubscribersRequest = { - page: page, - limit: limit, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerListSubscribersRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return haltIterator(parsed); - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/subscribers")(); - - const query = encodeFormQuery({ - "limit": payload.limit, - "page": payload.page, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_listSubscribers", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return haltIterator(requestRes); - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return haltIterator(doResult); - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result, raw] = await M.match< - operations.SubscribersControllerListSubscribersResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerListSubscribersResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return haltIterator(result); - } - - const nextFunc = ( - responseData: unknown, - ): Paginator< - Result< - operations.SubscribersControllerListSubscribersResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > - > => { - const page = input?.page || 0; - const nextPage = page + 1; - - if (!responseData) { - return () => null; - } - const results = dlv(responseData, "data.resultArray"); - if (!Array.isArray(results) || !results.length) { - return () => null; - } - const limit = input?.limit || 0; - if (results.length < limit) { - return () => null; - } - - return () => - subscribersGetAll( - client, - nextPage, - limit, - options, - ); - }; - - const page$ = { ...result, next: nextFunc(raw) }; - return { ...page$, ...createPageIterator(page$, (v) => !v.ok) }; -} diff --git a/src/funcs/subscribersList.ts b/src/funcs/subscribersList.ts index de4b29d9..edad860b 100644 --- a/src/funcs/subscribersList.ts +++ b/src/funcs/subscribersList.ts @@ -4,9 +4,9 @@ import { NovuCore } from "../core.js"; import { dlv } from "../lib/dlv.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -35,7 +35,7 @@ import { * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter */ export async function subscribersList( - client$: NovuCore, + client: NovuCore, page?: number | undefined, limit?: number | undefined, options?: RequestOptions, @@ -53,63 +53,48 @@ export async function subscribersList( > > > { - const input$: operations.SubscribersControllerListSubscribersRequest = { + const input: operations.SubscribersControllerListSubscribersRequest = { page: page, limit: limit, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations.SubscribersControllerListSubscribersRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return haltIterator(parsed$); + if (!parsed.ok) { + return haltIterator(parsed); } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const path$ = pathToFunc("/v1/subscribers")(); + const path = pathToFunc("/v1/subscribers")(); - const query$ = encodeFormQuery$({ - "limit": payload$.limit, - "page": payload$.page, + const query = encodeFormQuery({ + "limit": payload.limit, + "page": payload.page, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_listSubscribers", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return haltIterator(requestRes); - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -119,19 +104,41 @@ export async function subscribersList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return haltIterator(requestRes); + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return haltIterator(doResult); } const response = doResult.value; - const responseFields$ = { - HttpMeta: { Response: response, Request: request$ }, + const responseFields = { + HttpMeta: { Response: response, Request: req }, }; - const [result$, raw$] = await m$.match< + const [result, raw] = await M.match< operations.SubscribersControllerListSubscribersResponse, | SDKError | SDKValidationError @@ -141,15 +148,16 @@ export async function subscribersList( | RequestTimeoutError | ConnectionError >( - m$.json( + M.json( 200, operations.SubscribersControllerListSubscribersResponse$inboundSchema, - { key: "Result" }, + { hdrs: true, key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response, { extraFields: responseFields$ }); - if (!result$.ok) { - return haltIterator(result$); + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return haltIterator(result); } const nextFunc = ( @@ -166,7 +174,7 @@ export async function subscribersList( | ConnectionError > > => { - const page = input$?.page || 0; + const page = input?.page || 0; const nextPage = page + 1; if (!responseData) { @@ -176,20 +184,20 @@ export async function subscribersList( if (!Array.isArray(results) || !results.length) { return () => null; } - const limit = input$?.limit || 0; + const limit = input?.limit || 0; if (results.length < limit) { return () => null; } return () => subscribersList( - client$, + client, nextPage, limit, options, ); }; - const page$ = { ...result$, next: nextFunc(raw$) }; + const page$ = { ...result, next: nextFunc(raw) }; return { ...page$, ...createPageIterator(page$, (v) => !v.ok) }; } diff --git a/src/funcs/subscribersMessagesMark.ts b/src/funcs/subscribersMessagesMark.ts deleted file mode 100644 index d9f9b77b..00000000 --- a/src/funcs/subscribersMessagesMark.ts +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Mark a subscriber messages as seen, read, unseen or unread - */ -export async function subscribersMessagesMark( - client: NovuCore, - messageMarkAsRequestDto: components.MessageMarkAsRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerMarkMessagesAsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerMarkMessagesAsRequest = { - messageMarkAsRequestDto: messageMarkAsRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerMarkMessagesAsRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.MessageMarkAsRequestDto, { - explode: true, - }); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-as")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_markMessagesAs", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerMarkMessagesAsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 201, - operations.SubscribersControllerMarkMessagesAsResponse$inboundSchema, - { key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersMessagesMarkAllAs.ts b/src/funcs/subscribersMessagesMarkAllAs.ts index de3c2f3c..30029091 100644 --- a/src/funcs/subscribersMessagesMarkAllAs.ts +++ b/src/funcs/subscribersMessagesMarkAllAs.ts @@ -2,14 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -30,13 +26,13 @@ import { Result } from "../types/fp.js"; * Mark a subscriber messages as seen, read, unseen or unread */ export async function subscribersMessagesMarkAllAs( - client$: NovuCore, - subscriberId: string, + client: NovuCore, messageMarkAsRequestDto: components.MessageMarkAsRequestDto, + subscriberId: string, options?: RequestOptions, ): Promise< Result< - Array, + operations.SubscribersControllerMarkMessagesAsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -46,69 +42,55 @@ export async function subscribersMessagesMarkAllAs( | ConnectionError > > { - const input$: operations.SubscribersControllerMarkMessagesAsRequest = { - subscriberId: subscriberId, + const input: operations.SubscribersControllerMarkMessagesAsRequest = { messageMarkAsRequestDto: messageMarkAsRequestDto, + subscriberId: subscriberId, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations.SubscribersControllerMarkMessagesAsRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.MessageMarkAsRequestDto, { + const payload = parsed.value; + const body = encodeJSON("body", payload.MessageMarkAsRequestDto, { explode: true, }); - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-as")( - pathParams$, + const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-as")( + pathParams, ); - const headers$ = new Headers({ + const headers = new Headers({ "Content-Type": "application/json", Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_markMessagesAs", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -118,16 +100,41 @@ export async function subscribersMessagesMarkAllAs( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - Array, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerMarkMessagesAsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -136,12 +143,17 @@ export async function subscribersMessagesMarkAllAs( | RequestTimeoutError | ConnectionError >( - m$.json(201, z.array(components.MessageEntity$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 201, + operations.SubscribersControllerMarkMessagesAsResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersNotificationsGetFeed.ts b/src/funcs/subscribersNotificationsGetFeed.ts deleted file mode 100644 index 0d421b4f..00000000 --- a/src/funcs/subscribersNotificationsGetFeed.ts +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get in-app notification feed for a particular subscriber - */ -export async function subscribersNotificationsGetFeed( - client: NovuCore, - request: operations.SubscribersControllerGetNotificationsFeedRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetNotificationsFeedResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerGetNotificationsFeedRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/notifications/feed")( - pathParams, - ); - - const query = encodeFormQuery({ - "limit": payload.limit, - "page": payload.page, - "payload": payload.payload, - "read": payload.read, - "seen": payload.seen, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getNotificationsFeed", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetNotificationsFeedResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerGetNotificationsFeedResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersNotificationsGetUnseenCount.ts b/src/funcs/subscribersNotificationsGetUnseenCount.ts deleted file mode 100644 index e5f9c13b..00000000 --- a/src/funcs/subscribersNotificationsGetUnseenCount.ts +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get the unseen in-app notifications count for subscribers feed - */ -export async function subscribersNotificationsGetUnseenCount( - client: NovuCore, - request: operations.SubscribersControllerGetUnseenCountRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetUnseenCountResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerGetUnseenCountRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/notifications/unseen", - )(pathParams); - - const query = encodeFormQuery({ - "limit": payload.limit, - "seen": payload.seen, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getUnseenCount", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetUnseenCountResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerGetUnseenCountResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersNotificationsRetrieve.ts b/src/funcs/subscribersNotificationsRetrieve.ts index 4ba293fb..8c3615ff 100644 --- a/src/funcs/subscribersNotificationsRetrieve.ts +++ b/src/funcs/subscribersNotificationsRetrieve.ts @@ -3,12 +3,9 @@ */ import { NovuCore } from "../core.js"; -import { - encodeFormQuery as encodeFormQuery$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -28,12 +25,12 @@ import { Result } from "../types/fp.js"; * Get in-app notification feed for a particular subscriber */ export async function subscribersNotificationsRetrieve( - client$: NovuCore, + client: NovuCore, request: operations.SubscribersControllerGetNotificationsFeedRequest, options?: RequestOptions, ): Promise< Result< - operations.SubscribersControllerGetNotificationsFeedResponseBody, + operations.SubscribersControllerGetNotificationsFeedResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -43,72 +40,55 @@ export async function subscribersNotificationsRetrieve( | ConnectionError > > { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + request, + (value) => operations.SubscribersControllerGetNotificationsFeedRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/notifications/feed")( - pathParams$, + const path = pathToFunc("/v1/subscribers/{subscriberId}/notifications/feed")( + pathParams, ); - const query$ = encodeFormQuery$({ - "limit": payload$.limit, - "page": payload$.page, - "payload": payload$.payload, - "read": payload$.read, - "seen": payload$.seen, + const query = encodeFormQuery({ + "limit": payload.limit, + "page": payload.page, + "payload": payload.payload, + "read": payload.read, + "seen": payload.seen, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_getNotificationsFeed", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -118,16 +98,42 @@ export async function subscribersNotificationsRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - operations.SubscribersControllerGetNotificationsFeedResponseBody, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetNotificationsFeedResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -136,16 +142,18 @@ export async function subscribersNotificationsRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json( + M.json( 200, operations - .SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema, + .SubscribersControllerGetNotificationsFeedResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersNotificationsUnseenCount.ts b/src/funcs/subscribersNotificationsUnseenCount.ts index 9f98dc9d..0589d80e 100644 --- a/src/funcs/subscribersNotificationsUnseenCount.ts +++ b/src/funcs/subscribersNotificationsUnseenCount.ts @@ -3,16 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { - encodeFormQuery as encodeFormQuery$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -29,12 +25,12 @@ import { Result } from "../types/fp.js"; * Get the unseen in-app notifications count for subscribers feed */ export async function subscribersNotificationsUnseenCount( - client$: NovuCore, + client: NovuCore, request: operations.SubscribersControllerGetUnseenCountRequest, options?: RequestOptions, ): Promise< Result< - components.UnseenCountResponse, + operations.SubscribersControllerGetUnseenCountResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,69 +40,52 @@ export async function subscribersNotificationsUnseenCount( | ConnectionError > > { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + request, + (value) => operations.SubscribersControllerGetUnseenCountRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc( + const path = pathToFunc( "/v1/subscribers/{subscriberId}/notifications/unseen", - )(pathParams$); + )(pathParams); - const query$ = encodeFormQuery$({ - "limit": payload$.limit, - "seen": payload$.seen, + const query = encodeFormQuery({ + "limit": payload.limit, + "seen": payload.seen, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_getUnseenCount", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -116,16 +95,42 @@ export async function subscribersNotificationsUnseenCount( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.UnseenCountResponse, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetUnseenCountResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -134,12 +139,17 @@ export async function subscribersNotificationsUnseenCount( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.UnseenCountResponse$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations.SubscribersControllerGetUnseenCountResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersPreferencesGet.ts b/src/funcs/subscribersPreferencesGet.ts deleted file mode 100644 index 576c88dc..00000000 --- a/src/funcs/subscribersPreferencesGet.ts +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get subscriber preferences - */ -export async function subscribersPreferencesGet( - client: NovuCore, - subscriberId: string, - includeInactiveChannels?: boolean | undefined, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerListSubscriberPreferencesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.SubscribersControllerListSubscriberPreferencesRequest = { - subscriberId: subscriberId, - includeInactiveChannels: includeInactiveChannels, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerListSubscriberPreferencesRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( - pathParams, - ); - - const query = encodeFormQuery({ - "includeInactiveChannels": payload.includeInactiveChannels, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_listSubscriberPreferences", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerListSubscriberPreferencesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerListSubscriberPreferencesResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersPreferencesGetByLevel.ts b/src/funcs/subscribersPreferencesGetByLevel.ts deleted file mode 100644 index 4ce39832..00000000 --- a/src/funcs/subscribersPreferencesGetByLevel.ts +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get subscriber preferences by level - */ -export async function subscribersPreferencesGetByLevel( - client: NovuCore, - request: - operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations - .SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - parameter: encodeSimple("parameter", payload.parameter, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/preferences/{parameter}", - )(pathParams); - - const query = encodeFormQuery({ - "includeInactiveChannels": payload.includeInactiveChannels, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getSubscriberPreferenceByLevel", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersPreferencesList.ts b/src/funcs/subscribersPreferencesList.ts index 7d815c92..0207dcfd 100644 --- a/src/funcs/subscribersPreferencesList.ts +++ b/src/funcs/subscribersPreferencesList.ts @@ -2,15 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -27,12 +25,13 @@ import { Result } from "../types/fp.js"; * Get subscriber preferences */ export async function subscribersPreferencesList( - client$: NovuCore, + client: NovuCore, subscriberId: string, + includeInactiveChannels?: boolean | undefined, options?: RequestOptions, ): Promise< Result< - Array, + operations.SubscribersControllerListSubscriberPreferencesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -42,67 +41,58 @@ export async function subscribersPreferencesList( | ConnectionError > > { - const input$: + const input: operations.SubscribersControllerListSubscriberPreferencesRequest = { subscriberId: subscriberId, + includeInactiveChannels: includeInactiveChannels, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations .SubscribersControllerListSubscriberPreferencesRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( - pathParams$, + const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( + pathParams, ); - const headers$ = new Headers({ + const query = encodeFormQuery({ + "includeInactiveChannels": payload.includeInactiveChannels, + }); + + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_listSubscriberPreferences", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -112,16 +102,42 @@ export async function subscribersPreferencesList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - Array, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerListSubscriberPreferencesResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -130,15 +146,18 @@ export async function subscribersPreferencesList( | RequestTimeoutError | ConnectionError >( - m$.json( + M.json( 200, - z.array(components.UpdateSubscriberPreferenceResponseDto$inboundSchema), + operations + .SubscribersControllerListSubscriberPreferencesResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersPreferencesRetrieveByLevel.ts b/src/funcs/subscribersPreferencesRetrieveByLevel.ts index fc9f5db5..351067b7 100644 --- a/src/funcs/subscribersPreferencesRetrieveByLevel.ts +++ b/src/funcs/subscribersPreferencesRetrieveByLevel.ts @@ -2,15 +2,13 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -27,13 +25,13 @@ import { Result } from "../types/fp.js"; * Get subscriber preferences by level */ export async function subscribersPreferencesRetrieveByLevel( - client$: NovuCore, - parameter: operations.Parameter, - subscriberId: string, + client: NovuCore, + request: + operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, options?: RequestOptions, ): Promise< Result< - Array, + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -43,72 +41,56 @@ export async function subscribersPreferencesRetrieveByLevel( | ConnectionError > > { - const input$: - operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest = { - parameter: parameter, - subscriberId: subscriberId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + request, + (value) => operations .SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - parameter: encodeSimple$("parameter", payload$.parameter, { + const pathParams = { + parameter: encodeSimple("parameter", payload.parameter, { explode: false, charEncoding: "percent", }), - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc( + const path = pathToFunc( "/v1/subscribers/{subscriberId}/preferences/{parameter}", - )(pathParams$); + )(pathParams); + + const query = encodeFormQuery({ + "includeInactiveChannels": payload.includeInactiveChannels, + }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_getSubscriberPreferenceByLevel", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -118,16 +100,42 @@ export async function subscribersPreferencesRetrieveByLevel( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - Array, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -136,15 +144,18 @@ export async function subscribersPreferencesRetrieveByLevel( | RequestTimeoutError | ConnectionError >( - m$.json( + M.json( 200, - z.array(components.GetSubscriberPreferencesResponseDto$inboundSchema), + operations + .SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema, + { hdrs: true, key: "Result" }, ), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts b/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts index 59961603..309edbbd 100644 --- a/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts +++ b/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts @@ -3,12 +3,9 @@ */ import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -32,14 +29,14 @@ import { Result } from "../types/fp.js"; * Used to update the subscriber isOnline flag. */ export async function subscribersPropertiesUpdateOnlineFlag( - client$: NovuCore, - subscriberId: string, + client: NovuCore, updateSubscriberOnlineFlagRequestDto: components.UpdateSubscriberOnlineFlagRequestDto, + subscriberId: string, options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -49,74 +46,60 @@ export async function subscribersPropertiesUpdateOnlineFlag( | ConnectionError > > { - const input$: + const input: operations.SubscribersControllerUpdateSubscriberOnlineFlagRequest = { - subscriberId: subscriberId, updateSubscriberOnlineFlagRequestDto: updateSubscriberOnlineFlagRequestDto, + subscriberId: subscriberId, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations .SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = encodeJSON$( + const payload = parsed.value; + const body = encodeJSON( "body", - payload$.UpdateSubscriberOnlineFlagRequestDto, + payload.UpdateSubscriberOnlineFlagRequestDto, { explode: true }, ); - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/subscribers/{subscriberId}/online-status")( - pathParams$, + const path = pathToFunc("/v1/subscribers/{subscriberId}/online-status")( + pathParams, ); - const headers$ = new Headers({ + const headers = new Headers({ "Content-Type": "application/json", Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_updateSubscriberOnlineFlag", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -126,16 +109,41 @@ export async function subscribersPropertiesUpdateOnlineFlag( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.SubscriberResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -144,12 +152,18 @@ export async function subscribersPropertiesUpdateOnlineFlag( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.SubscriberResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts b/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts deleted file mode 100644 index ea22f111..00000000 --- a/src/funcs/subscribersPropertiesUpdateOnlineStatus.ts +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update subscriber online status - * - * @remarks - * Used to update the subscriber isOnline flag. - */ -export async function subscribersPropertiesUpdateOnlineStatus( - client: NovuCore, - updateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.SubscribersControllerUpdateSubscriberOnlineFlagRequest = { - updateSubscriberOnlineFlagRequestDto: - updateSubscriberOnlineFlagRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON( - "body", - payload.UpdateSubscriberOnlineFlagRequestDto, - { explode: true }, - ); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/online-status")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_updateSubscriberOnlineFlag", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PATCH", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersRetrieve.ts b/src/funcs/subscribersRetrieve.ts index 99b4c315..c53191ce 100644 --- a/src/funcs/subscribersRetrieve.ts +++ b/src/funcs/subscribersRetrieve.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -29,12 +28,13 @@ import { Result } from "../types/fp.js"; * Get subscriber by your internal id used to identify the subscriber */ export async function subscribersRetrieve( - client$: NovuCore, + client: NovuCore, subscriberId: string, + includeTopics?: string | undefined, options?: RequestOptions, ): Promise< Result< - components.SubscriberResponseDto, + operations.SubscribersControllerGetSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,64 +44,55 @@ export async function subscribersRetrieve( | ConnectionError > > { - const input$: operations.SubscribersControllerGetSubscriberRequest = { + const input: operations.SubscribersControllerGetSubscriberRequest = { subscriberId: subscriberId, + includeTopics: includeTopics, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations.SubscribersControllerGetSubscriberRequest$outboundSchema.parse( - value$, + value, ), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - subscriberId: encodeSimple$("subscriberId", payload$.subscriberId, { + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams$); + const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); - const headers$ = new Headers({ + const query = encodeFormQuery({ + "includeTopics": payload.includeTopics, + }); + + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "SubscribersController_getSubscriber", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -111,16 +102,42 @@ export async function subscribersRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.SubscriberResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -129,12 +146,17 @@ export async function subscribersRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.SubscriberResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations.SubscribersControllerGetSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/topicsGet.ts b/src/funcs/topicsGet.ts deleted file mode 100644 index 4ae1f4de..00000000 --- a/src/funcs/topicsGet.ts +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get topic - * - * @remarks - * Get a topic by its topic key - */ -export async function topicsGet( - client: NovuCore, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerGetTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerGetTopicRequest = { - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerGetTopicRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_getTopic", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerGetTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(200, operations.TopicsControllerGetTopicResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsGetAll.ts b/src/funcs/topicsGetAll.ts deleted file mode 100644 index caf0a44b..00000000 --- a/src/funcs/topicsGetAll.ts +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Filter topics - * - * @remarks - * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - */ -export async function topicsGetAll( - client: NovuCore, - request: operations.TopicsControllerListTopicsRequest, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerListTopicsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.TopicsControllerListTopicsRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/topics")(); - - const query = encodeFormQuery({ - "key": payload.key, - "page": payload.page, - "pageSize": payload.pageSize, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_listTopics", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerListTopicsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(200, operations.TopicsControllerListTopicsResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsList.ts b/src/funcs/topicsList.ts index 78b1c098..f545ecc1 100644 --- a/src/funcs/topicsList.ts +++ b/src/funcs/topicsList.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -29,12 +28,12 @@ import { Result } from "../types/fp.js"; * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter */ export async function topicsList( - client$: NovuCore, + client: NovuCore, request: operations.TopicsControllerListTopicsRequest, options?: RequestOptions, ): Promise< Result< - components.FilterTopicsResponseDto, + operations.TopicsControllerListTopicsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,60 +43,43 @@ export async function topicsList( | ConnectionError > > { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TopicsControllerListTopicsRequest$outboundSchema.parse(value$), + const parsed = safeParse( + request, + (value) => + operations.TopicsControllerListTopicsRequest$outboundSchema.parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const path$ = pathToFunc("/v1/topics")(); + const path = pathToFunc("/v1/topics")(); - const query$ = encodeFormQuery$({ - "key": payload$.key, - "page": payload$.page, - "pageSize": payload$.pageSize, + const query = encodeFormQuery({ + "key": payload.key, + "page": payload.page, + "pageSize": payload.pageSize, }); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "TopicsController_listTopics", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -107,16 +89,42 @@ export async function topicsList( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.FilterTopicsResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerListTopicsResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -125,12 +133,16 @@ export async function topicsList( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.FilterTopicsResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json(200, operations.TopicsControllerListTopicsResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/topicsRetrieve.ts b/src/funcs/topicsRetrieve.ts index 86192d23..8f4b71a0 100644 --- a/src/funcs/topicsRetrieve.ts +++ b/src/funcs/topicsRetrieve.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -29,12 +28,12 @@ import { Result } from "../types/fp.js"; * Get a topic by its topic key */ export async function topicsRetrieve( - client$: NovuCore, + client: NovuCore, topicKey: string, options?: RequestOptions, ): Promise< Result< - components.GetTopicResponseDto, + operations.TopicsControllerGetTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,62 +43,48 @@ export async function topicsRetrieve( | ConnectionError > > { - const input$: operations.TopicsControllerGetTopicRequest = { + const input: operations.TopicsControllerGetTopicRequest = { topicKey: topicKey, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TopicsControllerGetTopicRequest$outboundSchema.parse(value$), + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerGetTopicRequest$outboundSchema.parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - topicKey: encodeSimple$("topicKey", payload$.topicKey, { + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/topics/{topicKey}")(pathParams$); + const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "TopicsController_getTopic", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -109,16 +94,41 @@ export async function topicsRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.GetTopicResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerGetTopicResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -127,12 +137,16 @@ export async function topicsRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.GetTopicResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json(200, operations.TopicsControllerGetTopicResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/topicsSubscribersAdd.ts b/src/funcs/topicsSubscribersAdd.ts deleted file mode 100644 index 5ce4fb71..00000000 --- a/src/funcs/topicsSubscribersAdd.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Subscribers addition - * - * @remarks - * Add subscribers to a topic by key - */ -export async function topicsSubscribersAdd( - client: NovuCore, - addSubscribersRequestDto: components.AddSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerAddSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerAddSubscribersRequest = { - addSubscribersRequestDto: addSubscribersRequestDto, - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerAddSubscribersRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.AddSubscribersRequestDto, { - explode: true, - }); - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}/subscribers")(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_addSubscribers", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerAddSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 204, - operations.TopicsControllerAddSubscribersResponse$inboundSchema - .optional(), - { hdrs: true }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsSubscribersAssign.ts b/src/funcs/topicsSubscribersAssign.ts index d3337afe..e868c7bd 100644 --- a/src/funcs/topicsSubscribersAssign.ts +++ b/src/funcs/topicsSubscribersAssign.ts @@ -2,14 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -33,13 +29,13 @@ import { Result } from "../types/fp.js"; * Add subscribers to a topic by key */ export async function topicsSubscribersAssign( - client$: NovuCore, - topicKey: string, + client: NovuCore, addSubscribersRequestDto: components.AddSubscribersRequestDto, + topicKey: string, options?: RequestOptions, ): Promise< Result< - void, + operations.TopicsControllerAddSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -49,68 +45,54 @@ export async function topicsSubscribersAssign( | ConnectionError > > { - const input$: operations.TopicsControllerAddSubscribersRequest = { - topicKey: topicKey, + const input: operations.TopicsControllerAddSubscribersRequest = { addSubscribersRequestDto: addSubscribersRequestDto, + topicKey: topicKey, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations.TopicsControllerAddSubscribersRequest$outboundSchema.parse( - value$, + value, ), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.AddSubscribersRequestDto, { + const payload = parsed.value; + const body = encodeJSON("body", payload.AddSubscribersRequestDto, { explode: true, }); - const pathParams$ = { - topicKey: encodeSimple$("topicKey", payload$.topicKey, { + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/topics/{topicKey}/subscribers")(pathParams$); + const path = pathToFunc("/v1/topics/{topicKey}/subscribers")(pathParams); - const headers$ = new Headers({ + const headers = new Headers({ "Content-Type": "application/json", Accept: "*/*", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "TopicsController_addSubscribers", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -120,16 +102,41 @@ export async function topicsSubscribersAssign( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - void, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerAddSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -138,12 +145,18 @@ export async function topicsSubscribersAssign( | RequestTimeoutError | ConnectionError >( - m$.nil(204, z.void()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.nil( + 204, + operations.TopicsControllerAddSubscribersResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/topicsSubscribersCheck.ts b/src/funcs/topicsSubscribersCheck.ts deleted file mode 100644 index 675c0e47..00000000 --- a/src/funcs/topicsSubscribersCheck.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Check topic subscriber - * - * @remarks - * Check if a subscriber belongs to a certain topic - */ -export async function topicsSubscribersCheck( - client: NovuCore, - externalSubscriberId: string, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerGetTopicSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerGetTopicSubscriberRequest = { - externalSubscriberId: externalSubscriberId, - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - externalSubscriberId: encodeSimple( - "externalSubscriberId", - payload.externalSubscriberId, - { explode: false, charEncoding: "percent" }, - ), - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}", - )(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_getTopicSubscriber", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerGetTopicSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.TopicsControllerGetTopicSubscriberResponse$inboundSchema, - { key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsSubscribersDelete.ts b/src/funcs/topicsSubscribersDelete.ts index 557f4f40..f3059e17 100644 --- a/src/funcs/topicsSubscribersDelete.ts +++ b/src/funcs/topicsSubscribersDelete.ts @@ -2,14 +2,10 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import * as z from "zod"; import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; @@ -33,13 +29,13 @@ import { Result } from "../types/fp.js"; * Remove subscribers from a topic */ export async function topicsSubscribersDelete( - client$: NovuCore, - topicKey: string, + client: NovuCore, removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, + topicKey: string, options?: RequestOptions, ): Promise< Result< - void, + operations.TopicsControllerRemoveSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -49,70 +45,56 @@ export async function topicsSubscribersDelete( | ConnectionError > > { - const input$: operations.TopicsControllerRemoveSubscribersRequest = { - topicKey: topicKey, + const input: operations.TopicsControllerRemoveSubscribersRequest = { removeSubscribersRequestDto: removeSubscribersRequestDto, + topicKey: topicKey, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations.TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( - value$, + value, ), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.RemoveSubscribersRequestDto, { + const payload = parsed.value; + const body = encodeJSON("body", payload.RemoveSubscribersRequestDto, { explode: true, }); - const pathParams$ = { - topicKey: encodeSimple$("topicKey", payload$.topicKey, { + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/topics/{topicKey}/subscribers/removal")( - pathParams$, + const path = pathToFunc("/v1/topics/{topicKey}/subscribers/removal")( + pathParams, ); - const headers$ = new Headers({ + const headers = new Headers({ "Content-Type": "application/json", Accept: "*/*", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "TopicsController_removeSubscribers", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -122,16 +104,41 @@ export async function topicsSubscribersDelete( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - void, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerRemoveSubscribersResponse | undefined, | SDKError | SDKValidationError | UnexpectedClientError @@ -140,12 +147,18 @@ export async function topicsSubscribersDelete( | RequestTimeoutError | ConnectionError >( - m$.nil(204, z.void()), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.nil( + 204, + operations.TopicsControllerRemoveSubscribersResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/topicsSubscribersRemove.ts b/src/funcs/topicsSubscribersRemove.ts deleted file mode 100644 index e6c2242b..00000000 --- a/src/funcs/topicsSubscribersRemove.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Subscribers removal - * - * @remarks - * Remove subscribers from a topic - */ -export async function topicsSubscribersRemove( - client: NovuCore, - removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerRemoveSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerRemoveSubscribersRequest = { - removeSubscribersRequestDto: removeSubscribersRequestDto, - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.RemoveSubscribersRequestDto, { - explode: true, - }); - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}/subscribers/removal")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_removeSubscribers", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerRemoveSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 204, - operations.TopicsControllerRemoveSubscribersResponse$inboundSchema - .optional(), - { hdrs: true }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsSubscribersRetrieve.ts b/src/funcs/topicsSubscribersRetrieve.ts index 856d0a62..d4b068ae 100644 --- a/src/funcs/topicsSubscribersRetrieve.ts +++ b/src/funcs/topicsSubscribersRetrieve.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -29,13 +28,13 @@ import { Result } from "../types/fp.js"; * Check if a subscriber belongs to a certain topic */ export async function topicsSubscribersRetrieve( - client$: NovuCore, + client: NovuCore, externalSubscriberId: string, topicKey: string, options?: RequestOptions, ): Promise< Result< - components.TopicSubscriberDto, + operations.TopicsControllerGetTopicSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -45,72 +44,58 @@ export async function topicsSubscribersRetrieve( | ConnectionError > > { - const input$: operations.TopicsControllerGetTopicSubscriberRequest = { + const input: operations.TopicsControllerGetTopicSubscriberRequest = { externalSubscriberId: externalSubscriberId, topicKey: topicKey, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations.TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( - value$, + value, ), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - externalSubscriberId: encodeSimple$( + const pathParams = { + externalSubscriberId: encodeSimple( "externalSubscriberId", - payload$.externalSubscriberId, + payload.externalSubscriberId, { explode: false, charEncoding: "percent" }, ), - topicKey: encodeSimple$("topicKey", payload$.topicKey, { + topicKey: encodeSimple("topicKey", payload.topicKey, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc( + const path = pathToFunc( "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}", - )(pathParams$); + )(pathParams); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "TopicsController_getTopicSubscriber", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -120,16 +105,41 @@ export async function topicsSubscribersRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.TopicSubscriberDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerGetTopicSubscriberResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -138,12 +148,17 @@ export async function topicsSubscribersRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.TopicSubscriberDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations.TopicsControllerGetTopicSubscriberResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/funcs/workflowGroupsGet.ts b/src/funcs/workflowGroupsGet.ts deleted file mode 100644 index 7d3df4b9..00000000 --- a/src/funcs/workflowGroupsGet.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get workflow group - * - * @remarks - * workflow group was previously named notification group - */ -export async function workflowGroupsGet( - client: NovuCore, - id: string, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationGroupsControllerGetNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.NotificationGroupsControllerGetNotificationGroupRequest = { - id: id, - }; - - const parsed = safeParse( - input, - (value) => - operations - .NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - id: encodeSimple("id", payload.id, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationGroupsController_getNotificationGroup", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationGroupsControllerGetNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/workflowGroupsRetrieve.ts b/src/funcs/workflowGroupsRetrieve.ts index da00f3e6..b79ebb53 100644 --- a/src/funcs/workflowGroupsRetrieve.ts +++ b/src/funcs/workflowGroupsRetrieve.ts @@ -3,13 +3,12 @@ */ import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; import { RequestOptions } from "../lib/sdks.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; import { ConnectionError, InvalidRequestError, @@ -29,12 +28,12 @@ import { Result } from "../types/fp.js"; * workflow group was previously named notification group */ export async function workflowGroupsRetrieve( - client$: NovuCore, + client: NovuCore, id: string, options?: RequestOptions, ): Promise< Result< - components.NotificationGroupResponseDto, + operations.NotificationGroupsControllerGetNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -44,65 +43,51 @@ export async function workflowGroupsRetrieve( | ConnectionError > > { - const input$: + const input: operations.NotificationGroupsControllerGetNotificationGroupRequest = { id: id, }; - const parsed$ = schemas$.safeParse( - input$, - (value$) => + const parsed = safeParse( + input, + (value) => operations .NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema - .parse(value$), + .parse(value), "Input validation failed", ); - if (!parsed$.ok) { - return parsed$; + if (!parsed.ok) { + return parsed; } - const payload$ = parsed$.value; - const body$ = null; + const payload = parsed.value; + const body = null; - const pathParams$ = { - id: encodeSimple$("id", payload$.id, { + const pathParams = { + id: encodeSimple("id", payload.id, { explode: false, charEncoding: "percent", }), }; - const path$ = pathToFunc("/v1/notification-groups/{id}")(pathParams$); + const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); - const headers$ = new Headers({ + const headers = new Headers({ Accept: "application/json", }); - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + const context = { operationID: "NotificationGroupsController_getNotificationGroup", oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; + resolvedSecurity: requestSecurity, - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], + securitySource: client._options.apiKey, retryConfig: options?.retries - || client$.options$.retryConfig + || client._options.retryConfig || { strategy: "backoff", backoff: { @@ -112,16 +97,41 @@ export async function workflowGroupsRetrieve( maxElapsedTime: 3600000, }, retryConnectionErrors: true, - }, + } + || { strategy: "none" }, retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, }); if (!doResult.ok) { return doResult; } const response = doResult.value; - const [result$] = await m$.match< - components.NotificationGroupResponseDto, + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationGroupsControllerGetNotificationGroupResponse, | SDKError | SDKValidationError | UnexpectedClientError @@ -130,12 +140,18 @@ export async function workflowGroupsRetrieve( | RequestTimeoutError | ConnectionError >( - m$.json(200, components.NotificationGroupResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; + M.json( + 200, + operations + .NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; } - return result$; + return result; } diff --git a/src/lib/config.ts b/src/lib/config.ts index d8b4da86..f8c11846 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -55,7 +55,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0", - sdkVersion: "0.0.1-alpha.13", + sdkVersion: "0.0.1-alpha.19", genVersion: "2.461.4", - userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.13 2.461.4 1.0 @novu/api", + userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.19 2.461.4 1.0 @novu/api", } as const; diff --git a/src/sdk/authentication.ts b/src/sdk/authentication.ts index 1de499b9..992a9625 100644 --- a/src/sdk/authentication.ts +++ b/src/sdk/authentication.ts @@ -2,8 +2,8 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { subscribersAuthenticationHandleOauth } from "../funcs/subscribersAuthenticationHandleOauth.js"; -import { subscribersAuthenticationHandleOauthCallback } from "../funcs/subscribersAuthenticationHandleOauthCallback.js"; +import { subscribersAuthenticationChatAccessOauth } from "../funcs/subscribersAuthenticationChatAccessOauth.js"; +import { subscribersAuthenticationChatAccessOauthCallBack } from "../funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -12,11 +12,11 @@ export class Authentication extends ClientSDK { /** * Handle providers oauth redirect */ - async handleOauthCallback( + async chatAccessOauthCallBack( request: operations.SubscribersControllerChatOauthCallbackRequest, options?: RequestOptions, ): Promise { - return unwrapAsync(subscribersAuthenticationHandleOauthCallback( + return unwrapAsync(subscribersAuthenticationChatAccessOauthCallBack( this, request, options, @@ -26,13 +26,13 @@ export class Authentication extends ClientSDK { /** * Handle chat oauth */ - async handleOauth( + async chatAccessOauth( request: operations.SubscribersControllerChatAccessOauthRequest, options?: RequestOptions, ): Promise< operations.SubscribersControllerChatAccessOauthResponse | undefined > { - return unwrapAsync(subscribersAuthenticationHandleOauth( + return unwrapAsync(subscribersAuthenticationChatAccessOauth( this, request, options, diff --git a/src/sdk/environments.ts b/src/sdk/environments.ts index cf410bbb..ba0cf44f 100644 --- a/src/sdk/environments.ts +++ b/src/sdk/environments.ts @@ -2,8 +2,8 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { environmentsGetAll } from "../funcs/environmentsGetAll.js"; -import { environmentsGetCurrent } from "../funcs/environmentsGetCurrent.js"; +import { environmentsList } from "../funcs/environmentsList.js"; +import { environmentsRetrieve } from "../funcs/environmentsRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -18,10 +18,10 @@ export class Environments extends ClientSDK { /** * Get current environment */ - async getCurrent( + async retrieve( options?: RequestOptions, ): Promise { - return unwrapAsync(environmentsGetCurrent( + return unwrapAsync(environmentsRetrieve( this, options, )); @@ -30,10 +30,10 @@ export class Environments extends ClientSDK { /** * Get environments */ - async getAll( + async list( options?: RequestOptions, ): Promise { - return unwrapAsync(environmentsGetAll( + return unwrapAsync(environmentsList( this, options, )); diff --git a/src/sdk/executiondetails.ts b/src/sdk/executiondetails.ts index cfcb7d0c..ab136faa 100644 --- a/src/sdk/executiondetails.ts +++ b/src/sdk/executiondetails.ts @@ -2,7 +2,7 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { executionDetailsGet } from "../funcs/executionDetailsGet.js"; +import { executionDetailsRetrieve } from "../funcs/executionDetailsRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -11,14 +11,14 @@ export class ExecutionDetails extends ClientSDK { /** * Get execution details */ - async get( + async retrieve( notificationId: string, subscriberId: string, options?: RequestOptions, ): Promise< operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse > { - return unwrapAsync(executionDetailsGet( + return unwrapAsync(executionDetailsRetrieve( this, notificationId, subscriberId, diff --git a/src/sdk/integrations.ts b/src/sdk/integrations.ts index 5c2f4347..11dfece3 100644 --- a/src/sdk/integrations.ts +++ b/src/sdk/integrations.ts @@ -6,14 +6,20 @@ import { integrationsCreate } from "../funcs/integrationsCreate.js"; import { integrationsDelete } from "../funcs/integrationsDelete.js"; import { integrationsList } from "../funcs/integrationsList.js"; import { integrationsListActive } from "../funcs/integrationsListActive.js"; -import { integrationsSetPrimary } from "../funcs/integrationsSetPrimary.js"; +import { integrationsSetAsPrimary } from "../funcs/integrationsSetAsPrimary.js"; import { integrationsUpdate } from "../funcs/integrationsUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; +import { Webhooks } from "./webhooks.js"; export class Integrations extends ClientSDK { + private _webhooks?: Webhooks; + get webhooks(): Webhooks { + return (this._webhooks ??= new Webhooks(this._options)); + } + /** * Get integrations * @@ -94,11 +100,11 @@ export class Integrations extends ClientSDK { /** * Set integration as primary */ - async setPrimary( + async setAsPrimary( integrationId: string, options?: RequestOptions, ): Promise { - return unwrapAsync(integrationsSetPrimary( + return unwrapAsync(integrationsSetAsPrimary( this, integrationId, options, diff --git a/src/sdk/integrationswebhooks.ts b/src/sdk/integrationswebhooks.ts deleted file mode 100644 index 86b2f145..00000000 --- a/src/sdk/integrationswebhooks.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { integrationsWebhooksGetStatus } from "../funcs/integrationsWebhooksGetStatus.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class IntegrationsWebhooks extends ClientSDK { - /** - * Get webhook support status for provider - * - * @remarks - * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - */ - async getStatus( - providerOrIntegrationId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsWebhooksGetStatus( - this, - providerOrIntegrationId, - options, - )); - } -} diff --git a/src/sdk/messages.ts b/src/sdk/messages.ts index c3ea5f2d..bc23e83e 100644 --- a/src/sdk/messages.ts +++ b/src/sdk/messages.ts @@ -4,7 +4,7 @@ import { messagesDelete } from "../funcs/messagesDelete.js"; import { messagesDeleteByTransactionId } from "../funcs/messagesDeleteByTransactionId.js"; -import { messagesGet } from "../funcs/messagesGet.js"; +import { messagesRetrieve } from "../funcs/messagesRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -16,11 +16,11 @@ export class Messages extends ClientSDK { * @remarks * Returns a list of messages, could paginate using the `page` query parameter */ - async get( + async retrieve( request: operations.MessagesControllerGetMessagesRequest, options?: RequestOptions, ): Promise { - return unwrapAsync(messagesGet( + return unwrapAsync(messagesRetrieve( this, request, options, diff --git a/src/sdk/notifications.ts b/src/sdk/notifications.ts index 9ee1f327..bbfe0d85 100644 --- a/src/sdk/notifications.ts +++ b/src/sdk/notifications.ts @@ -2,8 +2,8 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { notificationsGet } from "../funcs/notificationsGet.js"; import { notificationsList } from "../funcs/notificationsList.js"; +import { notificationsRetrieve } from "../funcs/notificationsRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -32,11 +32,11 @@ export class Notifications extends ClientSDK { /** * Get notification */ - async get( + async retrieve( notificationId: string, options?: RequestOptions, ): Promise { - return unwrapAsync(notificationsGet( + return unwrapAsync(notificationsRetrieve( this, notificationId, options, diff --git a/src/sdk/notificationsstats.ts b/src/sdk/notificationsstats.ts deleted file mode 100644 index 04b1b0a7..00000000 --- a/src/sdk/notificationsstats.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { notificationsStatsGet } from "../funcs/notificationsStatsGet.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class NotificationsStats extends ClientSDK { - /** - * Get notification graph statistics - */ - async get( - days?: number | undefined, - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsStatsGet( - this, - days, - options, - )); - } -} diff --git a/src/sdk/novumessages.ts b/src/sdk/novumessages.ts index 7f4ae3df..b8eb5333 100644 --- a/src/sdk/novumessages.ts +++ b/src/sdk/novumessages.ts @@ -2,7 +2,9 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { subscribersMessagesMark } from "../funcs/subscribersMessagesMark.js"; +import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.js"; +import { subscribersMessagesMarkAllAs } from "../funcs/subscribersMessagesMarkAllAs.js"; +import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; @@ -12,16 +14,46 @@ export class NovuMessages extends ClientSDK { /** * Mark a subscriber messages as seen, read, unseen or unread */ - async mark( + async markAllAs( messageMarkAsRequestDto: components.MessageMarkAsRequestDto, subscriberId: string, options?: RequestOptions, ): Promise { - return unwrapAsync(subscribersMessagesMark( + return unwrapAsync(subscribersMessagesMarkAllAs( this, messageMarkAsRequestDto, subscriberId, options, )); } + + /** + * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + */ + async markAll( + markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersMessagesMarkAll( + this, + markAllMessageAsRequestDto, + subscriberId, + options, + )); + } + + /** + * Mark message action as seen + */ + async updateAsSeen( + request: operations.SubscribersControllerMarkActionAsSeenRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersMessagesUpdateAsSeen( + this, + request, + options, + )); + } } diff --git a/src/sdk/novunotifications.ts b/src/sdk/novunotifications.ts index dfaecb0d..32e3be09 100644 --- a/src/sdk/novunotifications.ts +++ b/src/sdk/novunotifications.ts @@ -5,7 +5,6 @@ import { subscribersNotificationsRetrieve } from "../funcs/subscribersNotificationsRetrieve.js"; import { subscribersNotificationsUnseenCount } from "../funcs/subscribersNotificationsUnseenCount.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -16,7 +15,7 @@ export class NovuNotifications extends ClientSDK { async retrieve( request: operations.SubscribersControllerGetNotificationsFeedRequest, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersNotificationsRetrieve( this, request, @@ -30,7 +29,7 @@ export class NovuNotifications extends ClientSDK { async unseenCount( request: operations.SubscribersControllerGetUnseenCountRequest, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(subscribersNotificationsUnseenCount( this, request, diff --git a/src/sdk/novusubscribers.ts b/src/sdk/novusubscribers.ts index 4bd49a05..b78fb169 100644 --- a/src/sdk/novusubscribers.ts +++ b/src/sdk/novusubscribers.ts @@ -7,6 +7,7 @@ import { topicsSubscribersDelete } from "../funcs/topicsSubscribersDelete.js"; import { topicsSubscribersRetrieve } from "../funcs/topicsSubscribersRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class NovuSubscribers extends ClientSDK { @@ -17,51 +18,51 @@ export class NovuSubscribers extends ClientSDK { * Add subscribers to a topic by key */ async assign( - topicKey: string, addSubscribersRequestDto: components.AddSubscribersRequestDto, + topicKey: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(topicsSubscribersAssign( this, - topicKey, addSubscribersRequestDto, + topicKey, options, )); } /** - * Subscribers removal + * Check topic subscriber * * @remarks - * Remove subscribers from a topic + * Check if a subscriber belongs to a certain topic */ - async delete( + async retrieve( + externalSubscriberId: string, topicKey: string, - removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersDelete( + ): Promise { + return unwrapAsync(topicsSubscribersRetrieve( this, + externalSubscriberId, topicKey, - removeSubscribersRequestDto, options, )); } /** - * Check topic subscriber + * Subscribers removal * * @remarks - * Check if a subscriber belongs to a certain topic + * Remove subscribers from a topic */ - async retrieve( - externalSubscriberId: string, + async delete( + removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, topicKey: string, options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersRetrieve( + ): Promise { + return unwrapAsync(topicsSubscribersDelete( this, - externalSubscriberId, + removeSubscribersRequestDto, topicKey, options, )); diff --git a/src/sdk/novusubscribersnotifications.ts b/src/sdk/novusubscribersnotifications.ts deleted file mode 100644 index c10759d4..00000000 --- a/src/sdk/novusubscribersnotifications.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersNotificationsGetFeed } from "../funcs/subscribersNotificationsGetFeed.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class NovuSubscribersNotifications extends ClientSDK { - /** - * Get in-app notification feed for a particular subscriber - */ - async getFeed( - request: operations.SubscribersControllerGetNotificationsFeedRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersNotificationsGetFeed( - this, - request, - options, - )); - } -} diff --git a/src/sdk/novutopicssubscribers.ts b/src/sdk/novutopicssubscribers.ts deleted file mode 100644 index 71ac521c..00000000 --- a/src/sdk/novutopicssubscribers.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { topicsSubscribersAdd } from "../funcs/topicsSubscribersAdd.js"; -import { topicsSubscribersCheck } from "../funcs/topicsSubscribersCheck.js"; -import { topicsSubscribersRemove } from "../funcs/topicsSubscribersRemove.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class NovuTopicsSubscribers extends ClientSDK { - /** - * Subscribers addition - * - * @remarks - * Add subscribers to a topic by key - */ - async add( - addSubscribersRequestDto: components.AddSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersAdd( - this, - addSubscribersRequestDto, - topicKey, - options, - )); - } - - /** - * Check topic subscriber - * - * @remarks - * Check if a subscriber belongs to a certain topic - */ - async check( - externalSubscriberId: string, - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersCheck( - this, - externalSubscriberId, - topicKey, - options, - )); - } - - /** - * Subscribers removal - * - * @remarks - * Remove subscribers from a topic - */ - async remove( - removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersRemove( - this, - removeSubscribersRequestDto, - topicKey, - options, - )); - } -} diff --git a/src/sdk/preferences.ts b/src/sdk/preferences.ts index 0ce52ef0..1b089387 100644 --- a/src/sdk/preferences.ts +++ b/src/sdk/preferences.ts @@ -2,10 +2,12 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { subscribersPreferencesGet } from "../funcs/subscribersPreferencesGet.js"; -import { subscribersPreferencesGetByLevel } from "../funcs/subscribersPreferencesGetByLevel.js"; +import { subscribersPreferencesList } from "../funcs/subscribersPreferencesList.js"; +import { subscribersPreferencesRetrieveByLevel } from "../funcs/subscribersPreferencesRetrieveByLevel.js"; import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.js"; +import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -13,14 +15,14 @@ export class Preferences extends ClientSDK { /** * Get subscriber preferences */ - async get( + async list( subscriberId: string, includeInactiveChannels?: boolean | undefined, options?: RequestOptions, ): Promise< operations.SubscribersControllerListSubscriberPreferencesResponse > { - return unwrapAsync(subscribersPreferencesGet( + return unwrapAsync(subscribersPreferencesList( this, subscriberId, includeInactiveChannels, @@ -28,17 +30,36 @@ export class Preferences extends ClientSDK { )); } + /** + * Update subscriber global preferences + */ + async updateGlobal( + updateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse + > { + return unwrapAsync(subscribersPreferencesUpdateGlobal( + this, + updateSubscriberGlobalPreferencesRequestDto, + subscriberId, + options, + )); + } + /** * Get subscriber preferences by level */ - async getByLevel( + async retrieveByLevel( request: operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, options?: RequestOptions, ): Promise< operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse > { - return unwrapAsync(subscribersPreferencesGetByLevel( + return unwrapAsync(subscribersPreferencesRetrieveByLevel( this, request, options, diff --git a/src/sdk/properties.ts b/src/sdk/properties.ts index bceed3c3..f2e4bed0 100644 --- a/src/sdk/properties.ts +++ b/src/sdk/properties.ts @@ -2,7 +2,7 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { subscribersPropertiesUpdateOnlineStatus } from "../funcs/subscribersPropertiesUpdateOnlineStatus.js"; +import { subscribersPropertiesUpdateOnlineFlag } from "../funcs/subscribersPropertiesUpdateOnlineFlag.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; @@ -15,7 +15,7 @@ export class Properties extends ClientSDK { * @remarks * Used to update the subscriber isOnline flag. */ - async updateOnlineStatus( + async updateOnlineFlag( updateSubscriberOnlineFlagRequestDto: components.UpdateSubscriberOnlineFlagRequestDto, subscriberId: string, @@ -23,7 +23,7 @@ export class Properties extends ClientSDK { ): Promise< operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse > { - return unwrapAsync(subscribersPropertiesUpdateOnlineStatus( + return unwrapAsync(subscribersPropertiesUpdateOnlineFlag( this, updateSubscriberOnlineFlagRequestDto, subscriberId, diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts index d826be4c..91eb14be 100644 --- a/src/sdk/sdk.ts +++ b/src/sdk/sdk.ts @@ -2,7 +2,7 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { cancel } from "../funcs/cancel.js"; +import { cancelByTransactionId } from "../funcs/cancelByTransactionId.js"; import { trigger } from "../funcs/trigger.js"; import { triggerBroadcast } from "../funcs/triggerBroadcast.js"; import { triggerBulk } from "../funcs/triggerBulk.js"; @@ -13,14 +13,9 @@ import { unwrapAsync } from "../types/fp.js"; import { Environments } from "./environments.js"; import { ExecutionDetails } from "./executiondetails.js"; import { Integrations } from "./integrations.js"; -import { IntegrationsWebhooks } from "./integrationswebhooks.js"; import { Messages } from "./messages.js"; import { Notifications } from "./notifications.js"; -import { NotificationsStats } from "./notificationsstats.js"; import { Subscribers } from "./subscribers.js"; -import { SubscribersMessages } from "./subscribersmessages.js"; -import { SubscribersNotifications } from "./subscribersnotifications.js"; -import { SubscribersPreferences } from "./subscriberspreferences.js"; import { Topics } from "./topics.js"; import { WorkflowGroups } from "./workflowgroups.js"; @@ -40,11 +35,6 @@ export class Novu extends ClientSDK { return (this._notifications ??= new Notifications(this._options)); } - private _notificationsStats?: NotificationsStats; - get notificationsStats(): NotificationsStats { - return (this._notificationsStats ??= new NotificationsStats(this._options)); - } - private _workflowGroups?: WorkflowGroups; get workflowGroups(): WorkflowGroups { return (this._workflowGroups ??= new WorkflowGroups(this._options)); @@ -55,39 +45,11 @@ export class Novu extends ClientSDK { return (this._integrations ??= new Integrations(this._options)); } - private _integrationsWebhooks?: IntegrationsWebhooks; - get integrationsWebhooks(): IntegrationsWebhooks { - return (this._integrationsWebhooks ??= new IntegrationsWebhooks( - this._options, - )); - } - private _subscribers?: Subscribers; get subscribers(): Subscribers { return (this._subscribers ??= new Subscribers(this._options)); } - private _subscribersPreferences?: SubscribersPreferences; - get subscribersPreferences(): SubscribersPreferences { - return (this._subscribersPreferences ??= new SubscribersPreferences( - this._options, - )); - } - - private _subscribersNotifications?: SubscribersNotifications; - get subscribersNotifications(): SubscribersNotifications { - return (this._subscribersNotifications ??= new SubscribersNotifications( - this._options, - )); - } - - private _subscribersMessages?: SubscribersMessages; - get subscribersMessages(): SubscribersMessages { - return (this._subscribersMessages ??= new SubscribersMessages( - this._options, - )); - } - private _messages?: Messages; get messages(): Messages { return (this._messages ??= new Messages(this._options)); @@ -164,11 +126,11 @@ export class Novu extends ClientSDK { * Using a previously generated transactionId during the event trigger, * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... */ - async cancel( + async cancelByTransactionId( transactionId: string, options?: RequestOptions, ): Promise { - return unwrapAsync(cancel( + return unwrapAsync(cancelByTransactionId( this, transactionId, options, diff --git a/src/sdk/stats.ts b/src/sdk/stats.ts index e29233c3..dd2e3d8e 100644 --- a/src/sdk/stats.ts +++ b/src/sdk/stats.ts @@ -2,7 +2,8 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { notificationsStatsGet } from "../funcs/notificationsStatsGet.js"; +import { notificationsStatsGraph } from "../funcs/notificationsStatsGraph.js"; +import { notificationsStatsRetrieve } from "../funcs/notificationsStatsRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; @@ -11,12 +12,26 @@ export class Stats extends ClientSDK { /** * Get notification statistics */ - async get( + async retrieve( options?: RequestOptions, ): Promise { - return unwrapAsync(notificationsStatsGet( + return unwrapAsync(notificationsStatsRetrieve( this, options, )); } + + /** + * Get notification graph statistics + */ + async graph( + days?: number | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsStatsGraph( + this, + days, + options, + )); + } } diff --git a/src/sdk/subscribers.ts b/src/sdk/subscribers.ts index 8c09945c..c0865190 100644 --- a/src/sdk/subscribers.ts +++ b/src/sdk/subscribers.ts @@ -5,8 +5,8 @@ import { subscribersCreate } from "../funcs/subscribersCreate.js"; import { subscribersCreateBulk } from "../funcs/subscribersCreateBulk.js"; import { subscribersDelete } from "../funcs/subscribersDelete.js"; -import { subscribersGet } from "../funcs/subscribersGet.js"; -import { subscribersGetAll } from "../funcs/subscribersGetAll.js"; +import { subscribersList } from "../funcs/subscribersList.js"; +import { subscribersRetrieve } from "../funcs/subscribersRetrieve.js"; import { subscribersUpdate } from "../funcs/subscribersUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; @@ -16,7 +16,7 @@ import { PageIterator, unwrapResultIterator } from "../types/operations.js"; import { Authentication } from "./authentication.js"; import { Credentials } from "./credentials.js"; import { NovuMessages } from "./novumessages.js"; -import { NovuSubscribersNotifications } from "./novusubscribersnotifications.js"; +import { NovuNotifications } from "./novunotifications.js"; import { Preferences } from "./preferences.js"; import { Properties } from "./properties.js"; @@ -36,11 +36,9 @@ export class Subscribers extends ClientSDK { return (this._preferences ??= new Preferences(this._options)); } - private _notifications?: NovuSubscribersNotifications; - get notifications(): NovuSubscribersNotifications { - return (this._notifications ??= new NovuSubscribersNotifications( - this._options, - )); + private _notifications?: NovuNotifications; + get notifications(): NovuNotifications { + return (this._notifications ??= new NovuNotifications(this._options)); } private _messages?: NovuMessages; @@ -59,14 +57,14 @@ export class Subscribers extends ClientSDK { * @remarks * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter */ - async getAll( + async list( page?: number | undefined, limit?: number | undefined, options?: RequestOptions, ): Promise< PageIterator > { - return unwrapResultIterator(subscribersGetAll( + return unwrapResultIterator(subscribersList( this, page, limit, @@ -97,12 +95,12 @@ export class Subscribers extends ClientSDK { * @remarks * Get subscriber by your internal id used to identify the subscriber */ - async get( + async retrieve( subscriberId: string, includeTopics?: string | undefined, options?: RequestOptions, ): Promise { - return unwrapAsync(subscribersGet( + return unwrapAsync(subscribersRetrieve( this, subscriberId, includeTopics, diff --git a/src/sdk/subscribersmessages.ts b/src/sdk/subscribersmessages.ts deleted file mode 100644 index df968e57..00000000 --- a/src/sdk/subscribersmessages.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.js"; -import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class SubscribersMessages extends ClientSDK { - /** - * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - */ - async markAll( - markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersMessagesMarkAll( - this, - markAllMessageAsRequestDto, - subscriberId, - options, - )); - } - - /** - * Mark message action as seen - */ - async updateAsSeen( - request: operations.SubscribersControllerMarkActionAsSeenRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersMessagesUpdateAsSeen( - this, - request, - options, - )); - } -} diff --git a/src/sdk/subscribersnotifications.ts b/src/sdk/subscribersnotifications.ts deleted file mode 100644 index 46f9ea9c..00000000 --- a/src/sdk/subscribersnotifications.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersNotificationsGetUnseenCount } from "../funcs/subscribersNotificationsGetUnseenCount.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class SubscribersNotifications extends ClientSDK { - /** - * Get the unseen in-app notifications count for subscribers feed - */ - async getUnseenCount( - request: operations.SubscribersControllerGetUnseenCountRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersNotificationsGetUnseenCount( - this, - request, - options, - )); - } -} diff --git a/src/sdk/subscriberspreferences.ts b/src/sdk/subscriberspreferences.ts deleted file mode 100644 index 28af46ed..00000000 --- a/src/sdk/subscriberspreferences.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class SubscribersPreferences extends ClientSDK { - /** - * Update subscriber global preferences - */ - async updateGlobal( - updateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse - > { - return unwrapAsync(subscribersPreferencesUpdateGlobal( - this, - updateSubscriberGlobalPreferencesRequestDto, - subscriberId, - options, - )); - } -} diff --git a/src/sdk/topics.ts b/src/sdk/topics.ts index 7870b8bb..1c6c17c3 100644 --- a/src/sdk/topics.ts +++ b/src/sdk/topics.ts @@ -4,19 +4,19 @@ import { topicsCreate } from "../funcs/topicsCreate.js"; import { topicsDelete } from "../funcs/topicsDelete.js"; -import { topicsGet } from "../funcs/topicsGet.js"; -import { topicsGetAll } from "../funcs/topicsGetAll.js"; +import { topicsList } from "../funcs/topicsList.js"; import { topicsRename } from "../funcs/topicsRename.js"; +import { topicsRetrieve } from "../funcs/topicsRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; -import { NovuTopicsSubscribers } from "./novutopicssubscribers.js"; +import { NovuSubscribers } from "./novusubscribers.js"; export class Topics extends ClientSDK { - private _subscribers?: NovuTopicsSubscribers; - get subscribers(): NovuTopicsSubscribers { - return (this._subscribers ??= new NovuTopicsSubscribers(this._options)); + private _subscribers?: NovuSubscribers; + get subscribers(): NovuSubscribers { + return (this._subscribers ??= new NovuSubscribers(this._options)); } /** @@ -42,11 +42,11 @@ export class Topics extends ClientSDK { * @remarks * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter */ - async getAll( + async list( request: operations.TopicsControllerListTopicsRequest, options?: RequestOptions, ): Promise { - return unwrapAsync(topicsGetAll( + return unwrapAsync(topicsList( this, request, options, @@ -76,11 +76,11 @@ export class Topics extends ClientSDK { * @remarks * Get a topic by its topic key */ - async get( + async retrieve( topicKey: string, options?: RequestOptions, ): Promise { - return unwrapAsync(topicsGet( + return unwrapAsync(topicsRetrieve( this, topicKey, options, diff --git a/src/sdk/webhooks.ts b/src/sdk/webhooks.ts index d456c74a..563aae20 100644 --- a/src/sdk/webhooks.ts +++ b/src/sdk/webhooks.ts @@ -4,6 +4,7 @@ import { integrationsWebhooksRetrieve } from "../funcs/integrationsWebhooksRetrieve.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Webhooks extends ClientSDK { @@ -16,7 +17,7 @@ export class Webhooks extends ClientSDK { async retrieve( providerOrIntegrationId: string, options?: RequestOptions, - ): Promise { + ): Promise { return unwrapAsync(integrationsWebhooksRetrieve( this, providerOrIntegrationId, diff --git a/src/sdk/workflowgroups.ts b/src/sdk/workflowgroups.ts index a44a791e..6bb5d9c1 100644 --- a/src/sdk/workflowgroups.ts +++ b/src/sdk/workflowgroups.ts @@ -4,8 +4,8 @@ import { workflowGroupsCreate } from "../funcs/workflowGroupsCreate.js"; import { workflowGroupsDelete } from "../funcs/workflowGroupsDelete.js"; -import { workflowGroupsGet } from "../funcs/workflowGroupsGet.js"; import { workflowGroupsList } from "../funcs/workflowGroupsList.js"; +import { workflowGroupsRetrieve } from "../funcs/workflowGroupsRetrieve.js"; import { workflowGroupsUpdate } from "../funcs/workflowGroupsUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; @@ -55,13 +55,13 @@ export class WorkflowGroups extends ClientSDK { * @remarks * workflow group was previously named notification group */ - async get( + async retrieve( id: string, options?: RequestOptions, ): Promise< operations.NotificationGroupsControllerGetNotificationGroupResponse > { - return unwrapAsync(workflowGroupsGet( + return unwrapAsync(workflowGroupsRetrieve( this, id, options, From f0dedccf4e893a353c7438f415369900b56b8304 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:29:08 +0100 Subject: [PATCH 07/12] relaunch --- .speakeasy/temp/applied_vJmsxPMnEh.yaml | 8807 +++++++++++++++++++ .speakeasy/temp/downloaded_RHwSKJmVgU.yaml | 9166 ++++++++++++++++++++ .speakeasy/temp/overlay_mYUHRoodFu.yaml | 8807 +++++++++++++++++++ docs/sdks/novunotifications/README.md | 167 + docs/sdks/novusubscribers/README.md | 249 + docs/sdks/webhooks/README.md | 80 + src/funcs/cancelByTransactionId.ts | 154 + 7 files changed, 27430 insertions(+) create mode 100644 .speakeasy/temp/applied_vJmsxPMnEh.yaml create mode 100644 .speakeasy/temp/downloaded_RHwSKJmVgU.yaml create mode 100644 .speakeasy/temp/overlay_mYUHRoodFu.yaml create mode 100644 docs/sdks/novunotifications/README.md create mode 100644 docs/sdks/novusubscribers/README.md create mode 100644 docs/sdks/webhooks/README.md create mode 100644 src/funcs/cancelByTransactionId.ts diff --git a/.speakeasy/temp/applied_vJmsxPMnEh.yaml b/.speakeasy/temp/applied_vJmsxPMnEh.yaml new file mode 100644 index 00000000..60718a3b --- /dev/null +++ b/.speakeasy/temp/applied_vJmsxPMnEh.yaml @@ -0,0 +1,8807 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancelByTransactionId + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_RHwSKJmVgU.yaml b/.speakeasy/temp/downloaded_RHwSKJmVgU.yaml new file mode 100644 index 00000000..8e0ac771 --- /dev/null +++ b/.speakeasy/temp/downloaded_RHwSKJmVgU.yaml @@ -0,0 +1,9166 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: |2- + + Trigger event is the main (and only) way to send notifications to subscribers. + The trigger identifier is used to match the particular workflow associated with it. + Additional information can be passed according the body interface below. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: |2- + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to + send announcements, etc. + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: |2- + + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. + Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are + successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on + the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that + organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that + are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported + or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and + `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will + be later used to receive notifications, and access notification feeds. + Communication credentials such as email, phone number, and 3 rd party + credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: |2- + + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string + like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. + Optionally you can pass feed id (or array) to mark messages of a + particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query + parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of + message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query + parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it + can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. + Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more + details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to + trigger workflows, and enable you to send notifications to subscribers + based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by + a workflow acting as a message blueprint. Notifications can be individual + or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your + favorite delivery provider. During the runtime of the API, the + Integrations Store is responsible for storing the configurations of all + the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure + to wrap content of email notifications. Layouts can be manipulated and + assigned to new or existing workflows within the Novu platform, allowing + users to create, manage, and assign these layouts to workflows, so they + can be reused to structure the appearance of notifications sent through + the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a + container for the logic and blueprint that are associated with a type of + notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same + functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous + to a pending pull request in git, enabling you to test changes before they + are applied to your environment and atomically apply them when you are + ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your + data and configuration. This means that subscribers, and preferences + created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for + a domain or subdomain. The feature parses the contents of the email and + POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing + message associated with its relevant metadata. This can be used to monitor + activity and discover potential issues with a specific provider or a + channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have + organizations, they are referred to as tenants. Tenants in Novu provides + the ability to tailor specific notification experiences to users of + different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a + particular channel. Messages contain information about the request that + triggered its delivery, a view of the data sent to the recipient, and a + timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each + organization you create has its own separate integration store, workflows, + subscribers, and API keys. This separation of resources allows you to + manage multi-tenant environments and separate domains within a single + account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They + provided detailed information on the execution of a workflow, including + the status of each step, the input and output of each step, and the + overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey + ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This + identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the workflow, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + Existing tenants will be updated with the provided details. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. + This identifier can be found on the template page. + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the template, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + If a new tenant object is provided, we will create a new tenant. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be + obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given + provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the + subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and + should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this + workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the + workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the + Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the + topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. + The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be + refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token + bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that + was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_mYUHRoodFu.yaml b/.speakeasy/temp/overlay_mYUHRoodFu.yaml new file mode 100644 index 00000000..60718a3b --- /dev/null +++ b/.speakeasy/temp/overlay_mYUHRoodFu.yaml @@ -0,0 +1,8807 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancelByTransactionId + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/docs/sdks/novunotifications/README.md b/docs/sdks/novunotifications/README.md new file mode 100644 index 00000000..63357980 --- /dev/null +++ b/docs/sdks/novunotifications/README.md @@ -0,0 +1,167 @@ +# NovuNotifications +(*subscribers.notifications*) + +## Overview + +### Available Operations + +* [retrieve](#retrieve) - Get in-app notification feed for a particular subscriber +* [unseenCount](#unseencount) - Get the unseen in-app notifications count for subscribers feed + +## retrieve + +Get in-app notification feed for a particular subscriber + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.notifications.retrieve({ + subscriberId: "", + payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersNotificationsRetrieve } from "@novu/api/funcs/subscribersNotificationsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersNotificationsRetrieve(novu, { + subscriberId: "", + payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerGetNotificationsFeedRequest](../../models/operations/subscriberscontrollergetnotificationsfeedrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponse](../../models/operations/subscriberscontrollergetnotificationsfeedresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## unseenCount + +Get the unseen in-app notifications count for subscribers feed + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.notifications.unseenCount({ + seen: false, + subscriberId: "", + limit: 2979.49, + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersNotificationsUnseenCount } from "@novu/api/funcs/subscribersNotificationsUnseenCount.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersNotificationsUnseenCount(novu, { + seen: false, + subscriberId: "", + limit: 2979.49, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerGetUnseenCountRequest](../../models/operations/subscriberscontrollergetunseencountrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerGetUnseenCountResponse](../../models/operations/subscriberscontrollergetunseencountresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novusubscribers/README.md b/docs/sdks/novusubscribers/README.md new file mode 100644 index 00000000..caeaf6c7 --- /dev/null +++ b/docs/sdks/novusubscribers/README.md @@ -0,0 +1,249 @@ +# NovuSubscribers +(*topics.subscribers*) + +## Overview + +### Available Operations + +* [assign](#assign) - Subscribers addition +* [retrieve](#retrieve) - Check topic subscriber +* [delete](#delete) - Subscribers removal + +## assign + +Add subscribers to a topic by key + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.subscribers.assign({ + subscribers: [ + "", + "", + ], + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersAssign } from "@novu/api/funcs/topicsSubscribersAssign.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersAssign(novu, { + subscribers: [ + "", + "", + ], + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `addSubscribersRequestDto` | [components.AddSubscribersRequestDto](../../models/components/addsubscribersrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerAddSubscribersResponse](../../models/operations/topicscontrolleraddsubscribersresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieve + +Check if a subscriber belongs to a certain topic + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.subscribers.retrieve("", ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersRetrieve } from "@novu/api/funcs/topicsSubscribersRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersRetrieve(novu, "", ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `externalSubscriberId` | *string* | :heavy_check_mark: | The external subscriber id | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerGetTopicSubscriberResponse](../../models/operations/topicscontrollergettopicsubscriberresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +Remove subscribers from a topic + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.subscribers.delete({ + subscribers: [ + "", + "", + ], + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersDelete } from "@novu/api/funcs/topicsSubscribersDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersDelete(novu, { + subscribers: [ + "", + "", + ], + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerRemoveSubscribersResponse](../../models/operations/topicscontrollerremovesubscribersresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/webhooks/README.md b/docs/sdks/webhooks/README.md new file mode 100644 index 00000000..5497d0aa --- /dev/null +++ b/docs/sdks/webhooks/README.md @@ -0,0 +1,80 @@ +# Webhooks +(*integrations.webhooks*) + +## Overview + +### Available Operations + +* [retrieve](#retrieve) - Get webhook support status for provider + +## retrieve + +Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.webhooks.retrieve(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsWebhooksRetrieve } from "@novu/api/funcs/integrationsWebhooksRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsWebhooksRetrieve(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerGetWebhookSupportStatusResponse](../../models/operations/integrationscontrollergetwebhooksupportstatusresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/src/funcs/cancelByTransactionId.ts b/src/funcs/cancelByTransactionId.ts new file mode 100644 index 00000000..6198c6de --- /dev/null +++ b/src/funcs/cancelByTransactionId.ts @@ -0,0 +1,154 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Cancel triggered event + * + * @remarks + * + * Using a previously generated transactionId during the event trigger, + * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + */ +export async function cancelByTransactionId( + client: NovuCore, + transactionId: string, + options?: RequestOptions, +): Promise< + Result< + operations.EventsControllerCancelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.EventsControllerCancelRequest = { + transactionId: transactionId, + }; + + const parsed = safeParse( + input, + (value) => + operations.EventsControllerCancelRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + transactionId: encodeSimple("transactionId", payload.transactionId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_cancel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EventsControllerCancelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, operations.EventsControllerCancelResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} From 8c97b28362853f97592c110f7c0f75c64c547066 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:29:12 +0100 Subject: [PATCH 08/12] relaunch --- .speakeasy/gen.lock | 4 ++-- .speakeasy/gen.yaml | 2 +- jsr.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/lib/config.ts | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 85c32c75..01a487f5 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -5,8 +5,8 @@ management: docVersion: "1.0" speakeasyVersion: 1.445.2 generationVersion: 2.461.4 - releaseVersion: 0.0.1-alpha.19 - configChecksum: bd7eb4c6370d3a31d86a517a8ce6f715 + releaseVersion: 0.0.1-alpha.20 + configChecksum: 8a8a03fca9c3f77a90cff7b3c822375c published: true features: typescript: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 15db42f9..60f8fd9b 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false typescript: - version: 0.0.1-alpha.19 + version: 0.0.1-alpha.20 additionalDependencies: dependencies: {} devDependencies: {} diff --git a/jsr.json b/jsr.json index 1e13a20f..1b84484c 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.19", + "version": "0.0.1-alpha.20", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index e7d304ea..9a74d22d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.19", + "version": "0.0.1-alpha.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@novu/api", - "version": "0.0.1-alpha.19", + "version": "0.0.1-alpha.20", "devDependencies": { "@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/parser": "^7.7.1", diff --git a/package.json b/package.json index 70cf2774..8bc5709d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.19", + "version": "0.0.1-alpha.20", "author": "Novu", "main": "./index.js", "sideEffects": false, diff --git a/src/lib/config.ts b/src/lib/config.ts index f8c11846..1eb16eff 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -55,7 +55,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0", - sdkVersion: "0.0.1-alpha.19", + sdkVersion: "0.0.1-alpha.20", genVersion: "2.461.4", - userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.19 2.461.4 1.0 @novu/api", + userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.20 2.461.4 1.0 @novu/api", } as const; From 779ab278e8ae77e575c365d82b3121cba99d78b1 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:30:39 +0100 Subject: [PATCH 09/12] relaunch --- .speakeasy/gen.yaml | 2 +- docs/lib/utils/retryconfig.md | 24 - .../components/activitiesresponsedto.md | 25 - .../components/activitygraphstatesresponse.md | 27 - .../activitynotificationresponsedto.md | 27 - ...activitynotificationresponsedtochannels.md | 15 - ...tivitynotificationsubscriberresponsedto.md | 21 - ...activitynotificationtemplateresponsedto.md | 22 - .../components/activitystatsresponsedto.md | 19 - docs/models/components/actor.md | 23 - .../components/addsubscribersrequestdto.md | 19 - docs/models/components/apikey.md | 19 - docs/models/components/backoffunit.md | 15 - docs/models/components/bulkapplychangedto.md | 19 - .../components/bulksubscribercreatedto.md | 19 - docs/models/components/bulktriggereventdto.md | 26 - docs/models/components/change.md | 14 - docs/models/components/changeresponsedto.md | 33 -- docs/models/components/changesresponsedto.md | 25 - .../changeworkflowstatusrequestdto.md | 17 - docs/models/components/channel.md | 15 - docs/models/components/channelcredentials.md | 24 - docs/models/components/channelpreference.md | 19 - .../components/channelpreferencetype.md | 17 - docs/models/components/channels.md | 15 - docs/models/components/channelsettings.md | 24 - docs/models/components/content.md | 20 - docs/models/components/controls.md | 14 - .../models/components/createfeedrequestdto.md | 17 - .../components/createintegrationrequestdto.md | 26 - .../createintegrationrequestdtochannel.md | 15 - .../components/createlayoutresponsedto.md | 17 - .../createnotificationgrouprequestdto.md | 17 - .../components/createsubscriberrequestdto.md | 25 - .../createsubscriberrequestdtodata.md | 14 - .../components/createtenantrequestdto.md | 20 - .../components/createtenantrequestdtodata.md | 14 - .../components/createtenantresponsedto.md | 27 - .../components/createtenantresponsedtodata.md | 14 - .../components/createtopicrequestdto.md | 19 - .../components/createtopicresponsedto.md | 18 - .../components/createworkflowrequestdto.md | 30 -- .../createworkflowrequestdtodata.md | 14 - ...eateworkflowrequestdtonotificationgroup.md | 14 - docs/models/components/credentialsdto.md | 56 -- docs/models/components/data.md | 14 - docs/models/components/databooleandto.md | 17 - docs/models/components/datanumberdto.md | 17 - .../models/components/delayregularmetadata.md | 19 - .../components/delayregularmetadatatype.md | 15 - .../components/delayregularmetadataunit.md | 15 - .../components/delayscheduledmetadata.md | 19 - .../components/delayscheduledmetadatatype.md | 15 - .../components/deletemessageresponsedto.md | 19 - .../deletemessageresponsedtostatus.md | 17 - .../deletenotificationgroupresponsedto.md | 19 - ...eletenotificationgroupresponsedtostatus.md | 17 - .../components/deletesubscriberresponsedto.md | 19 - .../deletesubscriberresponsedtostatus.md | 17 - .../components/digestregularmetadata.md | 24 - .../components/digestregularmetadatatype.md | 15 - .../components/digestregularmetadataunit.md | 19 - docs/models/components/digesttimedmetadata.md | 21 - .../components/digesttimedmetadatatype.md | 15 - .../components/digesttimedmetadataunit.md | 15 - docs/models/components/direction.md | 15 - docs/models/components/emailblock.md | 21 - docs/models/components/emailblockstyles.md | 17 - docs/models/components/emailblocktype.md | 15 - .../components/environmentresponsedto.md | 26 - .../components/executiondetailsresponsedto.md | 45 -- .../executiondetailsresponsedtochannel.md | 19 - .../executiondetailsresponsedtostatus.md | 19 - docs/models/components/feedid.md | 14 - docs/models/components/feedidentifier.md | 21 - docs/models/components/feedresponsedto.md | 26 - docs/models/components/fieldfilterpart.md | 23 - .../components/filtertopicsresponsedto.md | 33 -- .../models/components/getlayoutresponsedto.md | 41 -- .../components/getlayoutresponsedtochannel.md | 15 - .../getsubscriberpreferencesresponsedto.md | 21 - .../models/components/gettenantresponsedto.md | 27 - .../components/gettenantresponsedtodata.md | 14 - docs/models/components/gettopicresponsedto.md | 28 - .../components/integrationresponsedto.md | 41 -- .../integrationresponsedtochannel.md | 15 - .../components/markallmessageasrequestdto.md | 18 - .../markallmessageasrequestdtomarkas.md | 17 - docs/models/components/markas.md | 15 - .../components/markmessageactionasseendto.md | 18 - .../markmessageactionasseendtopayload.md | 16 - .../markmessageactionasseendtostatus.md | 17 - docs/models/components/messageaction.md | 17 - docs/models/components/messageactionresult.md | 16 - .../components/messageactionresultpayload.md | 14 - .../components/messageactionresulttype.md | 15 - docs/models/components/messageactionstatus.md | 15 - docs/models/components/messagebutton.md | 20 - docs/models/components/messagebuttontype.md | 15 - docs/models/components/messagecta.md | 19 - docs/models/components/messagectadata.md | 15 - docs/models/components/messagectatype.md | 15 - docs/models/components/messageentity.md | 14 - docs/models/components/messageid.md | 19 - .../components/messagemarkasrequestdto.md | 21 - .../messagemarkasrequestdtomarkas.md | 19 - docs/models/components/messageresponsedto.md | 67 --- .../components/messageresponsedtochannel.md | 15 - .../components/messageresponsedtooverrides.md | 16 - .../components/messageresponsedtopayload.md | 16 - .../components/messageresponsedtostatus.md | 15 - docs/models/components/messagetemplate.md | 14 - docs/models/components/metadata.md | 38 -- docs/models/components/monthlytype.md | 15 - docs/models/components/notificationgroup.md | 23 - .../notificationgroupresponsedto.md | 23 - docs/models/components/notificationstep.md | 26 - .../components/notificationstepvariant.md | 25 - .../notificationstepvariantmetadata.md | 38 -- .../notificationstepvariantparentid.md | 14 - .../notificationstepvariantreplycallback.md | 14 - docs/models/components/notificationtrigger.md | 26 - .../components/notificationtriggertype.md | 15 - .../components/notificationtriggervariable.md | 17 - docs/models/components/on.md | 15 - docs/models/components/operator.md | 15 - docs/models/components/ordinal.md | 15 - docs/models/components/ordinalvalue.md | 15 - .../organizationbrandingresponsedto.md | 25 - .../components/organizationresponsedto.md | 26 - docs/models/components/overrides.md | 16 - docs/models/components/parentid.md | 14 - docs/models/components/payload.md | 17 - docs/models/components/preference.md | 19 - docs/models/components/preferencechannels.md | 19 - docs/models/components/providerid.md | 17 - .../components/removesubscribersrequestdto.md | 19 - .../components/renameorganizationdto.md | 17 - .../components/renametopicrequestdto.md | 17 - .../components/renametopicresponsedto.md | 28 - docs/models/components/replycallback.md | 14 - docs/models/components/security.md | 17 - docs/models/components/source.md | 15 - docs/models/components/status.md | 15 - docs/models/components/stepfilter.md | 30 -- docs/models/components/stepfiltertype.md | 15 - .../models/components/subscriberpayloaddto.md | 25 - .../components/subscriberpayloaddtodata.md | 14 - .../components/subscriberresponsedto.md | 39 -- docs/models/components/system.md | 14 - docs/models/components/templateresponse.md | 25 - docs/models/components/tenant.md | 21 - docs/models/components/tenantpayloaddto.md | 17 - .../models/components/tenantpayloaddtodata.md | 14 - docs/models/components/textalign.md | 15 - docs/models/components/timedconfig.md | 20 - docs/models/components/tlsoptions.md | 14 - docs/models/components/to.md | 28 - docs/models/components/topicdto.md | 28 - docs/models/components/topicpayloaddto.md | 19 - docs/models/components/topicpayloaddtotype.md | 15 - docs/models/components/topicsubscriberdto.md | 27 - docs/models/components/translations.md | 14 - .../components/triggereventrequestdto.md | 32 -- .../triggereventrequestdtooverrides.md | 16 - .../triggereventrequestdtopayload.md | 17 - .../components/triggereventresponsedto.md | 21 - .../triggereventresponsedtostatus.md | 17 - .../components/triggereventtoallrequestdto.md | 24 - .../triggereventtoallrequestdtoactor.md | 23 - .../triggereventtoallrequestdtooverrides.md | 16 - .../triggereventtoallrequestdtopayload.md | 17 - .../triggereventtoallrequestdtotenant.md | 21 - docs/models/components/type.md | 15 - docs/models/components/unit.md | 15 - docs/models/components/unseencountresponse.md | 17 - .../components/updatebrandingdetailsdto.md | 24 - .../components/updateintegrationrequestdto.md | 22 - .../components/updatelayoutrequestdto.md | 22 - .../components/updatelayoutresponsedto.md | 41 -- .../updatelayoutresponsedtochannel.md | 15 - .../updatesubscriberchannelrequestdto.md | 22 - ...tesubscriberchannelrequestdtoproviderid.md | 17 - ...tesubscriberglobalpreferencesrequestdto.md | 16 - .../updatesubscriberonlineflagrequestdto.md | 17 - .../updatesubscriberpreferencerequestdto.md | 16 - .../updatesubscriberpreferenceresponsedto.md | 29 - .../components/updatesubscriberrequestdto.md | 22 - .../updatesubscriberrequestdtodata.md | 14 - .../components/updatetenantrequestdto.md | 17 - .../components/updatetenantrequestdtodata.md | 14 - .../components/updatetenantresponsedto.md | 27 - .../components/updatetenantresponsedtodata.md | 14 - .../components/updateworkflowrequestdto.md | 26 - .../updateworkflowrequestdtodata.md | 14 - docs/models/components/value.md | 15 - docs/models/components/variables.md | 16 - .../models/components/variablesresponsedto.md | 19 - docs/models/components/weekdays.md | 15 - .../components/workflowintegrationstatus.md | 14 - docs/models/components/workflowresponse.md | 66 --- .../models/components/workflowresponsedata.md | 14 - .../models/components/workflowsresponsedto.md | 25 - .../changescontrollerapplydiffrequest.md | 17 - .../changescontrollergetchangesrequest.md | 19 - docs/models/operations/channel.md | 15 - docs/models/operations/channels.md | 15 - ...ntrollerv1getcurrentenvironmentresponse.md | 28 - ...scontrollerv1listmyenvironmentsresponse.md | 30 -- ...rollerv1listorganizationapikeysresponse.md | 28 - ...tscontrollerbroadcasteventtoallresponse.md | 26 - .../eventscontrollercancelrequest.md | 17 - .../eventscontrollercancelresponse.md | 25 - .../eventscontrollertriggerbulkresponse.md | 28 - .../eventscontrollertriggerresponse.md | 26 - ...texecutiondetailsfornotificationrequest.md | 20 - ...executiondetailsfornotificationresponse.md | 40 -- .../feedscontrollerdeletefeedbyidrequest.md | 17 - ...ionscontrollercreateintegrationresponse.md | 36 -- ...controllergetactiveintegrationsresponse.md | 38 -- ...ontrollergetwebhooksupportstatusrequest.md | 17 - ...ntrollergetwebhooksupportstatusresponse.md | 23 - ...tionscontrollerlistintegrationsresponse.md | 38 -- ...tionscontrollerremoveintegrationrequest.md | 17 - ...ionscontrollerremoveintegrationresponse.md | 38 -- ...ontrollersetintegrationasprimaryrequest.md | 17 - ...ntrollersetintegrationasprimaryresponse.md | 36 -- ...scontrollerupdateintegrationbyidrequest.md | 19 - ...controllerupdateintegrationbyidresponse.md | 36 -- .../layoutscontrollerdeletelayoutrequest.md | 17 - .../layoutscontrollergetlayoutrequest.md | 17 - .../layoutscontrollerlistlayoutsrequest.md | 18 - ...ayoutscontrollersetdefaultlayoutrequest.md | 17 - .../layoutscontrollerupdatelayoutrequest.md | 21 - .../messagescontrollerdeletemessagerequest.md | 17 - ...messagescontrollerdeletemessageresponse.md | 26 - ...lerdeletemessagesbytransactionidrequest.md | 18 - ...erdeletemessagesbytransactionidresponse.md | 21 - .../messagescontrollergetmessagesrequest.md | 19 - .../messagescontrollergetmessagesresponse.md | 30 -- ...ntrollercreatenotificationgroupresponse.md | 27 - ...ontrollerdeletenotificationgrouprequest.md | 17 - ...ntrollerdeletenotificationgroupresponse.md | 26 - ...pscontrollergetnotificationgrouprequest.md | 17 - ...scontrollergetnotificationgroupresponse.md | 27 - ...ontrollerlistnotificationgroupsresponse.md | 29 - ...ontrollerupdatenotificationgrouprequest.md | 21 - ...ntrollerupdatenotificationgroupresponse.md | 27 - ...scontrollergetactivitygraphstatsrequest.md | 15 - ...controllergetactivitygraphstatsresponse.md | 34 -- ...tionscontrollergetactivitystatsresponse.md | 26 - ...cationscontrollergetnotificationrequest.md | 17 - ...ationscontrollergetnotificationresponse.md | 27 - ...tionscontrollerlistnotificationsrequest.md | 35 -- ...ionscontrollerlistnotificationsresponse.md | 30 -- docs/models/operations/orderby.md | 17 - docs/models/operations/parameter.md | 17 - docs/models/operations/queryparamchannel.md | 17 - ...controllerbulkcreatesubscribersresponse.md | 21 - ...criberscontrollerchataccessoauthrequest.md | 24 - ...riberscontrollerchataccessoauthresponse.md | 21 - ...iberscontrollerchatoauthcallbackrequest.md | 26 - ...berscontrollerchatoauthcallbackresponse.md | 23 - ...controllerchatoauthcallbackresponsebody.md | 14 - ...iberscontrollercreatesubscriberresponse.md | 30 -- ...ollerdeletesubscribercredentialsrequest.md | 19 - ...llerdeletesubscribercredentialsresponse.md | 21 - ...rscontrollergetnotificationsfeedrequest.md | 24 - ...scontrollergetnotificationsfeedresponse.md | 37 -- ...trollergetnotificationsfeedresponsebody.md | 32 -- ...ergetsubscriberpreferencebylevelrequest.md | 20 - ...rgetsubscriberpreferencebylevelresponse.md | 30 -- ...bscriberscontrollergetsubscriberrequest.md | 18 - ...scriberscontrollergetsubscriberresponse.md | 30 -- ...scriberscontrollergetunseencountrequest.md | 21 - ...criberscontrollergetunseencountresponse.md | 25 - ...trollerlistsubscriberpreferencesrequest.md | 18 - ...rollerlistsubscriberpreferencesresponse.md | 38 -- ...criberscontrollerlistsubscribersrequest.md | 16 - ...riberscontrollerlistsubscribersresponse.md | 37 -- ...rscontrollerlistsubscribersresponsebody.md | 32 -- ...riberscontrollermarkactionasseenrequest.md | 25 - ...iberscontrollermarkactionasseenresponse.md | 47 -- ...erscontrollermarkallunreadasreadrequest.md | 21 - ...rscontrollermarkallunreadasreadresponse.md | 23 - ...scriberscontrollermarkmessagesasrequest.md | 22 - ...criberscontrollermarkmessagesasresponse.md | 25 - ...ontrollermodifysubscriberchannelrequest.md | 24 - ...ntrollermodifysubscriberchannelresponse.md | 30 -- ...riberscontrollerremovesubscriberrequest.md | 17 - ...iberscontrollerremovesubscriberresponse.md | 26 - ...ontrollerupdatesubscriberchannelrequest.md | 24 - ...ntrollerupdatesubscriberchannelresponse.md | 30 -- ...pdatesubscriberglobalpreferencesrequest.md | 19 - ...datesubscriberglobalpreferencesresponse.md | 36 -- ...rollerupdatesubscriberonlineflagrequest.md | 21 - ...ollerupdatesubscriberonlineflagresponse.md | 30 -- ...rollerupdatesubscriberpreferencerequest.md | 21 - ...ollerupdatesubscriberpreferenceresponse.md | 36 -- ...riberscontrollerupdatesubscriberrequest.md | 19 - ...iberscontrollerupdatesubscriberresponse.md | 30 -- .../tenantcontrollergettenantbyidrequest.md | 17 - .../tenantcontrollerlisttenantsrequest.md | 16 - .../tenantcontrollerlisttenantsresponse.md | 30 -- ...tenantcontrollerlisttenantsresponsebody.md | 31 -- .../tenantcontrollerremovetenantrequest.md | 17 - .../tenantcontrollerupdatetenantrequest.md | 19 - .../topicscontrolleraddsubscribersrequest.md | 23 - .../topicscontrolleraddsubscribersresponse.md | 21 - .../topicscontrollercreatetopicresponse.md | 25 - .../topicscontrollerdeletetopicrequest.md | 17 - .../topicscontrollerdeletetopicresponse.md | 21 - .../topicscontrollergettopicrequest.md | 17 - .../topicscontrollergettopicresponse.md | 31 -- ...picscontrollergettopicsubscriberrequest.md | 19 - ...icscontrollergettopicsubscriberresponse.md | 30 -- .../topicscontrollerlisttopicsrequest.md | 17 - .../topicscontrollerlisttopicsresponse.md | 38 -- ...opicscontrollerremovesubscribersrequest.md | 23 - ...picscontrollerremovesubscribersresponse.md | 21 - .../topicscontrollerrenametopicrequest.md | 21 - .../topicscontrollerrenametopicresponse.md | 31 -- ...flowcontrollerdeleteworkflowbyidrequest.md | 17 - ...orkflowcontrollergetworkflowbyidrequest.md | 17 - .../workflowcontrollerlistworkflowsrequest.md | 17 - ...flowcontrollerupdateactivestatusrequest.md | 21 - ...flowcontrollerupdateworkflowbyidrequest.md | 22 - docs/sdks/apikeys/README.md | 79 --- docs/sdks/authentication/README.md | 175 ------ docs/sdks/changes/README.md | 316 ----------- docs/sdks/credentials/README.md | 251 --------- docs/sdks/environments/README.md | 154 ------ docs/sdks/executiondetails/README.md | 84 --- docs/sdks/feeds/README.md | 234 -------- docs/sdks/integrations/README.md | 453 ---------------- docs/sdks/layouts/README.md | 445 ---------------- docs/sdks/messages/README.md | 230 -------- docs/sdks/notifications/README.md | 187 ------- docs/sdks/novu/README.md | 437 --------------- docs/sdks/novumessages/README.md | 252 --------- docs/sdks/novunotifications/README.md | 167 ------ docs/sdks/novusubscribers/README.md | 249 --------- docs/sdks/organizations/README.md | 244 --------- docs/sdks/preferences/README.md | 315 ----------- docs/sdks/properties/README.md | 85 --- docs/sdks/stats/README.md | 152 ------ docs/sdks/subscribers/README.md | 470 ---------------- docs/sdks/tenants/README.md | 387 -------------- docs/sdks/topics/README.md | 386 -------------- docs/sdks/webhooks/README.md | 80 --- docs/sdks/workflowgroups/README.md | 382 ------------- docs/sdks/workflows/README.md | 398 -------------- src/core.ts | 13 - src/funcs/cancelByTransactionId.ts | 154 ------ src/funcs/changesApply.ts | 136 ----- src/funcs/changesApplyBulk.ts | 126 ----- src/funcs/changesCount.ts | 107 ---- src/funcs/changesRetrieve.ts | 135 ----- src/funcs/environmentsApiKeysList.ts | 124 ----- src/funcs/environmentsList.ts | 124 ----- src/funcs/environmentsRetrieve.ts | 124 ----- src/funcs/executionDetailsRetrieve.ts | 157 ------ src/funcs/feedsCreate.ts | 125 ----- src/funcs/feedsDelete.ts | 138 ----- src/funcs/feedsRetrieve.ts | 108 ---- src/funcs/integrationsCreate.ts | 144 ----- src/funcs/integrationsDelete.ts | 151 ------ src/funcs/integrationsList.ts | 126 ----- src/funcs/integrationsListActive.ts | 127 ----- src/funcs/integrationsSetAsPrimary.ts | 156 ------ src/funcs/integrationsUpdate.ts | 159 ------ src/funcs/integrationsWebhooksRetrieve.ts | 160 ------ src/funcs/layoutsCreate.ts | 110 ---- src/funcs/layoutsDelete.ts | 140 ----- src/funcs/layoutsList.ts | 139 ----- src/funcs/layoutsRetrieve.ts | 138 ----- src/funcs/layoutsSetAsDefault.ts | 140 ----- src/funcs/layoutsUpdate.ts | 148 ------ src/funcs/messagesDelete.ts | 155 ------ src/funcs/messagesDeleteByTransactionId.ts | 169 ------ src/funcs/messagesRetrieve.ts | 153 ------ src/funcs/notificationsList.ts | 151 ------ src/funcs/notificationsRetrieve.ts | 151 ------ src/funcs/notificationsStatsGraph.ts | 152 ------ src/funcs/notificationsStatsRetrieve.ts | 123 ----- ...rganizationControllerRenameOrganization.ts | 125 ----- src/funcs/organizationsRetrieve.ts | 107 ---- src/funcs/organizationsUpdate.ts | 126 ----- ...ubscribersAuthenticationChatAccessOauth.ts | 160 ------ ...rsAuthenticationChatAccessOauthCallBack.ts | 161 ------ src/funcs/subscribersCreate.ts | 144 ----- src/funcs/subscribersCreateBulk.ts | 146 ----- src/funcs/subscribersCredentialsAppend.ts | 168 ------ src/funcs/subscribersCredentialsDelete.ts | 168 ------ src/funcs/subscribersCredentialsUpdate.ts | 166 ------ src/funcs/subscribersDelete.ts | 154 ------ src/funcs/subscribersList.ts | 203 ------- src/funcs/subscribersMessagesMarkAll.ts | 159 ------ src/funcs/subscribersMessagesMarkAllAs.ts | 159 ------ src/funcs/subscribersMessagesUpdateAsSeen.ts | 160 ------ src/funcs/subscribersNotificationsRetrieve.ts | 159 ------ .../subscribersNotificationsUnseenCount.ts | 155 ------ src/funcs/subscribersPreferencesList.ts | 163 ------ .../subscribersPreferencesRetrieveByLevel.ts | 161 ------ src/funcs/subscribersPreferencesUpdate.ts | 160 ------ .../subscribersPreferencesUpdateGlobal.ts | 166 ------ .../subscribersPropertiesUpdateOnlineFlag.ts | 169 ------ src/funcs/subscribersRetrieve.ts | 162 ------ src/funcs/subscribersUpdate.ts | 160 ------ src/funcs/tenantsCreate.ts | 128 ----- src/funcs/tenantsDelete.ts | 140 ----- src/funcs/tenantsList.ts | 194 ------- src/funcs/tenantsRetrieve.ts | 140 ----- src/funcs/tenantsUpdate.ts | 148 ------ src/funcs/topicsCreate.ts | 142 ----- src/funcs/topicsDelete.ts | 153 ------ src/funcs/topicsList.ts | 148 ------ src/funcs/topicsRename.ts | 158 ------ src/funcs/topicsRetrieve.ts | 152 ------ src/funcs/topicsSubscribersAssign.ts | 162 ------ src/funcs/topicsSubscribersDelete.ts | 164 ------ src/funcs/topicsSubscribersRetrieve.ts | 164 ------ src/funcs/trigger.ts | 145 ----- src/funcs/triggerBroadcast.ts | 146 ----- src/funcs/triggerBulk.ts | 144 ----- src/funcs/workflowGroupsCreate.ts | 145 ----- src/funcs/workflowGroupsDelete.ts | 157 ------ src/funcs/workflowGroupsList.ts | 127 ----- src/funcs/workflowGroupsRetrieve.ts | 157 ------ src/funcs/workflowGroupsUpdate.ts | 164 ------ src/funcs/workflowsCreate.ts | 129 ----- src/funcs/workflowsDelete.ts | 139 ----- src/funcs/workflowsList.ts | 138 ----- src/funcs/workflowsRetrieve.ts | 140 ----- src/funcs/workflowsStatusUpdate.ts | 147 ----- src/funcs/workflowsUpdate.ts | 147 ----- src/funcs/workflowsVariablesRetrieve.ts | 110 ---- src/hooks/hooks.ts | 112 ---- src/hooks/index.ts | 6 - src/hooks/registration.ts | 28 - src/hooks/types.ts | 102 ---- src/index.ts | 7 - src/lib/base64.ts | 37 -- src/lib/config.ts | 61 --- src/lib/dlv.ts | 53 -- src/lib/encodings.ts | 449 ---------------- src/lib/files.ts | 40 -- src/lib/http.ts | 323 ----------- src/lib/is-plain-object.ts | 43 -- src/lib/logger.ts | 9 - src/lib/matchers.ts | 322 ----------- src/lib/primitives.ts | 60 --- src/lib/retries.ts | 219 -------- src/lib/schemas.ts | 86 --- src/lib/sdks.ts | 388 -------------- src/lib/security.ts | 253 --------- src/lib/url.ts | 33 -- .../components/activitiesresponsedto.ts | 78 --- .../components/activitygraphstatesresponse.ts | 118 ----- .../activitynotificationresponsedto.ts | 166 ------ ...tivitynotificationsubscriberresponsedto.ts | 103 ---- ...activitynotificationtemplateresponsedto.ts | 94 ---- .../components/activitystatsresponsedto.ts | 70 --- .../components/addsubscribersrequestdto.ts | 69 --- src/models/components/apikey.ts | 72 --- src/models/components/bulkapplychangedto.ts | 45 -- .../components/bulksubscribercreatedto.ts | 66 --- src/models/components/bulktriggereventdto.ts | 72 --- src/models/components/changeresponsedto.ts | 162 ------ src/models/components/changesresponsedto.ts | 57 -- .../changeworkflowstatusrequestdto.ts | 45 -- src/models/components/channelcredentials.ts | 118 ----- src/models/components/channelpreference.ts | 113 ---- src/models/components/channelsettings.ts | 150 ------ src/models/components/createfeedrequestdto.ts | 45 -- .../components/createintegrationrequestdto.ts | 158 ------ .../components/createlayoutresponsedto.ts | 57 -- .../createnotificationgrouprequestdto.ts | 69 --- .../components/createsubscriberrequestdto.ts | 156 ------ .../components/createtenantrequestdto.ts | 85 --- .../components/createtenantresponsedto.ts | 112 ---- .../components/createtopicrequestdto.ts | 76 --- .../components/createtopicresponsedto.ts | 85 --- .../components/createworkflowrequestdto.ts | 177 ------- src/models/components/credentialsdto.ts | 272 ---------- src/models/components/databooleandto.ts | 62 --- src/models/components/datanumberdto.ts | 45 -- src/models/components/delayregularmetadata.ts | 136 ----- .../components/delayscheduledmetadata.ts | 99 ---- .../components/deletemessageresponsedto.ts | 111 ---- .../deletenotificationgroupresponsedto.ts | 117 ---- .../components/deletesubscriberresponsedto.ts | 114 ---- .../components/digestregularmetadata.ts | 183 ------- src/models/components/digesttimedmetadata.ts | 150 ------ src/models/components/emailblock.ts | 108 ---- src/models/components/emailblockstyles.ts | 93 ---- .../components/environmentresponsedto.ts | 103 ---- .../components/executiondetailsresponsedto.ts | 244 --------- src/models/components/feedresponsedto.ts | 80 --- src/models/components/fieldfilterpart.ts | 137 ----- .../components/filtertopicsresponsedto.ts | 84 --- src/models/components/getlayoutresponsedto.ts | 155 ------ .../getsubscriberpreferencesresponsedto.ts | 93 ---- src/models/components/gettenantresponsedto.ts | 112 ---- src/models/components/gettopicresponsedto.ts | 99 ---- src/models/components/index.ts | 85 --- .../components/integrationresponsedto.ts | 176 ------ .../components/markallmessageasrequestdto.ts | 163 ------ .../components/markmessageactionasseendto.ts | 170 ------ src/models/components/messageaction.ts | 110 ---- src/models/components/messageactionresult.ts | 150 ------ src/models/components/messagebutton.ts | 98 ---- src/models/components/messagecta.ts | 109 ---- src/models/components/messagectadata.ts | 62 --- src/models/components/messageentity.ts | 54 -- .../components/messagemarkasrequestdto.ts | 144 ----- src/models/components/messageresponsedto.ts | 500 ------------------ src/models/components/messagetemplate.ts | 56 -- src/models/components/notificationgroup.ts | 97 ---- .../notificationgroupresponsedto.ts | 99 ---- src/models/components/notificationstep.ts | 341 ------------ .../components/notificationstepvariant.ts | 358 ------------- src/models/components/notificationtrigger.ts | 115 ---- .../components/notificationtriggervariable.ts | 68 --- .../organizationbrandingresponsedto.ts | 91 ---- .../components/organizationresponsedto.ts | 63 --- src/models/components/preference.ts | 78 --- src/models/components/preferencechannels.ts | 91 ---- .../components/removesubscribersrequestdto.ts | 71 --- .../components/renameorganizationdto.ts | 45 -- .../components/renametopicrequestdto.ts | 69 --- .../components/renametopicresponsedto.ts | 99 ---- src/models/components/security.ts | 71 --- src/models/components/stepfilter.ts | 140 ----- src/models/components/subscriberpayloaddto.ts | 144 ----- .../components/subscriberresponsedto.ts | 167 ------ src/models/components/templateresponse.ts | 99 ---- src/models/components/tenantpayloaddto.ts | 124 ----- src/models/components/timedconfig.ts | 200 ------- src/models/components/topicdto.ts | 95 ---- src/models/components/topicpayloaddto.ts | 95 ---- src/models/components/topicsubscriberdto.ts | 101 ---- .../components/triggereventrequestdto.ts | 450 ---------------- .../components/triggereventresponsedto.ts | 131 ----- .../components/triggereventtoallrequestdto.ts | 368 ------------- src/models/components/unseencountresponse.ts | 66 --- .../components/updatebrandingdetailsdto.ts | 61 --- .../components/updateintegrationrequestdto.ts | 123 ----- .../components/updatelayoutrequestdto.ts | 118 ----- .../components/updatelayoutresponsedto.ts | 155 ------ .../updatesubscriberchannelrequestdto.ts | 145 ----- ...tesubscriberglobalpreferencesrequestdto.ts | 95 ---- .../updatesubscriberonlineflagrequestdto.ts | 71 --- .../updatesubscriberpreferencerequestdto.ts | 87 --- .../updatesubscriberpreferenceresponsedto.ts | 93 ---- .../components/updatesubscriberrequestdto.ts | 146 ----- .../components/updatetenantrequestdto.ts | 85 --- .../components/updatetenantresponsedto.ts | 112 ---- .../components/updateworkflowrequestdto.ts | 115 ---- src/models/components/variablesresponsedto.ts | 110 ---- src/models/components/workflowresponse.ts | 293 ---------- src/models/components/workflowsresponsedto.ts | 57 -- src/models/errors/httpclienterrors.ts | 62 --- src/models/errors/index.ts | 7 - src/models/errors/sdkerror.ts | 27 - src/models/errors/sdkvalidationerror.ts | 97 ---- .../operations/changescontrollerapplydiff.ts | 46 -- .../operations/changescontrollergetchanges.ts | 54 -- ...nmentscontrollerv1getcurrentenvironment.ts | 96 ---- ...ironmentscontrollerv1listmyenvironments.ts | 96 ---- ...entscontrollerv1listorganizationapikeys.ts | 94 ---- .../eventscontrollerbroadcasteventtoall.ts | 95 ---- .../operations/eventscontrollercancel.ts | 144 ----- .../operations/eventscontrollertrigger.ts | 84 --- .../operations/eventscontrollertriggerbulk.ts | 87 --- ...ollergetexecutiondetailsfornotification.ts | 176 ------ .../feedscontrollerdeletefeedbyid.ts | 47 -- src/models/operations/index.ts | 60 --- ...integrationscontrollercreateintegration.ts | 96 ---- ...grationscontrollergetactiveintegrations.ts | 96 ---- ...ationscontrollergetwebhooksupportstatus.ts | 167 ------ .../integrationscontrollerlistintegrations.ts | 96 ---- ...integrationscontrollerremoveintegration.ts | 168 ------ ...ationscontrollersetintegrationasprimary.ts | 168 ------ ...grationscontrollerupdateintegrationbyid.ts | 182 ------- .../layoutscontrollerdeletelayout.ts | 50 -- .../operations/layoutscontrollergetlayout.ts | 49 -- .../layoutscontrollerlistlayouts.ts | 103 ---- .../layoutscontrollersetdefaultlayout.ts | 50 -- .../layoutscontrollerupdatelayout.ts | 64 --- .../messagescontrollerdeletemessage.ts | 157 ------ ...controllerdeletemessagesbytransactionid.ts | 202 ------- .../messagescontrollergetmessages.ts | 195 ------- ...groupscontrollercreatenotificationgroup.ts | 95 ---- ...groupscontrollerdeletenotificationgroup.ts | 166 ------ ...iongroupscontrollergetnotificationgroup.ts | 165 ------ ...ngroupscontrollerlistnotificationgroups.ts | 95 ---- ...groupscontrollerupdatenotificationgroup.ts | 182 ------- ...icationscontrollergetactivitygraphstats.ts | 168 ------ ...notificationscontrollergetactivitystats.ts | 96 ---- .../notificationscontrollergetnotification.ts | 167 ------ ...otificationscontrollerlistnotifications.ts | 224 -------- ...scriberscontrollerbulkcreatesubscribers.ts | 89 ---- .../subscriberscontrollerchataccessoauth.ts | 175 ------ .../subscriberscontrollerchatoauthcallback.ts | 254 --------- .../subscriberscontrollercreatesubscriber.ts | 95 ---- ...rscontrollerdeletesubscribercredentials.ts | 162 ------ ...bscriberscontrollergetnotificationsfeed.ts | 288 ---------- .../subscriberscontrollergetsubscriber.ts | 169 ------ ...ontrollergetsubscriberpreferencebylevel.ts | 216 -------- .../subscriberscontrollergetunseencount.ts | 171 ------ ...berscontrollerlistsubscriberpreferences.ts | 178 ------- .../subscriberscontrollerlistsubscribers.ts | 267 ---------- .../subscriberscontrollermarkactionasseen.ts | 188 ------- ...ubscriberscontrollermarkallunreadasread.ts | 182 ------- .../subscriberscontrollermarkmessagesas.ts | 175 ------ ...riberscontrollermodifysubscriberchannel.ts | 184 ------- .../subscriberscontrollerremovesubscriber.ts | 166 ------ .../subscriberscontrollerupdatesubscriber.ts | 180 ------- ...riberscontrollerupdatesubscriberchannel.ts | 184 ------- ...rollerupdatesubscriberglobalpreferences.ts | 184 ------- ...erscontrollerupdatesubscriberonlineflag.ts | 183 ------- ...erscontrollerupdatesubscriberpreference.ts | 187 ------- .../tenantcontrollergettenantbyid.ts | 47 -- .../operations/tenantcontrollerlisttenants.ts | 165 ------ .../tenantcontrollerremovetenant.ts | 47 -- .../tenantcontrollerupdatetenant.ts | 61 --- .../topicscontrolleraddsubscribers.ts | 160 ------ .../operations/topicscontrollercreatetopic.ts | 87 --- .../operations/topicscontrollerdeletetopic.ts | 145 ----- .../operations/topicscontrollergettopic.ts | 147 ----- .../topicscontrollergettopicsubscriber.ts | 172 ------ .../operations/topicscontrollerlisttopics.ts | 164 ------ .../topicscontrollerremovesubscribers.ts | 174 ------ .../operations/topicscontrollerrenametopic.ts | 164 ------ .../workflowcontrollerdeleteworkflowbyid.ts | 49 -- .../workflowcontrollergetworkflowbyid.ts | 47 -- .../workflowcontrollerlistworkflows.ts | 58 -- .../workflowcontrollerupdateactivestatus.ts | 66 --- .../workflowcontrollerupdateworkflowbyid.ts | 64 --- src/sdk/apikeys.ts | 24 - src/sdk/authentication.ts | 41 -- src/sdk/changes.ts | 68 --- src/sdk/credentials.ts | 77 --- src/sdk/environments.ts | 41 -- src/sdk/executiondetails.ts | 28 - src/sdk/feeds.ts | 52 -- src/sdk/index.ts | 5 - src/sdk/integrations.ts | 113 ---- src/sdk/layouts.ts | 118 ----- src/sdk/messages.ts | 68 --- src/sdk/notifications.ts | 45 -- src/sdk/novumessages.ts | 59 --- src/sdk/novunotifications.ts | 39 -- src/sdk/novusubscribers.ts | 70 --- src/sdk/organizations.ts | 52 -- src/sdk/preferences.ts | 84 --- src/sdk/properties.ts | 33 -- src/sdk/sdk.ts | 139 ----- src/sdk/stats.ts | 37 -- src/sdk/status.ts | 29 - src/sdk/subscribers.ts | 167 ------ src/sdk/tenants.ts | 105 ---- src/sdk/topics.ts | 108 ---- src/sdk/variables.ts | 25 - src/sdk/webhooks.ts | 27 - src/sdk/workflowgroups.ts | 111 ---- src/sdk/workflows.ts | 114 ---- src/types/blobs.ts | 31 -- src/types/constdatetime.ts | 15 - src/types/enums.ts | 16 - src/types/fp.ts | 50 -- src/types/index.ts | 11 - src/types/operations.ts | 99 ---- src/types/rfcdate.ts | 54 -- src/types/streams.ts | 21 - 676 files changed, 1 insertion(+), 53911 deletions(-) delete mode 100644 docs/lib/utils/retryconfig.md delete mode 100644 docs/models/components/activitiesresponsedto.md delete mode 100644 docs/models/components/activitygraphstatesresponse.md delete mode 100644 docs/models/components/activitynotificationresponsedto.md delete mode 100644 docs/models/components/activitynotificationresponsedtochannels.md delete mode 100644 docs/models/components/activitynotificationsubscriberresponsedto.md delete mode 100644 docs/models/components/activitynotificationtemplateresponsedto.md delete mode 100644 docs/models/components/activitystatsresponsedto.md delete mode 100644 docs/models/components/actor.md delete mode 100644 docs/models/components/addsubscribersrequestdto.md delete mode 100644 docs/models/components/apikey.md delete mode 100644 docs/models/components/backoffunit.md delete mode 100644 docs/models/components/bulkapplychangedto.md delete mode 100644 docs/models/components/bulksubscribercreatedto.md delete mode 100644 docs/models/components/bulktriggereventdto.md delete mode 100644 docs/models/components/change.md delete mode 100644 docs/models/components/changeresponsedto.md delete mode 100644 docs/models/components/changesresponsedto.md delete mode 100644 docs/models/components/changeworkflowstatusrequestdto.md delete mode 100644 docs/models/components/channel.md delete mode 100644 docs/models/components/channelcredentials.md delete mode 100644 docs/models/components/channelpreference.md delete mode 100644 docs/models/components/channelpreferencetype.md delete mode 100644 docs/models/components/channels.md delete mode 100644 docs/models/components/channelsettings.md delete mode 100644 docs/models/components/content.md delete mode 100644 docs/models/components/controls.md delete mode 100644 docs/models/components/createfeedrequestdto.md delete mode 100644 docs/models/components/createintegrationrequestdto.md delete mode 100644 docs/models/components/createintegrationrequestdtochannel.md delete mode 100644 docs/models/components/createlayoutresponsedto.md delete mode 100644 docs/models/components/createnotificationgrouprequestdto.md delete mode 100644 docs/models/components/createsubscriberrequestdto.md delete mode 100644 docs/models/components/createsubscriberrequestdtodata.md delete mode 100644 docs/models/components/createtenantrequestdto.md delete mode 100644 docs/models/components/createtenantrequestdtodata.md delete mode 100644 docs/models/components/createtenantresponsedto.md delete mode 100644 docs/models/components/createtenantresponsedtodata.md delete mode 100644 docs/models/components/createtopicrequestdto.md delete mode 100644 docs/models/components/createtopicresponsedto.md delete mode 100644 docs/models/components/createworkflowrequestdto.md delete mode 100644 docs/models/components/createworkflowrequestdtodata.md delete mode 100644 docs/models/components/createworkflowrequestdtonotificationgroup.md delete mode 100644 docs/models/components/credentialsdto.md delete mode 100644 docs/models/components/data.md delete mode 100644 docs/models/components/databooleandto.md delete mode 100644 docs/models/components/datanumberdto.md delete mode 100644 docs/models/components/delayregularmetadata.md delete mode 100644 docs/models/components/delayregularmetadatatype.md delete mode 100644 docs/models/components/delayregularmetadataunit.md delete mode 100644 docs/models/components/delayscheduledmetadata.md delete mode 100644 docs/models/components/delayscheduledmetadatatype.md delete mode 100644 docs/models/components/deletemessageresponsedto.md delete mode 100644 docs/models/components/deletemessageresponsedtostatus.md delete mode 100644 docs/models/components/deletenotificationgroupresponsedto.md delete mode 100644 docs/models/components/deletenotificationgroupresponsedtostatus.md delete mode 100644 docs/models/components/deletesubscriberresponsedto.md delete mode 100644 docs/models/components/deletesubscriberresponsedtostatus.md delete mode 100644 docs/models/components/digestregularmetadata.md delete mode 100644 docs/models/components/digestregularmetadatatype.md delete mode 100644 docs/models/components/digestregularmetadataunit.md delete mode 100644 docs/models/components/digesttimedmetadata.md delete mode 100644 docs/models/components/digesttimedmetadatatype.md delete mode 100644 docs/models/components/digesttimedmetadataunit.md delete mode 100644 docs/models/components/direction.md delete mode 100644 docs/models/components/emailblock.md delete mode 100644 docs/models/components/emailblockstyles.md delete mode 100644 docs/models/components/emailblocktype.md delete mode 100644 docs/models/components/environmentresponsedto.md delete mode 100644 docs/models/components/executiondetailsresponsedto.md delete mode 100644 docs/models/components/executiondetailsresponsedtochannel.md delete mode 100644 docs/models/components/executiondetailsresponsedtostatus.md delete mode 100644 docs/models/components/feedid.md delete mode 100644 docs/models/components/feedidentifier.md delete mode 100644 docs/models/components/feedresponsedto.md delete mode 100644 docs/models/components/fieldfilterpart.md delete mode 100644 docs/models/components/filtertopicsresponsedto.md delete mode 100644 docs/models/components/getlayoutresponsedto.md delete mode 100644 docs/models/components/getlayoutresponsedtochannel.md delete mode 100644 docs/models/components/getsubscriberpreferencesresponsedto.md delete mode 100644 docs/models/components/gettenantresponsedto.md delete mode 100644 docs/models/components/gettenantresponsedtodata.md delete mode 100644 docs/models/components/gettopicresponsedto.md delete mode 100644 docs/models/components/integrationresponsedto.md delete mode 100644 docs/models/components/integrationresponsedtochannel.md delete mode 100644 docs/models/components/markallmessageasrequestdto.md delete mode 100644 docs/models/components/markallmessageasrequestdtomarkas.md delete mode 100644 docs/models/components/markas.md delete mode 100644 docs/models/components/markmessageactionasseendto.md delete mode 100644 docs/models/components/markmessageactionasseendtopayload.md delete mode 100644 docs/models/components/markmessageactionasseendtostatus.md delete mode 100644 docs/models/components/messageaction.md delete mode 100644 docs/models/components/messageactionresult.md delete mode 100644 docs/models/components/messageactionresultpayload.md delete mode 100644 docs/models/components/messageactionresulttype.md delete mode 100644 docs/models/components/messageactionstatus.md delete mode 100644 docs/models/components/messagebutton.md delete mode 100644 docs/models/components/messagebuttontype.md delete mode 100644 docs/models/components/messagecta.md delete mode 100644 docs/models/components/messagectadata.md delete mode 100644 docs/models/components/messagectatype.md delete mode 100644 docs/models/components/messageentity.md delete mode 100644 docs/models/components/messageid.md delete mode 100644 docs/models/components/messagemarkasrequestdto.md delete mode 100644 docs/models/components/messagemarkasrequestdtomarkas.md delete mode 100644 docs/models/components/messageresponsedto.md delete mode 100644 docs/models/components/messageresponsedtochannel.md delete mode 100644 docs/models/components/messageresponsedtooverrides.md delete mode 100644 docs/models/components/messageresponsedtopayload.md delete mode 100644 docs/models/components/messageresponsedtostatus.md delete mode 100644 docs/models/components/messagetemplate.md delete mode 100644 docs/models/components/metadata.md delete mode 100644 docs/models/components/monthlytype.md delete mode 100644 docs/models/components/notificationgroup.md delete mode 100644 docs/models/components/notificationgroupresponsedto.md delete mode 100644 docs/models/components/notificationstep.md delete mode 100644 docs/models/components/notificationstepvariant.md delete mode 100644 docs/models/components/notificationstepvariantmetadata.md delete mode 100644 docs/models/components/notificationstepvariantparentid.md delete mode 100644 docs/models/components/notificationstepvariantreplycallback.md delete mode 100644 docs/models/components/notificationtrigger.md delete mode 100644 docs/models/components/notificationtriggertype.md delete mode 100644 docs/models/components/notificationtriggervariable.md delete mode 100644 docs/models/components/on.md delete mode 100644 docs/models/components/operator.md delete mode 100644 docs/models/components/ordinal.md delete mode 100644 docs/models/components/ordinalvalue.md delete mode 100644 docs/models/components/organizationbrandingresponsedto.md delete mode 100644 docs/models/components/organizationresponsedto.md delete mode 100644 docs/models/components/overrides.md delete mode 100644 docs/models/components/parentid.md delete mode 100644 docs/models/components/payload.md delete mode 100644 docs/models/components/preference.md delete mode 100644 docs/models/components/preferencechannels.md delete mode 100644 docs/models/components/providerid.md delete mode 100644 docs/models/components/removesubscribersrequestdto.md delete mode 100644 docs/models/components/renameorganizationdto.md delete mode 100644 docs/models/components/renametopicrequestdto.md delete mode 100644 docs/models/components/renametopicresponsedto.md delete mode 100644 docs/models/components/replycallback.md delete mode 100644 docs/models/components/security.md delete mode 100644 docs/models/components/source.md delete mode 100644 docs/models/components/status.md delete mode 100644 docs/models/components/stepfilter.md delete mode 100644 docs/models/components/stepfiltertype.md delete mode 100644 docs/models/components/subscriberpayloaddto.md delete mode 100644 docs/models/components/subscriberpayloaddtodata.md delete mode 100644 docs/models/components/subscriberresponsedto.md delete mode 100644 docs/models/components/system.md delete mode 100644 docs/models/components/templateresponse.md delete mode 100644 docs/models/components/tenant.md delete mode 100644 docs/models/components/tenantpayloaddto.md delete mode 100644 docs/models/components/tenantpayloaddtodata.md delete mode 100644 docs/models/components/textalign.md delete mode 100644 docs/models/components/timedconfig.md delete mode 100644 docs/models/components/tlsoptions.md delete mode 100644 docs/models/components/to.md delete mode 100644 docs/models/components/topicdto.md delete mode 100644 docs/models/components/topicpayloaddto.md delete mode 100644 docs/models/components/topicpayloaddtotype.md delete mode 100644 docs/models/components/topicsubscriberdto.md delete mode 100644 docs/models/components/translations.md delete mode 100644 docs/models/components/triggereventrequestdto.md delete mode 100644 docs/models/components/triggereventrequestdtooverrides.md delete mode 100644 docs/models/components/triggereventrequestdtopayload.md delete mode 100644 docs/models/components/triggereventresponsedto.md delete mode 100644 docs/models/components/triggereventresponsedtostatus.md delete mode 100644 docs/models/components/triggereventtoallrequestdto.md delete mode 100644 docs/models/components/triggereventtoallrequestdtoactor.md delete mode 100644 docs/models/components/triggereventtoallrequestdtooverrides.md delete mode 100644 docs/models/components/triggereventtoallrequestdtopayload.md delete mode 100644 docs/models/components/triggereventtoallrequestdtotenant.md delete mode 100644 docs/models/components/type.md delete mode 100644 docs/models/components/unit.md delete mode 100644 docs/models/components/unseencountresponse.md delete mode 100644 docs/models/components/updatebrandingdetailsdto.md delete mode 100644 docs/models/components/updateintegrationrequestdto.md delete mode 100644 docs/models/components/updatelayoutrequestdto.md delete mode 100644 docs/models/components/updatelayoutresponsedto.md delete mode 100644 docs/models/components/updatelayoutresponsedtochannel.md delete mode 100644 docs/models/components/updatesubscriberchannelrequestdto.md delete mode 100644 docs/models/components/updatesubscriberchannelrequestdtoproviderid.md delete mode 100644 docs/models/components/updatesubscriberglobalpreferencesrequestdto.md delete mode 100644 docs/models/components/updatesubscriberonlineflagrequestdto.md delete mode 100644 docs/models/components/updatesubscriberpreferencerequestdto.md delete mode 100644 docs/models/components/updatesubscriberpreferenceresponsedto.md delete mode 100644 docs/models/components/updatesubscriberrequestdto.md delete mode 100644 docs/models/components/updatesubscriberrequestdtodata.md delete mode 100644 docs/models/components/updatetenantrequestdto.md delete mode 100644 docs/models/components/updatetenantrequestdtodata.md delete mode 100644 docs/models/components/updatetenantresponsedto.md delete mode 100644 docs/models/components/updatetenantresponsedtodata.md delete mode 100644 docs/models/components/updateworkflowrequestdto.md delete mode 100644 docs/models/components/updateworkflowrequestdtodata.md delete mode 100644 docs/models/components/value.md delete mode 100644 docs/models/components/variables.md delete mode 100644 docs/models/components/variablesresponsedto.md delete mode 100644 docs/models/components/weekdays.md delete mode 100644 docs/models/components/workflowintegrationstatus.md delete mode 100644 docs/models/components/workflowresponse.md delete mode 100644 docs/models/components/workflowresponsedata.md delete mode 100644 docs/models/components/workflowsresponsedto.md delete mode 100644 docs/models/operations/changescontrollerapplydiffrequest.md delete mode 100644 docs/models/operations/changescontrollergetchangesrequest.md delete mode 100644 docs/models/operations/channel.md delete mode 100644 docs/models/operations/channels.md delete mode 100644 docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md delete mode 100644 docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md delete mode 100644 docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md delete mode 100644 docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md delete mode 100644 docs/models/operations/eventscontrollercancelrequest.md delete mode 100644 docs/models/operations/eventscontrollercancelresponse.md delete mode 100644 docs/models/operations/eventscontrollertriggerbulkresponse.md delete mode 100644 docs/models/operations/eventscontrollertriggerresponse.md delete mode 100644 docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md delete mode 100644 docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md delete mode 100644 docs/models/operations/feedscontrollerdeletefeedbyidrequest.md delete mode 100644 docs/models/operations/integrationscontrollercreateintegrationresponse.md delete mode 100644 docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md delete mode 100644 docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md delete mode 100644 docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md delete mode 100644 docs/models/operations/integrationscontrollerlistintegrationsresponse.md delete mode 100644 docs/models/operations/integrationscontrollerremoveintegrationrequest.md delete mode 100644 docs/models/operations/integrationscontrollerremoveintegrationresponse.md delete mode 100644 docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md delete mode 100644 docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md delete mode 100644 docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md delete mode 100644 docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md delete mode 100644 docs/models/operations/layoutscontrollerdeletelayoutrequest.md delete mode 100644 docs/models/operations/layoutscontrollergetlayoutrequest.md delete mode 100644 docs/models/operations/layoutscontrollerlistlayoutsrequest.md delete mode 100644 docs/models/operations/layoutscontrollersetdefaultlayoutrequest.md delete mode 100644 docs/models/operations/layoutscontrollerupdatelayoutrequest.md delete mode 100644 docs/models/operations/messagescontrollerdeletemessagerequest.md delete mode 100644 docs/models/operations/messagescontrollerdeletemessageresponse.md delete mode 100644 docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md delete mode 100644 docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md delete mode 100644 docs/models/operations/messagescontrollergetmessagesrequest.md delete mode 100644 docs/models/operations/messagescontrollergetmessagesresponse.md delete mode 100644 docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md delete mode 100644 docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md delete mode 100644 docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md delete mode 100644 docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md delete mode 100644 docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md delete mode 100644 docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md delete mode 100644 docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md delete mode 100644 docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md delete mode 100644 docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md delete mode 100644 docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md delete mode 100644 docs/models/operations/notificationscontrollergetactivitystatsresponse.md delete mode 100644 docs/models/operations/notificationscontrollergetnotificationrequest.md delete mode 100644 docs/models/operations/notificationscontrollergetnotificationresponse.md delete mode 100644 docs/models/operations/notificationscontrollerlistnotificationsrequest.md delete mode 100644 docs/models/operations/notificationscontrollerlistnotificationsresponse.md delete mode 100644 docs/models/operations/orderby.md delete mode 100644 docs/models/operations/parameter.md delete mode 100644 docs/models/operations/queryparamchannel.md delete mode 100644 docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerchataccessoauthrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerchataccessoauthresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md delete mode 100644 docs/models/operations/subscriberscontrollercreatesubscriberresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md delete mode 100644 docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md delete mode 100644 docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md delete mode 100644 docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md delete mode 100644 docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md delete mode 100644 docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md delete mode 100644 docs/models/operations/subscriberscontrollergetsubscriberrequest.md delete mode 100644 docs/models/operations/subscriberscontrollergetsubscriberresponse.md delete mode 100644 docs/models/operations/subscriberscontrollergetunseencountrequest.md delete mode 100644 docs/models/operations/subscriberscontrollergetunseencountresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerlistsubscribersrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerlistsubscribersresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md delete mode 100644 docs/models/operations/subscriberscontrollermarkactionasseenrequest.md delete mode 100644 docs/models/operations/subscriberscontrollermarkactionasseenresponse.md delete mode 100644 docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md delete mode 100644 docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md delete mode 100644 docs/models/operations/subscriberscontrollermarkmessagesasrequest.md delete mode 100644 docs/models/operations/subscriberscontrollermarkmessagesasresponse.md delete mode 100644 docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md delete mode 100644 docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerremovesubscriberrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerremovesubscriberresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md delete mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md delete mode 100644 docs/models/operations/tenantcontrollergettenantbyidrequest.md delete mode 100644 docs/models/operations/tenantcontrollerlisttenantsrequest.md delete mode 100644 docs/models/operations/tenantcontrollerlisttenantsresponse.md delete mode 100644 docs/models/operations/tenantcontrollerlisttenantsresponsebody.md delete mode 100644 docs/models/operations/tenantcontrollerremovetenantrequest.md delete mode 100644 docs/models/operations/tenantcontrollerupdatetenantrequest.md delete mode 100644 docs/models/operations/topicscontrolleraddsubscribersrequest.md delete mode 100644 docs/models/operations/topicscontrolleraddsubscribersresponse.md delete mode 100644 docs/models/operations/topicscontrollercreatetopicresponse.md delete mode 100644 docs/models/operations/topicscontrollerdeletetopicrequest.md delete mode 100644 docs/models/operations/topicscontrollerdeletetopicresponse.md delete mode 100644 docs/models/operations/topicscontrollergettopicrequest.md delete mode 100644 docs/models/operations/topicscontrollergettopicresponse.md delete mode 100644 docs/models/operations/topicscontrollergettopicsubscriberrequest.md delete mode 100644 docs/models/operations/topicscontrollergettopicsubscriberresponse.md delete mode 100644 docs/models/operations/topicscontrollerlisttopicsrequest.md delete mode 100644 docs/models/operations/topicscontrollerlisttopicsresponse.md delete mode 100644 docs/models/operations/topicscontrollerremovesubscribersrequest.md delete mode 100644 docs/models/operations/topicscontrollerremovesubscribersresponse.md delete mode 100644 docs/models/operations/topicscontrollerrenametopicrequest.md delete mode 100644 docs/models/operations/topicscontrollerrenametopicresponse.md delete mode 100644 docs/models/operations/workflowcontrollerdeleteworkflowbyidrequest.md delete mode 100644 docs/models/operations/workflowcontrollergetworkflowbyidrequest.md delete mode 100644 docs/models/operations/workflowcontrollerlistworkflowsrequest.md delete mode 100644 docs/models/operations/workflowcontrollerupdateactivestatusrequest.md delete mode 100644 docs/models/operations/workflowcontrollerupdateworkflowbyidrequest.md delete mode 100644 docs/sdks/apikeys/README.md delete mode 100644 docs/sdks/authentication/README.md delete mode 100644 docs/sdks/changes/README.md delete mode 100644 docs/sdks/credentials/README.md delete mode 100644 docs/sdks/environments/README.md delete mode 100644 docs/sdks/executiondetails/README.md delete mode 100644 docs/sdks/feeds/README.md delete mode 100644 docs/sdks/integrations/README.md delete mode 100644 docs/sdks/layouts/README.md delete mode 100644 docs/sdks/messages/README.md delete mode 100644 docs/sdks/notifications/README.md delete mode 100644 docs/sdks/novu/README.md delete mode 100644 docs/sdks/novumessages/README.md delete mode 100644 docs/sdks/novunotifications/README.md delete mode 100644 docs/sdks/novusubscribers/README.md delete mode 100644 docs/sdks/organizations/README.md delete mode 100644 docs/sdks/preferences/README.md delete mode 100644 docs/sdks/properties/README.md delete mode 100644 docs/sdks/stats/README.md delete mode 100644 docs/sdks/subscribers/README.md delete mode 100644 docs/sdks/tenants/README.md delete mode 100644 docs/sdks/topics/README.md delete mode 100644 docs/sdks/webhooks/README.md delete mode 100644 docs/sdks/workflowgroups/README.md delete mode 100644 docs/sdks/workflows/README.md delete mode 100644 src/core.ts delete mode 100644 src/funcs/cancelByTransactionId.ts delete mode 100644 src/funcs/changesApply.ts delete mode 100644 src/funcs/changesApplyBulk.ts delete mode 100644 src/funcs/changesCount.ts delete mode 100644 src/funcs/changesRetrieve.ts delete mode 100644 src/funcs/environmentsApiKeysList.ts delete mode 100644 src/funcs/environmentsList.ts delete mode 100644 src/funcs/environmentsRetrieve.ts delete mode 100644 src/funcs/executionDetailsRetrieve.ts delete mode 100644 src/funcs/feedsCreate.ts delete mode 100644 src/funcs/feedsDelete.ts delete mode 100644 src/funcs/feedsRetrieve.ts delete mode 100644 src/funcs/integrationsCreate.ts delete mode 100644 src/funcs/integrationsDelete.ts delete mode 100644 src/funcs/integrationsList.ts delete mode 100644 src/funcs/integrationsListActive.ts delete mode 100644 src/funcs/integrationsSetAsPrimary.ts delete mode 100644 src/funcs/integrationsUpdate.ts delete mode 100644 src/funcs/integrationsWebhooksRetrieve.ts delete mode 100644 src/funcs/layoutsCreate.ts delete mode 100644 src/funcs/layoutsDelete.ts delete mode 100644 src/funcs/layoutsList.ts delete mode 100644 src/funcs/layoutsRetrieve.ts delete mode 100644 src/funcs/layoutsSetAsDefault.ts delete mode 100644 src/funcs/layoutsUpdate.ts delete mode 100644 src/funcs/messagesDelete.ts delete mode 100644 src/funcs/messagesDeleteByTransactionId.ts delete mode 100644 src/funcs/messagesRetrieve.ts delete mode 100644 src/funcs/notificationsList.ts delete mode 100644 src/funcs/notificationsRetrieve.ts delete mode 100644 src/funcs/notificationsStatsGraph.ts delete mode 100644 src/funcs/notificationsStatsRetrieve.ts delete mode 100644 src/funcs/organizationsEEOrganizationControllerRenameOrganization.ts delete mode 100644 src/funcs/organizationsRetrieve.ts delete mode 100644 src/funcs/organizationsUpdate.ts delete mode 100644 src/funcs/subscribersAuthenticationChatAccessOauth.ts delete mode 100644 src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts delete mode 100644 src/funcs/subscribersCreate.ts delete mode 100644 src/funcs/subscribersCreateBulk.ts delete mode 100644 src/funcs/subscribersCredentialsAppend.ts delete mode 100644 src/funcs/subscribersCredentialsDelete.ts delete mode 100644 src/funcs/subscribersCredentialsUpdate.ts delete mode 100644 src/funcs/subscribersDelete.ts delete mode 100644 src/funcs/subscribersList.ts delete mode 100644 src/funcs/subscribersMessagesMarkAll.ts delete mode 100644 src/funcs/subscribersMessagesMarkAllAs.ts delete mode 100644 src/funcs/subscribersMessagesUpdateAsSeen.ts delete mode 100644 src/funcs/subscribersNotificationsRetrieve.ts delete mode 100644 src/funcs/subscribersNotificationsUnseenCount.ts delete mode 100644 src/funcs/subscribersPreferencesList.ts delete mode 100644 src/funcs/subscribersPreferencesRetrieveByLevel.ts delete mode 100644 src/funcs/subscribersPreferencesUpdate.ts delete mode 100644 src/funcs/subscribersPreferencesUpdateGlobal.ts delete mode 100644 src/funcs/subscribersPropertiesUpdateOnlineFlag.ts delete mode 100644 src/funcs/subscribersRetrieve.ts delete mode 100644 src/funcs/subscribersUpdate.ts delete mode 100644 src/funcs/tenantsCreate.ts delete mode 100644 src/funcs/tenantsDelete.ts delete mode 100644 src/funcs/tenantsList.ts delete mode 100644 src/funcs/tenantsRetrieve.ts delete mode 100644 src/funcs/tenantsUpdate.ts delete mode 100644 src/funcs/topicsCreate.ts delete mode 100644 src/funcs/topicsDelete.ts delete mode 100644 src/funcs/topicsList.ts delete mode 100644 src/funcs/topicsRename.ts delete mode 100644 src/funcs/topicsRetrieve.ts delete mode 100644 src/funcs/topicsSubscribersAssign.ts delete mode 100644 src/funcs/topicsSubscribersDelete.ts delete mode 100644 src/funcs/topicsSubscribersRetrieve.ts delete mode 100644 src/funcs/trigger.ts delete mode 100644 src/funcs/triggerBroadcast.ts delete mode 100644 src/funcs/triggerBulk.ts delete mode 100644 src/funcs/workflowGroupsCreate.ts delete mode 100644 src/funcs/workflowGroupsDelete.ts delete mode 100644 src/funcs/workflowGroupsList.ts delete mode 100644 src/funcs/workflowGroupsRetrieve.ts delete mode 100644 src/funcs/workflowGroupsUpdate.ts delete mode 100644 src/funcs/workflowsCreate.ts delete mode 100644 src/funcs/workflowsDelete.ts delete mode 100644 src/funcs/workflowsList.ts delete mode 100644 src/funcs/workflowsRetrieve.ts delete mode 100644 src/funcs/workflowsStatusUpdate.ts delete mode 100644 src/funcs/workflowsUpdate.ts delete mode 100644 src/funcs/workflowsVariablesRetrieve.ts delete mode 100644 src/hooks/hooks.ts delete mode 100644 src/hooks/index.ts delete mode 100644 src/hooks/registration.ts delete mode 100644 src/hooks/types.ts delete mode 100644 src/index.ts delete mode 100644 src/lib/base64.ts delete mode 100644 src/lib/config.ts delete mode 100644 src/lib/dlv.ts delete mode 100644 src/lib/encodings.ts delete mode 100644 src/lib/files.ts delete mode 100644 src/lib/http.ts delete mode 100644 src/lib/is-plain-object.ts delete mode 100644 src/lib/logger.ts delete mode 100644 src/lib/matchers.ts delete mode 100644 src/lib/primitives.ts delete mode 100644 src/lib/retries.ts delete mode 100644 src/lib/schemas.ts delete mode 100644 src/lib/sdks.ts delete mode 100644 src/lib/security.ts delete mode 100644 src/lib/url.ts delete mode 100644 src/models/components/activitiesresponsedto.ts delete mode 100644 src/models/components/activitygraphstatesresponse.ts delete mode 100644 src/models/components/activitynotificationresponsedto.ts delete mode 100644 src/models/components/activitynotificationsubscriberresponsedto.ts delete mode 100644 src/models/components/activitynotificationtemplateresponsedto.ts delete mode 100644 src/models/components/activitystatsresponsedto.ts delete mode 100644 src/models/components/addsubscribersrequestdto.ts delete mode 100644 src/models/components/apikey.ts delete mode 100644 src/models/components/bulkapplychangedto.ts delete mode 100644 src/models/components/bulksubscribercreatedto.ts delete mode 100644 src/models/components/bulktriggereventdto.ts delete mode 100644 src/models/components/changeresponsedto.ts delete mode 100644 src/models/components/changesresponsedto.ts delete mode 100644 src/models/components/changeworkflowstatusrequestdto.ts delete mode 100644 src/models/components/channelcredentials.ts delete mode 100644 src/models/components/channelpreference.ts delete mode 100644 src/models/components/channelsettings.ts delete mode 100644 src/models/components/createfeedrequestdto.ts delete mode 100644 src/models/components/createintegrationrequestdto.ts delete mode 100644 src/models/components/createlayoutresponsedto.ts delete mode 100644 src/models/components/createnotificationgrouprequestdto.ts delete mode 100644 src/models/components/createsubscriberrequestdto.ts delete mode 100644 src/models/components/createtenantrequestdto.ts delete mode 100644 src/models/components/createtenantresponsedto.ts delete mode 100644 src/models/components/createtopicrequestdto.ts delete mode 100644 src/models/components/createtopicresponsedto.ts delete mode 100644 src/models/components/createworkflowrequestdto.ts delete mode 100644 src/models/components/credentialsdto.ts delete mode 100644 src/models/components/databooleandto.ts delete mode 100644 src/models/components/datanumberdto.ts delete mode 100644 src/models/components/delayregularmetadata.ts delete mode 100644 src/models/components/delayscheduledmetadata.ts delete mode 100644 src/models/components/deletemessageresponsedto.ts delete mode 100644 src/models/components/deletenotificationgroupresponsedto.ts delete mode 100644 src/models/components/deletesubscriberresponsedto.ts delete mode 100644 src/models/components/digestregularmetadata.ts delete mode 100644 src/models/components/digesttimedmetadata.ts delete mode 100644 src/models/components/emailblock.ts delete mode 100644 src/models/components/emailblockstyles.ts delete mode 100644 src/models/components/environmentresponsedto.ts delete mode 100644 src/models/components/executiondetailsresponsedto.ts delete mode 100644 src/models/components/feedresponsedto.ts delete mode 100644 src/models/components/fieldfilterpart.ts delete mode 100644 src/models/components/filtertopicsresponsedto.ts delete mode 100644 src/models/components/getlayoutresponsedto.ts delete mode 100644 src/models/components/getsubscriberpreferencesresponsedto.ts delete mode 100644 src/models/components/gettenantresponsedto.ts delete mode 100644 src/models/components/gettopicresponsedto.ts delete mode 100644 src/models/components/index.ts delete mode 100644 src/models/components/integrationresponsedto.ts delete mode 100644 src/models/components/markallmessageasrequestdto.ts delete mode 100644 src/models/components/markmessageactionasseendto.ts delete mode 100644 src/models/components/messageaction.ts delete mode 100644 src/models/components/messageactionresult.ts delete mode 100644 src/models/components/messagebutton.ts delete mode 100644 src/models/components/messagecta.ts delete mode 100644 src/models/components/messagectadata.ts delete mode 100644 src/models/components/messageentity.ts delete mode 100644 src/models/components/messagemarkasrequestdto.ts delete mode 100644 src/models/components/messageresponsedto.ts delete mode 100644 src/models/components/messagetemplate.ts delete mode 100644 src/models/components/notificationgroup.ts delete mode 100644 src/models/components/notificationgroupresponsedto.ts delete mode 100644 src/models/components/notificationstep.ts delete mode 100644 src/models/components/notificationstepvariant.ts delete mode 100644 src/models/components/notificationtrigger.ts delete mode 100644 src/models/components/notificationtriggervariable.ts delete mode 100644 src/models/components/organizationbrandingresponsedto.ts delete mode 100644 src/models/components/organizationresponsedto.ts delete mode 100644 src/models/components/preference.ts delete mode 100644 src/models/components/preferencechannels.ts delete mode 100644 src/models/components/removesubscribersrequestdto.ts delete mode 100644 src/models/components/renameorganizationdto.ts delete mode 100644 src/models/components/renametopicrequestdto.ts delete mode 100644 src/models/components/renametopicresponsedto.ts delete mode 100644 src/models/components/security.ts delete mode 100644 src/models/components/stepfilter.ts delete mode 100644 src/models/components/subscriberpayloaddto.ts delete mode 100644 src/models/components/subscriberresponsedto.ts delete mode 100644 src/models/components/templateresponse.ts delete mode 100644 src/models/components/tenantpayloaddto.ts delete mode 100644 src/models/components/timedconfig.ts delete mode 100644 src/models/components/topicdto.ts delete mode 100644 src/models/components/topicpayloaddto.ts delete mode 100644 src/models/components/topicsubscriberdto.ts delete mode 100644 src/models/components/triggereventrequestdto.ts delete mode 100644 src/models/components/triggereventresponsedto.ts delete mode 100644 src/models/components/triggereventtoallrequestdto.ts delete mode 100644 src/models/components/unseencountresponse.ts delete mode 100644 src/models/components/updatebrandingdetailsdto.ts delete mode 100644 src/models/components/updateintegrationrequestdto.ts delete mode 100644 src/models/components/updatelayoutrequestdto.ts delete mode 100644 src/models/components/updatelayoutresponsedto.ts delete mode 100644 src/models/components/updatesubscriberchannelrequestdto.ts delete mode 100644 src/models/components/updatesubscriberglobalpreferencesrequestdto.ts delete mode 100644 src/models/components/updatesubscriberonlineflagrequestdto.ts delete mode 100644 src/models/components/updatesubscriberpreferencerequestdto.ts delete mode 100644 src/models/components/updatesubscriberpreferenceresponsedto.ts delete mode 100644 src/models/components/updatesubscriberrequestdto.ts delete mode 100644 src/models/components/updatetenantrequestdto.ts delete mode 100644 src/models/components/updatetenantresponsedto.ts delete mode 100644 src/models/components/updateworkflowrequestdto.ts delete mode 100644 src/models/components/variablesresponsedto.ts delete mode 100644 src/models/components/workflowresponse.ts delete mode 100644 src/models/components/workflowsresponsedto.ts delete mode 100644 src/models/errors/httpclienterrors.ts delete mode 100644 src/models/errors/index.ts delete mode 100644 src/models/errors/sdkerror.ts delete mode 100644 src/models/errors/sdkvalidationerror.ts delete mode 100644 src/models/operations/changescontrollerapplydiff.ts delete mode 100644 src/models/operations/changescontrollergetchanges.ts delete mode 100644 src/models/operations/environmentscontrollerv1getcurrentenvironment.ts delete mode 100644 src/models/operations/environmentscontrollerv1listmyenvironments.ts delete mode 100644 src/models/operations/environmentscontrollerv1listorganizationapikeys.ts delete mode 100644 src/models/operations/eventscontrollerbroadcasteventtoall.ts delete mode 100644 src/models/operations/eventscontrollercancel.ts delete mode 100644 src/models/operations/eventscontrollertrigger.ts delete mode 100644 src/models/operations/eventscontrollertriggerbulk.ts delete mode 100644 src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts delete mode 100644 src/models/operations/feedscontrollerdeletefeedbyid.ts delete mode 100644 src/models/operations/index.ts delete mode 100644 src/models/operations/integrationscontrollercreateintegration.ts delete mode 100644 src/models/operations/integrationscontrollergetactiveintegrations.ts delete mode 100644 src/models/operations/integrationscontrollergetwebhooksupportstatus.ts delete mode 100644 src/models/operations/integrationscontrollerlistintegrations.ts delete mode 100644 src/models/operations/integrationscontrollerremoveintegration.ts delete mode 100644 src/models/operations/integrationscontrollersetintegrationasprimary.ts delete mode 100644 src/models/operations/integrationscontrollerupdateintegrationbyid.ts delete mode 100644 src/models/operations/layoutscontrollerdeletelayout.ts delete mode 100644 src/models/operations/layoutscontrollergetlayout.ts delete mode 100644 src/models/operations/layoutscontrollerlistlayouts.ts delete mode 100644 src/models/operations/layoutscontrollersetdefaultlayout.ts delete mode 100644 src/models/operations/layoutscontrollerupdatelayout.ts delete mode 100644 src/models/operations/messagescontrollerdeletemessage.ts delete mode 100644 src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts delete mode 100644 src/models/operations/messagescontrollergetmessages.ts delete mode 100644 src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts delete mode 100644 src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts delete mode 100644 src/models/operations/notificationgroupscontrollergetnotificationgroup.ts delete mode 100644 src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts delete mode 100644 src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts delete mode 100644 src/models/operations/notificationscontrollergetactivitygraphstats.ts delete mode 100644 src/models/operations/notificationscontrollergetactivitystats.ts delete mode 100644 src/models/operations/notificationscontrollergetnotification.ts delete mode 100644 src/models/operations/notificationscontrollerlistnotifications.ts delete mode 100644 src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts delete mode 100644 src/models/operations/subscriberscontrollerchataccessoauth.ts delete mode 100644 src/models/operations/subscriberscontrollerchatoauthcallback.ts delete mode 100644 src/models/operations/subscriberscontrollercreatesubscriber.ts delete mode 100644 src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts delete mode 100644 src/models/operations/subscriberscontrollergetnotificationsfeed.ts delete mode 100644 src/models/operations/subscriberscontrollergetsubscriber.ts delete mode 100644 src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts delete mode 100644 src/models/operations/subscriberscontrollergetunseencount.ts delete mode 100644 src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts delete mode 100644 src/models/operations/subscriberscontrollerlistsubscribers.ts delete mode 100644 src/models/operations/subscriberscontrollermarkactionasseen.ts delete mode 100644 src/models/operations/subscriberscontrollermarkallunreadasread.ts delete mode 100644 src/models/operations/subscriberscontrollermarkmessagesas.ts delete mode 100644 src/models/operations/subscriberscontrollermodifysubscriberchannel.ts delete mode 100644 src/models/operations/subscriberscontrollerremovesubscriber.ts delete mode 100644 src/models/operations/subscriberscontrollerupdatesubscriber.ts delete mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts delete mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts delete mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts delete mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts delete mode 100644 src/models/operations/tenantcontrollergettenantbyid.ts delete mode 100644 src/models/operations/tenantcontrollerlisttenants.ts delete mode 100644 src/models/operations/tenantcontrollerremovetenant.ts delete mode 100644 src/models/operations/tenantcontrollerupdatetenant.ts delete mode 100644 src/models/operations/topicscontrolleraddsubscribers.ts delete mode 100644 src/models/operations/topicscontrollercreatetopic.ts delete mode 100644 src/models/operations/topicscontrollerdeletetopic.ts delete mode 100644 src/models/operations/topicscontrollergettopic.ts delete mode 100644 src/models/operations/topicscontrollergettopicsubscriber.ts delete mode 100644 src/models/operations/topicscontrollerlisttopics.ts delete mode 100644 src/models/operations/topicscontrollerremovesubscribers.ts delete mode 100644 src/models/operations/topicscontrollerrenametopic.ts delete mode 100644 src/models/operations/workflowcontrollerdeleteworkflowbyid.ts delete mode 100644 src/models/operations/workflowcontrollergetworkflowbyid.ts delete mode 100644 src/models/operations/workflowcontrollerlistworkflows.ts delete mode 100644 src/models/operations/workflowcontrollerupdateactivestatus.ts delete mode 100644 src/models/operations/workflowcontrollerupdateworkflowbyid.ts delete mode 100644 src/sdk/apikeys.ts delete mode 100644 src/sdk/authentication.ts delete mode 100644 src/sdk/changes.ts delete mode 100644 src/sdk/credentials.ts delete mode 100644 src/sdk/environments.ts delete mode 100644 src/sdk/executiondetails.ts delete mode 100644 src/sdk/feeds.ts delete mode 100644 src/sdk/index.ts delete mode 100644 src/sdk/integrations.ts delete mode 100644 src/sdk/layouts.ts delete mode 100644 src/sdk/messages.ts delete mode 100644 src/sdk/notifications.ts delete mode 100644 src/sdk/novumessages.ts delete mode 100644 src/sdk/novunotifications.ts delete mode 100644 src/sdk/novusubscribers.ts delete mode 100644 src/sdk/organizations.ts delete mode 100644 src/sdk/preferences.ts delete mode 100644 src/sdk/properties.ts delete mode 100644 src/sdk/sdk.ts delete mode 100644 src/sdk/stats.ts delete mode 100644 src/sdk/status.ts delete mode 100644 src/sdk/subscribers.ts delete mode 100644 src/sdk/tenants.ts delete mode 100644 src/sdk/topics.ts delete mode 100644 src/sdk/variables.ts delete mode 100644 src/sdk/webhooks.ts delete mode 100644 src/sdk/workflowgroups.ts delete mode 100644 src/sdk/workflows.ts delete mode 100644 src/types/blobs.ts delete mode 100644 src/types/constdatetime.ts delete mode 100644 src/types/enums.ts delete mode 100644 src/types/fp.ts delete mode 100644 src/types/index.ts delete mode 100644 src/types/operations.ts delete mode 100644 src/types/rfcdate.ts delete mode 100644 src/types/streams.ts diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 60f8fd9b..2f8511a1 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false typescript: - version: 0.0.1-alpha.20 + version: 0.0.1-alpha.21 additionalDependencies: dependencies: {} devDependencies: {} diff --git a/docs/lib/utils/retryconfig.md b/docs/lib/utils/retryconfig.md deleted file mode 100644 index 08f95f45..00000000 --- a/docs/lib/utils/retryconfig.md +++ /dev/null @@ -1,24 +0,0 @@ -# RetryConfig - -Allows customizing the default retry configuration. It is only permitted in methods that accept retry policies. - -## Fields - -| Name | Type | Description | Example | -| ------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | ----------- | -| `strategy` | `"backoff" | "none"` | The retry strategy to use. | `"backoff"` | -| `backoff` | [BackoffStrategy](#backoffstrategy) | When strategy is "backoff", this configurates for the backoff parameters. | | -| `retryConnectionErrors` | `*boolean*` | When strategy is "backoff", this determines whether or not to retry on connection errors. | `true` | - -## BackoffStrategy - -The backoff strategy allows retrying a request with an exponential backoff between each retry. - -### Fields - -| Name | Type | Description | Example | -| ------------------ | ------------ | ----------------------------------------- | -------- | -| `initialInterval` | `*number*` | The initial interval in milliseconds. | `500` | -| `maxInterval` | `*number*` | The maximum interval in milliseconds. | `60000` | -| `exponent` | `*number*` | The exponent to use for the backoff. | `1.5` | -| `maxElapsedTime` | `*number*` | The maximum elapsed time in milliseconds. | `300000` | \ No newline at end of file diff --git a/docs/models/components/activitiesresponsedto.md b/docs/models/components/activitiesresponsedto.md deleted file mode 100644 index c4fa33ec..00000000 --- a/docs/models/components/activitiesresponsedto.md +++ /dev/null @@ -1,25 +0,0 @@ -# ActivitiesResponseDto - -## Example Usage - -```typescript -import { ActivitiesResponseDto } from "@novu/api/models/components"; - -let value: ActivitiesResponseDto = { - hasMore: false, - data: [ - "", - ], - pageSize: 9767.61, - page: 6048.46, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `hasMore` | *boolean* | :heavy_check_mark: | N/A | -| `data` | *string*[] | :heavy_check_mark: | N/A | -| `pageSize` | *number* | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitygraphstatesresponse.md b/docs/models/components/activitygraphstatesresponse.md deleted file mode 100644 index 2acbe744..00000000 --- a/docs/models/components/activitygraphstatesresponse.md +++ /dev/null @@ -1,27 +0,0 @@ -# ActivityGraphStatesResponse - -## Example Usage - -```typescript -import { ActivityGraphStatesResponse } from "@novu/api/models/components"; - -let value: ActivityGraphStatesResponse = { - id: "", - count: 2961.40, - templates: [ - "", - ], - channels: [ - "in_app", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | -| `count` | *number* | :heavy_check_mark: | N/A | -| `templates` | *string*[] | :heavy_check_mark: | N/A | -| `channels` | [components.Channels](../../models/components/channels.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationresponsedto.md b/docs/models/components/activitynotificationresponsedto.md deleted file mode 100644 index 65be8f43..00000000 --- a/docs/models/components/activitynotificationresponsedto.md +++ /dev/null @@ -1,27 +0,0 @@ -# ActivityNotificationResponseDto - -## Example Usage - -```typescript -import { ActivityNotificationResponseDto } from "@novu/api/models/components"; - -let value: ActivityNotificationResponseDto = { - environmentId: "", - organizationId: "", - transactionId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `transactionId` | *string* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_minus_sign: | N/A | -| `channels` | [components.ActivityNotificationResponseDtoChannels](../../models/components/activitynotificationresponsedtochannels.md) | :heavy_minus_sign: | N/A | -| `subscriber` | [components.ActivityNotificationSubscriberResponseDto](../../models/components/activitynotificationsubscriberresponsedto.md) | :heavy_minus_sign: | N/A | -| `template` | [components.ActivityNotificationTemplateResponseDto](../../models/components/activitynotificationtemplateresponsedto.md) | :heavy_minus_sign: | N/A | -| `jobs` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationresponsedtochannels.md b/docs/models/components/activitynotificationresponsedtochannels.md deleted file mode 100644 index 452b1139..00000000 --- a/docs/models/components/activitynotificationresponsedtochannels.md +++ /dev/null @@ -1,15 +0,0 @@ -# ActivityNotificationResponseDtoChannels - -## Example Usage - -```typescript -import { ActivityNotificationResponseDtoChannels } from "@novu/api/models/components"; - -let value: ActivityNotificationResponseDtoChannels = "trigger"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" | "digest" | "trigger" | "delay" | "custom" -``` \ No newline at end of file diff --git a/docs/models/components/activitynotificationsubscriberresponsedto.md b/docs/models/components/activitynotificationsubscriberresponsedto.md deleted file mode 100644 index f6fb409b..00000000 --- a/docs/models/components/activitynotificationsubscriberresponsedto.md +++ /dev/null @@ -1,21 +0,0 @@ -# ActivityNotificationSubscriberResponseDto - -## Example Usage - -```typescript -import { ActivityNotificationSubscriberResponseDto } from "@novu/api/models/components"; - -let value: ActivityNotificationSubscriberResponseDto = { - id: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `firstName` | *string* | :heavy_minus_sign: | N/A | -| `id` | *string* | :heavy_check_mark: | N/A | -| `lastName` | *string* | :heavy_minus_sign: | N/A | -| `email` | *string* | :heavy_minus_sign: | N/A | -| `phone` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationtemplateresponsedto.md b/docs/models/components/activitynotificationtemplateresponsedto.md deleted file mode 100644 index 54054b48..00000000 --- a/docs/models/components/activitynotificationtemplateresponsedto.md +++ /dev/null @@ -1,22 +0,0 @@ -# ActivityNotificationTemplateResponseDto - -## Example Usage - -```typescript -import { ActivityNotificationTemplateResponseDto } from "@novu/api/models/components"; - -let value: ActivityNotificationTemplateResponseDto = { - name: "", - triggers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `triggers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitystatsresponsedto.md b/docs/models/components/activitystatsresponsedto.md deleted file mode 100644 index 46aee20a..00000000 --- a/docs/models/components/activitystatsresponsedto.md +++ /dev/null @@ -1,19 +0,0 @@ -# ActivityStatsResponseDto - -## Example Usage - -```typescript -import { ActivityStatsResponseDto } from "@novu/api/models/components"; - -let value: ActivityStatsResponseDto = { - weeklySent: 391.88, - monthlySent: 2828.07, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `weeklySent` | *number* | :heavy_check_mark: | N/A | -| `monthlySent` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/actor.md b/docs/models/components/actor.md deleted file mode 100644 index ea709b08..00000000 --- a/docs/models/components/actor.md +++ /dev/null @@ -1,23 +0,0 @@ -# Actor - -It is used to display the Avatar of the provided actor's subscriber id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - - -## Supported Types - -### `string` - -```typescript -const value: string = ""; -``` - -### `components.SubscriberPayloadDto` - -```typescript -const value: components.SubscriberPayloadDto = { - subscriberId: "", -}; -``` - diff --git a/docs/models/components/addsubscribersrequestdto.md b/docs/models/components/addsubscribersrequestdto.md deleted file mode 100644 index 983a3b5f..00000000 --- a/docs/models/components/addsubscribersrequestdto.md +++ /dev/null @@ -1,19 +0,0 @@ -# AddSubscribersRequestDto - -## Example Usage - -```typescript -import { AddSubscribersRequestDto } from "@novu/api/models/components"; - -let value: AddSubscribersRequestDto = { - subscribers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `subscribers` | *string*[] | :heavy_check_mark: | List of subscriber identifiers that will be associated to the topic | \ No newline at end of file diff --git a/docs/models/components/apikey.md b/docs/models/components/apikey.md deleted file mode 100644 index 32d8641c..00000000 --- a/docs/models/components/apikey.md +++ /dev/null @@ -1,19 +0,0 @@ -# ApiKey - -## Example Usage - -```typescript -import { ApiKey } from "@novu/api/models/components"; - -let value: ApiKey = { - key: "", - userId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `key` | *string* | :heavy_check_mark: | N/A | -| `userId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/backoffunit.md b/docs/models/components/backoffunit.md deleted file mode 100644 index a7ea32ff..00000000 --- a/docs/models/components/backoffunit.md +++ /dev/null @@ -1,15 +0,0 @@ -# BackoffUnit - -## Example Usage - -```typescript -import { BackoffUnit } from "@novu/api/models/components"; - -let value: BackoffUnit = "weeks"; -``` - -## Values - -```typescript -"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" -``` \ No newline at end of file diff --git a/docs/models/components/bulkapplychangedto.md b/docs/models/components/bulkapplychangedto.md deleted file mode 100644 index 6b6ced19..00000000 --- a/docs/models/components/bulkapplychangedto.md +++ /dev/null @@ -1,19 +0,0 @@ -# BulkApplyChangeDto - -## Example Usage - -```typescript -import { BulkApplyChangeDto } from "@novu/api/models/components"; - -let value: BulkApplyChangeDto = { - changeIds: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `changeIds` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/bulksubscribercreatedto.md b/docs/models/components/bulksubscribercreatedto.md deleted file mode 100644 index 497e5fb5..00000000 --- a/docs/models/components/bulksubscribercreatedto.md +++ /dev/null @@ -1,19 +0,0 @@ -# BulkSubscriberCreateDto - -## Example Usage - -```typescript -import { BulkSubscriberCreateDto } from "@novu/api/models/components"; - -let value: BulkSubscriberCreateDto = { - subscribers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/bulktriggereventdto.md b/docs/models/components/bulktriggereventdto.md deleted file mode 100644 index a93c4ac6..00000000 --- a/docs/models/components/bulktriggereventdto.md +++ /dev/null @@ -1,26 +0,0 @@ -# BulkTriggerEventDto - -## Example Usage - -```typescript -import { BulkTriggerEventDto } from "@novu/api/models/components"; - -let value: BulkTriggerEventDto = { - events: [ - { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - "SUBSCRIBER_ID", - ], - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `events` | [components.TriggerEventRequestDto](../../models/components/triggereventrequestdto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/change.md b/docs/models/components/change.md deleted file mode 100644 index 63d57454..00000000 --- a/docs/models/components/change.md +++ /dev/null @@ -1,14 +0,0 @@ -# Change - -## Example Usage - -```typescript -import { Change } from "@novu/api/models/components"; - -let value: Change = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/changeresponsedto.md b/docs/models/components/changeresponsedto.md deleted file mode 100644 index 821a95c0..00000000 --- a/docs/models/components/changeresponsedto.md +++ /dev/null @@ -1,33 +0,0 @@ -# ChangeResponseDto - -## Example Usage - -```typescript -import { ChangeResponseDto } from "@novu/api/models/components"; - -let value: ChangeResponseDto = { - creatorId: "", - entityId: "", - environmentId: "", - organizationId: "", - change: {}, - createdAt: "", - enabled: false, - type: "NotificationTemplate", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `creatorId` | *string* | :heavy_check_mark: | N/A | -| `entityId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | -| `change` | [components.Change](../../models/components/change.md) | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `enabled` | *boolean* | :heavy_check_mark: | N/A | -| `type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/changesresponsedto.md b/docs/models/components/changesresponsedto.md deleted file mode 100644 index bfdf6c29..00000000 --- a/docs/models/components/changesresponsedto.md +++ /dev/null @@ -1,25 +0,0 @@ -# ChangesResponseDto - -## Example Usage - -```typescript -import { ChangesResponseDto } from "@novu/api/models/components"; - -let value: ChangesResponseDto = { - data: [ - "", - ], - page: 3843.82, - pageSize: 4375.87, - totalCount: 2975.34, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `data` | *string*[] | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_check_mark: | N/A | -| `pageSize` | *number* | :heavy_check_mark: | N/A | -| `totalCount` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/changeworkflowstatusrequestdto.md b/docs/models/components/changeworkflowstatusrequestdto.md deleted file mode 100644 index e30d73d6..00000000 --- a/docs/models/components/changeworkflowstatusrequestdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# ChangeWorkflowStatusRequestDto - -## Example Usage - -```typescript -import { ChangeWorkflowStatusRequestDto } from "@novu/api/models/components"; - -let value: ChangeWorkflowStatusRequestDto = { - active: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `active` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/channel.md b/docs/models/components/channel.md deleted file mode 100644 index 0f6af4c2..00000000 --- a/docs/models/components/channel.md +++ /dev/null @@ -1,15 +0,0 @@ -# Channel - -## Example Usage - -```typescript -import { Channel } from "@novu/api/models/components"; - -let value: Channel = "delay"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" | "digest" | "trigger" | "delay" | "custom" -``` \ No newline at end of file diff --git a/docs/models/components/channelcredentials.md b/docs/models/components/channelcredentials.md deleted file mode 100644 index a4462dc6..00000000 --- a/docs/models/components/channelcredentials.md +++ /dev/null @@ -1,24 +0,0 @@ -# ChannelCredentials - -## Example Usage - -```typescript -import { ChannelCredentials } from "@novu/api/models/components"; - -let value: ChannelCredentials = { - webhookUrl: "https://finished-receptor.org", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `webhookUrl` | *string* | :heavy_check_mark: | Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. | -| `channel` | *string* | :heavy_minus_sign: | Channel specification for Mattermost chat notifications | -| `deviceTokens` | *string*[] | :heavy_minus_sign: | Contains an array of the subscriber device tokens for a given provider. Used on Push integrations | -| `alertUid` | *string* | :heavy_minus_sign: | alert_uid for grafana on-call webhook payload | -| `title` | *string* | :heavy_minus_sign: | title to be used with grafana on call webhook | -| `imageUrl` | *string* | :heavy_minus_sign: | image_url property fo grafana on call webhook | -| `state` | *string* | :heavy_minus_sign: | state property fo grafana on call webhook | -| `externalUrl` | *string* | :heavy_minus_sign: | link_to_upstream_details property fo grafana on call webhook | \ No newline at end of file diff --git a/docs/models/components/channelpreference.md b/docs/models/components/channelpreference.md deleted file mode 100644 index ddd3acb6..00000000 --- a/docs/models/components/channelpreference.md +++ /dev/null @@ -1,19 +0,0 @@ -# ChannelPreference - -## Example Usage - -```typescript -import { ChannelPreference } from "@novu/api/models/components"; - -let value: ChannelPreference = { - type: "push", - enabled: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `type` | [components.ChannelPreferenceType](../../models/components/channelpreferencetype.md) | :heavy_check_mark: | The type of channel that is enabled or not | -| `enabled` | *boolean* | :heavy_check_mark: | If channel is enabled or not | \ No newline at end of file diff --git a/docs/models/components/channelpreferencetype.md b/docs/models/components/channelpreferencetype.md deleted file mode 100644 index 3fe32c71..00000000 --- a/docs/models/components/channelpreferencetype.md +++ /dev/null @@ -1,17 +0,0 @@ -# ChannelPreferenceType - -The type of channel that is enabled or not - -## Example Usage - -```typescript -import { ChannelPreferenceType } from "@novu/api/models/components"; - -let value: ChannelPreferenceType = "sms"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/components/channels.md b/docs/models/components/channels.md deleted file mode 100644 index 921dc283..00000000 --- a/docs/models/components/channels.md +++ /dev/null @@ -1,15 +0,0 @@ -# Channels - -## Example Usage - -```typescript -import { Channels } from "@novu/api/models/components"; - -let value: Channels = "in_app"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/components/channelsettings.md b/docs/models/components/channelsettings.md deleted file mode 100644 index ec7684c0..00000000 --- a/docs/models/components/channelsettings.md +++ /dev/null @@ -1,24 +0,0 @@ -# ChannelSettings - -## Example Usage - -```typescript -import { ChannelSettings } from "@novu/api/models/components"; - -let value: ChannelSettings = { - providerId: "mattermost", - credentials: { - webhookUrl: "https://ajar-solvency.com", - }, - integrationId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `providerId` | [components.ProviderId](../../models/components/providerid.md) | :heavy_check_mark: | The provider identifier for the credentials | -| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | -| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | -| `integrationId` | *string* | :heavy_check_mark: | Id of the integration that is used for this channel | \ No newline at end of file diff --git a/docs/models/components/content.md b/docs/models/components/content.md deleted file mode 100644 index 1f27e6d7..00000000 --- a/docs/models/components/content.md +++ /dev/null @@ -1,20 +0,0 @@ -# Content - - -## Supported Types - -### `components.EmailBlock` - -```typescript -const value: components.EmailBlock = { - type: "text", - content: "", -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/docs/models/components/controls.md b/docs/models/components/controls.md deleted file mode 100644 index 94e492f7..00000000 --- a/docs/models/components/controls.md +++ /dev/null @@ -1,14 +0,0 @@ -# Controls - -## Example Usage - -```typescript -import { Controls } from "@novu/api/models/components"; - -let value: Controls = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/createfeedrequestdto.md b/docs/models/components/createfeedrequestdto.md deleted file mode 100644 index 5b278ef4..00000000 --- a/docs/models/components/createfeedrequestdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# CreateFeedRequestDto - -## Example Usage - -```typescript -import { CreateFeedRequestDto } from "@novu/api/models/components"; - -let value: CreateFeedRequestDto = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/createintegrationrequestdto.md b/docs/models/components/createintegrationrequestdto.md deleted file mode 100644 index 65b94eb8..00000000 --- a/docs/models/components/createintegrationrequestdto.md +++ /dev/null @@ -1,26 +0,0 @@ -# CreateIntegrationRequestDto - -## Example Usage - -```typescript -import { CreateIntegrationRequestDto } from "@novu/api/models/components"; - -let value: CreateIntegrationRequestDto = { - providerId: "", - channel: "chat", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_minus_sign: | N/A | -| `environmentId` | *string* | :heavy_minus_sign: | N/A | -| `providerId` | *string* | :heavy_check_mark: | N/A | -| `channel` | [components.CreateIntegrationRequestDtoChannel](../../models/components/createintegrationrequestdtochannel.md) | :heavy_check_mark: | N/A | -| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_minus_sign: | N/A | -| `active` | *boolean* | :heavy_minus_sign: | If the integration is active the validation on the credentials field will run | -| `check` | *boolean* | :heavy_minus_sign: | N/A | -| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/createintegrationrequestdtochannel.md b/docs/models/components/createintegrationrequestdtochannel.md deleted file mode 100644 index c908a7b9..00000000 --- a/docs/models/components/createintegrationrequestdtochannel.md +++ /dev/null @@ -1,15 +0,0 @@ -# CreateIntegrationRequestDtoChannel - -## Example Usage - -```typescript -import { CreateIntegrationRequestDtoChannel } from "@novu/api/models/components"; - -let value: CreateIntegrationRequestDtoChannel = "in_app"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/components/createlayoutresponsedto.md b/docs/models/components/createlayoutresponsedto.md deleted file mode 100644 index 4ac7fb63..00000000 --- a/docs/models/components/createlayoutresponsedto.md +++ /dev/null @@ -1,17 +0,0 @@ -# CreateLayoutResponseDto - -## Example Usage - -```typescript -import { CreateLayoutResponseDto } from "@novu/api/models/components"; - -let value: CreateLayoutResponseDto = { - id: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | -| `id` | *string* | :heavy_check_mark: | The unique identifier for the Layout created. | \ No newline at end of file diff --git a/docs/models/components/createnotificationgrouprequestdto.md b/docs/models/components/createnotificationgrouprequestdto.md deleted file mode 100644 index 330c7811..00000000 --- a/docs/models/components/createnotificationgrouprequestdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# CreateNotificationGroupRequestDto - -## Example Usage - -```typescript -import { CreateNotificationGroupRequestDto } from "@novu/api/models/components"; - -let value: CreateNotificationGroupRequestDto = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/createsubscriberrequestdto.md b/docs/models/components/createsubscriberrequestdto.md deleted file mode 100644 index 3af75e08..00000000 --- a/docs/models/components/createsubscriberrequestdto.md +++ /dev/null @@ -1,25 +0,0 @@ -# CreateSubscriberRequestDto - -## Example Usage - -```typescript -import { CreateSubscriberRequestDto } from "@novu/api/models/components"; - -let value: CreateSubscriberRequestDto = { - subscriberId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | -| `email` | *string* | :heavy_minus_sign: | N/A | -| `firstName` | *string* | :heavy_minus_sign: | N/A | -| `lastName` | *string* | :heavy_minus_sign: | N/A | -| `phone` | *string* | :heavy_minus_sign: | N/A | -| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | -| `locale` | *string* | :heavy_minus_sign: | N/A | -| `data` | [components.CreateSubscriberRequestDtoData](../../models/components/createsubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | -| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/createsubscriberrequestdtodata.md b/docs/models/components/createsubscriberrequestdtodata.md deleted file mode 100644 index f0b620c2..00000000 --- a/docs/models/components/createsubscriberrequestdtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# CreateSubscriberRequestDtoData - -## Example Usage - -```typescript -import { CreateSubscriberRequestDtoData } from "@novu/api/models/components"; - -let value: CreateSubscriberRequestDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/createtenantrequestdto.md b/docs/models/components/createtenantrequestdto.md deleted file mode 100644 index 046af22c..00000000 --- a/docs/models/components/createtenantrequestdto.md +++ /dev/null @@ -1,20 +0,0 @@ -# CreateTenantRequestDto - -## Example Usage - -```typescript -import { CreateTenantRequestDto } from "@novu/api/models/components"; - -let value: CreateTenantRequestDto = { - identifier: "", - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `data` | [components.CreateTenantRequestDtoData](../../models/components/createtenantrequestdtodata.md) | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/createtenantrequestdtodata.md b/docs/models/components/createtenantrequestdtodata.md deleted file mode 100644 index 031368cd..00000000 --- a/docs/models/components/createtenantrequestdtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# CreateTenantRequestDtoData - -## Example Usage - -```typescript -import { CreateTenantRequestDtoData } from "@novu/api/models/components"; - -let value: CreateTenantRequestDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/createtenantresponsedto.md b/docs/models/components/createtenantresponsedto.md deleted file mode 100644 index 64f852cc..00000000 --- a/docs/models/components/createtenantresponsedto.md +++ /dev/null @@ -1,27 +0,0 @@ -# CreateTenantResponseDto - -## Example Usage - -```typescript -import { CreateTenantResponseDto } from "@novu/api/models/components"; - -let value: CreateTenantResponseDto = { - environmentId: "", - id: "", - createdAt: "", - identifier: "", - updatedAt: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `data` | [components.CreateTenantResponseDtoData](../../models/components/createtenantresponsedtodata.md) | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `updatedAt` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/createtenantresponsedtodata.md b/docs/models/components/createtenantresponsedtodata.md deleted file mode 100644 index 045f176f..00000000 --- a/docs/models/components/createtenantresponsedtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# CreateTenantResponseDtoData - -## Example Usage - -```typescript -import { CreateTenantResponseDtoData } from "@novu/api/models/components"; - -let value: CreateTenantResponseDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/createtopicrequestdto.md b/docs/models/components/createtopicrequestdto.md deleted file mode 100644 index 611f5b5a..00000000 --- a/docs/models/components/createtopicrequestdto.md +++ /dev/null @@ -1,19 +0,0 @@ -# CreateTopicRequestDto - -## Example Usage - -```typescript -import { CreateTopicRequestDto } from "@novu/api/models/components"; - -let value: CreateTopicRequestDto = { - key: "", - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `key` | *string* | :heavy_check_mark: | User defined custom key and provided by the user that will be an unique identifier for the Topic created. | -| `name` | *string* | :heavy_check_mark: | User defined custom name and provided by the user that will name the Topic created. | \ No newline at end of file diff --git a/docs/models/components/createtopicresponsedto.md b/docs/models/components/createtopicresponsedto.md deleted file mode 100644 index 7399856b..00000000 --- a/docs/models/components/createtopicresponsedto.md +++ /dev/null @@ -1,18 +0,0 @@ -# CreateTopicResponseDto - -## Example Usage - -```typescript -import { CreateTopicResponseDto } from "@novu/api/models/components"; - -let value: CreateTopicResponseDto = { - key: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_minus_sign: | The unique identifier for the Topic created. | -| `key` | *string* | :heavy_check_mark: | User defined custom key and provided by the user that will be an unique identifier for the Topic created. | \ No newline at end of file diff --git a/docs/models/components/createworkflowrequestdto.md b/docs/models/components/createworkflowrequestdto.md deleted file mode 100644 index 04129fba..00000000 --- a/docs/models/components/createworkflowrequestdto.md +++ /dev/null @@ -1,30 +0,0 @@ -# CreateWorkflowRequestDto - -## Example Usage - -```typescript -import { CreateWorkflowRequestDto } from "@novu/api/models/components"; - -let value: CreateWorkflowRequestDto = { - name: "", - notificationGroupId: "", - steps: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `active` | *boolean* | :heavy_minus_sign: | N/A | -| `blueprintId` | *string* | :heavy_minus_sign: | N/A | -| `critical` | *boolean* | :heavy_minus_sign: | N/A | -| `data` | [components.CreateWorkflowRequestDtoData](../../models/components/createworkflowrequestdtodata.md) | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_minus_sign: | N/A | -| ~~`draft`~~ | *boolean* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible. | -| `name` | *string* | :heavy_check_mark: | N/A | -| `notificationGroup` | [components.CreateWorkflowRequestDtoNotificationGroup](../../models/components/createworkflowrequestdtonotificationgroup.md) | :heavy_minus_sign: | N/A | -| `notificationGroupId` | *string* | :heavy_check_mark: | N/A | -| `preferenceSettings` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_minus_sign: | N/A | -| `steps` | [components.NotificationStep](../../models/components/notificationstep.md)[] | :heavy_check_mark: | N/A | -| `tags` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/createworkflowrequestdtodata.md b/docs/models/components/createworkflowrequestdtodata.md deleted file mode 100644 index 63865de6..00000000 --- a/docs/models/components/createworkflowrequestdtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# CreateWorkflowRequestDtoData - -## Example Usage - -```typescript -import { CreateWorkflowRequestDtoData } from "@novu/api/models/components"; - -let value: CreateWorkflowRequestDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/createworkflowrequestdtonotificationgroup.md b/docs/models/components/createworkflowrequestdtonotificationgroup.md deleted file mode 100644 index 50bd4b8c..00000000 --- a/docs/models/components/createworkflowrequestdtonotificationgroup.md +++ /dev/null @@ -1,14 +0,0 @@ -# CreateWorkflowRequestDtoNotificationGroup - -## Example Usage - -```typescript -import { CreateWorkflowRequestDtoNotificationGroup } from "@novu/api/models/components"; - -let value: CreateWorkflowRequestDtoNotificationGroup = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/credentialsdto.md b/docs/models/components/credentialsdto.md deleted file mode 100644 index 3a905cac..00000000 --- a/docs/models/components/credentialsdto.md +++ /dev/null @@ -1,56 +0,0 @@ -# CredentialsDto - -## Example Usage - -```typescript -import { CredentialsDto } from "@novu/api/models/components"; - -let value: CredentialsDto = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `apiKey` | *string* | :heavy_minus_sign: | N/A | -| `user` | *string* | :heavy_minus_sign: | N/A | -| `secretKey` | *string* | :heavy_minus_sign: | N/A | -| `domain` | *string* | :heavy_minus_sign: | N/A | -| `password` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | -| `port` | *string* | :heavy_minus_sign: | N/A | -| `secure` | *boolean* | :heavy_minus_sign: | N/A | -| `region` | *string* | :heavy_minus_sign: | N/A | -| `accountSid` | *string* | :heavy_minus_sign: | N/A | -| `messageProfileId` | *string* | :heavy_minus_sign: | N/A | -| `token` | *string* | :heavy_minus_sign: | N/A | -| `from` | *string* | :heavy_minus_sign: | N/A | -| `senderName` | *string* | :heavy_minus_sign: | N/A | -| `projectName` | *string* | :heavy_minus_sign: | N/A | -| `applicationId` | *string* | :heavy_minus_sign: | N/A | -| `clientId` | *string* | :heavy_minus_sign: | N/A | -| `requireTls` | *boolean* | :heavy_minus_sign: | N/A | -| `ignoreTls` | *boolean* | :heavy_minus_sign: | N/A | -| `tlsOptions` | [components.TlsOptions](../../models/components/tlsoptions.md) | :heavy_minus_sign: | N/A | -| `baseUrl` | *string* | :heavy_minus_sign: | N/A | -| `webhookUrl` | *string* | :heavy_minus_sign: | N/A | -| `redirectUrl` | *string* | :heavy_minus_sign: | N/A | -| `hmac` | *boolean* | :heavy_minus_sign: | N/A | -| `serviceAccount` | *string* | :heavy_minus_sign: | N/A | -| `ipPoolName` | *string* | :heavy_minus_sign: | N/A | -| `apiKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | -| `secretKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | -| `idPath` | *string* | :heavy_minus_sign: | N/A | -| `datePath` | *string* | :heavy_minus_sign: | N/A | -| `apiToken` | *string* | :heavy_minus_sign: | N/A | -| `authenticateByToken` | *boolean* | :heavy_minus_sign: | N/A | -| `authenticationTokenKey` | *string* | :heavy_minus_sign: | N/A | -| `instanceId` | *string* | :heavy_minus_sign: | N/A | -| `alertUid` | *string* | :heavy_minus_sign: | N/A | -| `title` | *string* | :heavy_minus_sign: | N/A | -| `imageUrl` | *string* | :heavy_minus_sign: | N/A | -| `state` | *string* | :heavy_minus_sign: | N/A | -| `externalLink` | *string* | :heavy_minus_sign: | N/A | -| `channelId` | *string* | :heavy_minus_sign: | N/A | -| `phoneNumberIdentification` | *string* | :heavy_minus_sign: | N/A | -| `accessKey` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/data.md b/docs/models/components/data.md deleted file mode 100644 index 936dce25..00000000 --- a/docs/models/components/data.md +++ /dev/null @@ -1,14 +0,0 @@ -# Data - -## Example Usage - -```typescript -import { Data } from "@novu/api/models/components"; - -let value: Data = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/databooleandto.md b/docs/models/components/databooleandto.md deleted file mode 100644 index fd5bdad6..00000000 --- a/docs/models/components/databooleandto.md +++ /dev/null @@ -1,17 +0,0 @@ -# DataBooleanDto - -## Example Usage - -```typescript -import { DataBooleanDto } from "@novu/api/models/components"; - -let value: DataBooleanDto = { - data: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `data` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/datanumberdto.md b/docs/models/components/datanumberdto.md deleted file mode 100644 index ca2e5cd0..00000000 --- a/docs/models/components/datanumberdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# DataNumberDto - -## Example Usage - -```typescript -import { DataNumberDto } from "@novu/api/models/components"; - -let value: DataNumberDto = { - data: 6458.94, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `data` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayregularmetadata.md b/docs/models/components/delayregularmetadata.md deleted file mode 100644 index 152d6ccf..00000000 --- a/docs/models/components/delayregularmetadata.md +++ /dev/null @@ -1,19 +0,0 @@ -# DelayRegularMetadata - -## Example Usage - -```typescript -import { DelayRegularMetadata } from "@novu/api/models/components"; - -let value: DelayRegularMetadata = { - type: "regular", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `amount` | *number* | :heavy_minus_sign: | N/A | -| `unit` | [components.DelayRegularMetadataUnit](../../models/components/delayregularmetadataunit.md) | :heavy_minus_sign: | N/A | -| `type` | [components.DelayRegularMetadataType](../../models/components/delayregularmetadatatype.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayregularmetadatatype.md b/docs/models/components/delayregularmetadatatype.md deleted file mode 100644 index 52666530..00000000 --- a/docs/models/components/delayregularmetadatatype.md +++ /dev/null @@ -1,15 +0,0 @@ -# DelayRegularMetadataType - -## Example Usage - -```typescript -import { DelayRegularMetadataType } from "@novu/api/models/components"; - -let value: DelayRegularMetadataType = "regular"; -``` - -## Values - -```typescript -"regular" -``` \ No newline at end of file diff --git a/docs/models/components/delayregularmetadataunit.md b/docs/models/components/delayregularmetadataunit.md deleted file mode 100644 index 579f0e83..00000000 --- a/docs/models/components/delayregularmetadataunit.md +++ /dev/null @@ -1,15 +0,0 @@ -# DelayRegularMetadataUnit - -## Example Usage - -```typescript -import { DelayRegularMetadataUnit } from "@novu/api/models/components"; - -let value: DelayRegularMetadataUnit = "hours"; -``` - -## Values - -```typescript -"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" -``` \ No newline at end of file diff --git a/docs/models/components/delayscheduledmetadata.md b/docs/models/components/delayscheduledmetadata.md deleted file mode 100644 index cc5d6fdf..00000000 --- a/docs/models/components/delayscheduledmetadata.md +++ /dev/null @@ -1,19 +0,0 @@ -# DelayScheduledMetadata - -## Example Usage - -```typescript -import { DelayScheduledMetadata } from "@novu/api/models/components"; - -let value: DelayScheduledMetadata = { - type: "scheduled", - delayPath: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `type` | [components.DelayScheduledMetadataType](../../models/components/delayscheduledmetadatatype.md) | :heavy_check_mark: | N/A | -| `delayPath` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayscheduledmetadatatype.md b/docs/models/components/delayscheduledmetadatatype.md deleted file mode 100644 index adfbf2db..00000000 --- a/docs/models/components/delayscheduledmetadatatype.md +++ /dev/null @@ -1,15 +0,0 @@ -# DelayScheduledMetadataType - -## Example Usage - -```typescript -import { DelayScheduledMetadataType } from "@novu/api/models/components"; - -let value: DelayScheduledMetadataType = "scheduled"; -``` - -## Values - -```typescript -"scheduled" -``` \ No newline at end of file diff --git a/docs/models/components/deletemessageresponsedto.md b/docs/models/components/deletemessageresponsedto.md deleted file mode 100644 index 2942b551..00000000 --- a/docs/models/components/deletemessageresponsedto.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeleteMessageResponseDto - -## Example Usage - -```typescript -import { DeleteMessageResponseDto } from "@novu/api/models/components"; - -let value: DeleteMessageResponseDto = { - acknowledged: false, - status: "deleted", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | -| `status` | [components.DeleteMessageResponseDtoStatus](../../models/components/deletemessageresponsedtostatus.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file diff --git a/docs/models/components/deletemessageresponsedtostatus.md b/docs/models/components/deletemessageresponsedtostatus.md deleted file mode 100644 index 60cab91b..00000000 --- a/docs/models/components/deletemessageresponsedtostatus.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeleteMessageResponseDtoStatus - -The status enum for the performed action - -## Example Usage - -```typescript -import { DeleteMessageResponseDtoStatus } from "@novu/api/models/components"; - -let value: DeleteMessageResponseDtoStatus = "deleted"; -``` - -## Values - -```typescript -"deleted" -``` \ No newline at end of file diff --git a/docs/models/components/deletenotificationgroupresponsedto.md b/docs/models/components/deletenotificationgroupresponsedto.md deleted file mode 100644 index 1543e617..00000000 --- a/docs/models/components/deletenotificationgroupresponsedto.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeleteNotificationGroupResponseDto - -## Example Usage - -```typescript -import { DeleteNotificationGroupResponseDto } from "@novu/api/models/components"; - -let value: DeleteNotificationGroupResponseDto = { - acknowledged: false, - status: "deleted", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | -| `status` | [components.DeleteNotificationGroupResponseDtoStatus](../../models/components/deletenotificationgroupresponsedtostatus.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file diff --git a/docs/models/components/deletenotificationgroupresponsedtostatus.md b/docs/models/components/deletenotificationgroupresponsedtostatus.md deleted file mode 100644 index 97ae3ee1..00000000 --- a/docs/models/components/deletenotificationgroupresponsedtostatus.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeleteNotificationGroupResponseDtoStatus - -The status enum for the performed action - -## Example Usage - -```typescript -import { DeleteNotificationGroupResponseDtoStatus } from "@novu/api/models/components"; - -let value: DeleteNotificationGroupResponseDtoStatus = "deleted"; -``` - -## Values - -```typescript -"deleted" -``` \ No newline at end of file diff --git a/docs/models/components/deletesubscriberresponsedto.md b/docs/models/components/deletesubscriberresponsedto.md deleted file mode 100644 index 68e2ba72..00000000 --- a/docs/models/components/deletesubscriberresponsedto.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeleteSubscriberResponseDto - -## Example Usage - -```typescript -import { DeleteSubscriberResponseDto } from "@novu/api/models/components"; - -let value: DeleteSubscriberResponseDto = { - acknowledged: false, - status: "deleted", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | -| `status` | [components.DeleteSubscriberResponseDtoStatus](../../models/components/deletesubscriberresponsedtostatus.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file diff --git a/docs/models/components/deletesubscriberresponsedtostatus.md b/docs/models/components/deletesubscriberresponsedtostatus.md deleted file mode 100644 index 80e97b35..00000000 --- a/docs/models/components/deletesubscriberresponsedtostatus.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeleteSubscriberResponseDtoStatus - -The status enum for the performed action - -## Example Usage - -```typescript -import { DeleteSubscriberResponseDtoStatus } from "@novu/api/models/components"; - -let value: DeleteSubscriberResponseDtoStatus = "deleted"; -``` - -## Values - -```typescript -"deleted" -``` \ No newline at end of file diff --git a/docs/models/components/digestregularmetadata.md b/docs/models/components/digestregularmetadata.md deleted file mode 100644 index b667be64..00000000 --- a/docs/models/components/digestregularmetadata.md +++ /dev/null @@ -1,24 +0,0 @@ -# DigestRegularMetadata - -## Example Usage - -```typescript -import { DigestRegularMetadata } from "@novu/api/models/components"; - -let value: DigestRegularMetadata = { - type: "regular", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `amount` | *number* | :heavy_minus_sign: | N/A | -| `unit` | [components.Unit](../../models/components/unit.md) | :heavy_minus_sign: | N/A | -| `digestKey` | *string* | :heavy_minus_sign: | N/A | -| `type` | [components.DigestRegularMetadataType](../../models/components/digestregularmetadatatype.md) | :heavy_check_mark: | N/A | -| `backoff` | *boolean* | :heavy_minus_sign: | N/A | -| `backoffAmount` | *number* | :heavy_minus_sign: | N/A | -| `backoffUnit` | [components.BackoffUnit](../../models/components/backoffunit.md) | :heavy_minus_sign: | N/A | -| `updateMode` | *boolean* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/digestregularmetadatatype.md b/docs/models/components/digestregularmetadatatype.md deleted file mode 100644 index 6830975b..00000000 --- a/docs/models/components/digestregularmetadatatype.md +++ /dev/null @@ -1,15 +0,0 @@ -# DigestRegularMetadataType - -## Example Usage - -```typescript -import { DigestRegularMetadataType } from "@novu/api/models/components"; - -let value: DigestRegularMetadataType = "backoff"; -``` - -## Values - -```typescript -"regular" | "backoff" -``` \ No newline at end of file diff --git a/docs/models/components/digestregularmetadataunit.md b/docs/models/components/digestregularmetadataunit.md deleted file mode 100644 index d9ecca7d..00000000 --- a/docs/models/components/digestregularmetadataunit.md +++ /dev/null @@ -1,19 +0,0 @@ -# DigestRegularMetadataUnit - -## Example Usage - -```typescript -import { DigestRegularMetadataUnit } from "@novu/api/models/components"; - -<<<<<<< Updated upstream -let value: DigestRegularMetadataUnit = "months"; -======= -let value: DigestRegularMetadataUnit = "seconds"; ->>>>>>> Stashed changes -``` - -## Values - -```typescript -"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" -``` \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadata.md b/docs/models/components/digesttimedmetadata.md deleted file mode 100644 index c45fc8d6..00000000 --- a/docs/models/components/digesttimedmetadata.md +++ /dev/null @@ -1,21 +0,0 @@ -# DigestTimedMetadata - -## Example Usage - -```typescript -import { DigestTimedMetadata } from "@novu/api/models/components"; - -let value: DigestTimedMetadata = { - type: "timed", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `amount` | *number* | :heavy_minus_sign: | N/A | -| `unit` | [components.DigestTimedMetadataUnit](../../models/components/digesttimedmetadataunit.md) | :heavy_minus_sign: | N/A | -| `digestKey` | *string* | :heavy_minus_sign: | N/A | -| `type` | [components.DigestTimedMetadataType](../../models/components/digesttimedmetadatatype.md) | :heavy_check_mark: | N/A | -| `timed` | [components.TimedConfig](../../models/components/timedconfig.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadatatype.md b/docs/models/components/digesttimedmetadatatype.md deleted file mode 100644 index a1b443b3..00000000 --- a/docs/models/components/digesttimedmetadatatype.md +++ /dev/null @@ -1,15 +0,0 @@ -# DigestTimedMetadataType - -## Example Usage - -```typescript -import { DigestTimedMetadataType } from "@novu/api/models/components"; - -let value: DigestTimedMetadataType = "timed"; -``` - -## Values - -```typescript -"timed" -``` \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadataunit.md b/docs/models/components/digesttimedmetadataunit.md deleted file mode 100644 index 6f392cc4..00000000 --- a/docs/models/components/digesttimedmetadataunit.md +++ /dev/null @@ -1,15 +0,0 @@ -# DigestTimedMetadataUnit - -## Example Usage - -```typescript -import { DigestTimedMetadataUnit } from "@novu/api/models/components"; - -let value: DigestTimedMetadataUnit = "hours"; -``` - -## Values - -```typescript -"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" -``` \ No newline at end of file diff --git a/docs/models/components/direction.md b/docs/models/components/direction.md deleted file mode 100644 index 624b7435..00000000 --- a/docs/models/components/direction.md +++ /dev/null @@ -1,15 +0,0 @@ -# Direction - -## Example Usage - -```typescript -import { Direction } from "@novu/api/models/components"; - -let value: Direction = "trl"; -``` - -## Values - -```typescript -"ltr" | "trl" -``` \ No newline at end of file diff --git a/docs/models/components/emailblock.md b/docs/models/components/emailblock.md deleted file mode 100644 index 885e482c..00000000 --- a/docs/models/components/emailblock.md +++ /dev/null @@ -1,21 +0,0 @@ -# EmailBlock - -## Example Usage - -```typescript -import { EmailBlock } from "@novu/api/models/components"; - -let value: EmailBlock = { - type: "button", - content: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `type` | [components.EmailBlockType](../../models/components/emailblocktype.md) | :heavy_check_mark: | N/A | -| `content` | *string* | :heavy_check_mark: | N/A | -| `url` | *string* | :heavy_minus_sign: | N/A | -| `styles` | [components.EmailBlockStyles](../../models/components/emailblockstyles.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/emailblockstyles.md b/docs/models/components/emailblockstyles.md deleted file mode 100644 index 8ddbd4e2..00000000 --- a/docs/models/components/emailblockstyles.md +++ /dev/null @@ -1,17 +0,0 @@ -# EmailBlockStyles - -## Example Usage - -```typescript -import { EmailBlockStyles } from "@novu/api/models/components"; - -let value: EmailBlockStyles = { - textAlign: "center", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `textAlign` | [components.TextAlign](../../models/components/textalign.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/emailblocktype.md b/docs/models/components/emailblocktype.md deleted file mode 100644 index 63e25e19..00000000 --- a/docs/models/components/emailblocktype.md +++ /dev/null @@ -1,15 +0,0 @@ -# EmailBlockType - -## Example Usage - -```typescript -import { EmailBlockType } from "@novu/api/models/components"; - -let value: EmailBlockType = "text"; -``` - -## Values - -```typescript -"button" | "text" -``` \ No newline at end of file diff --git a/docs/models/components/environmentresponsedto.md b/docs/models/components/environmentresponsedto.md deleted file mode 100644 index c9b4473d..00000000 --- a/docs/models/components/environmentresponsedto.md +++ /dev/null @@ -1,26 +0,0 @@ -# EnvironmentResponseDto - -## Example Usage - -```typescript -import { EnvironmentResponseDto } from "@novu/api/models/components"; - -let value: EnvironmentResponseDto = { - name: "", - organizationId: "", - identifier: "", - parentId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `apiKeys` | *string*[] | :heavy_minus_sign: | N/A | -| `parentId` | *string* | :heavy_check_mark: | N/A | -| `slug` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/executiondetailsresponsedto.md b/docs/models/components/executiondetailsresponsedto.md deleted file mode 100644 index 62471cb7..00000000 --- a/docs/models/components/executiondetailsresponsedto.md +++ /dev/null @@ -1,45 +0,0 @@ -# ExecutionDetailsResponseDto - -## Example Usage - -```typescript -import { ExecutionDetailsResponseDto } from "@novu/api/models/components"; - -let value: ExecutionDetailsResponseDto = { - organizationId: "", - jobId: "", - environmentId: "", - notificationId: "", - notificationTemplateId: "", - subscriberId: "", - transactionId: "", - channel: "in_app", - detail: "", - source: "Webhook", - status: "Failed", - isTest: false, - isRetry: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `jobId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `notificationId` | *string* | :heavy_check_mark: | N/A | -| `notificationTemplateId` | *string* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `messageId` | *string* | :heavy_minus_sign: | N/A | -| `providerId` | *string* | :heavy_minus_sign: | N/A | -| `transactionId` | *string* | :heavy_check_mark: | N/A | -| `channel` | [components.Channel](../../models/components/channel.md) | :heavy_check_mark: | N/A | -| `detail` | *string* | :heavy_check_mark: | N/A | -| `source` | [components.Source](../../models/components/source.md) | :heavy_check_mark: | N/A | -| `status` | [components.Status](../../models/components/status.md) | :heavy_check_mark: | N/A | -| `isTest` | *boolean* | :heavy_check_mark: | N/A | -| `isRetry` | *boolean* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/executiondetailsresponsedtochannel.md b/docs/models/components/executiondetailsresponsedtochannel.md deleted file mode 100644 index 4f9f2c26..00000000 --- a/docs/models/components/executiondetailsresponsedtochannel.md +++ /dev/null @@ -1,19 +0,0 @@ -# ExecutionDetailsResponseDtoChannel - -## Example Usage - -```typescript -import { ExecutionDetailsResponseDtoChannel } from "@novu/api/models/components"; - -<<<<<<< Updated upstream -let value: ExecutionDetailsResponseDtoChannel = "custom"; -======= -let value: ExecutionDetailsResponseDtoChannel = "chat"; ->>>>>>> Stashed changes -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" | "digest" | "trigger" | "delay" | "custom" -``` \ No newline at end of file diff --git a/docs/models/components/executiondetailsresponsedtostatus.md b/docs/models/components/executiondetailsresponsedtostatus.md deleted file mode 100644 index 03d95670..00000000 --- a/docs/models/components/executiondetailsresponsedtostatus.md +++ /dev/null @@ -1,19 +0,0 @@ -# ExecutionDetailsResponseDtoStatus - -## Example Usage - -```typescript -import { ExecutionDetailsResponseDtoStatus } from "@novu/api/models/components"; - -<<<<<<< Updated upstream -let value: ExecutionDetailsResponseDtoStatus = "ReadConfirmation"; -======= -let value: ExecutionDetailsResponseDtoStatus = "Failed"; ->>>>>>> Stashed changes -``` - -## Values - -```typescript -"Success" | "Warning" | "Failed" | "Pending" | "Queued" | "ReadConfirmation" -``` \ No newline at end of file diff --git a/docs/models/components/feedid.md b/docs/models/components/feedid.md deleted file mode 100644 index 1b186e15..00000000 --- a/docs/models/components/feedid.md +++ /dev/null @@ -1,14 +0,0 @@ -# FeedId - -## Example Usage - -```typescript -import { FeedId } from "@novu/api/models/components"; - -let value: FeedId = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/feedidentifier.md b/docs/models/components/feedidentifier.md deleted file mode 100644 index 10cebf51..00000000 --- a/docs/models/components/feedidentifier.md +++ /dev/null @@ -1,21 +0,0 @@ -# FeedIdentifier - -Optional feed identifier or array of feed identifiers - - -## Supported Types - -### `string` - -```typescript -const value: string = ""; -``` - -### `string[]` - -```typescript -const value: string[] = [ - "", -]; -``` - diff --git a/docs/models/components/feedresponsedto.md b/docs/models/components/feedresponsedto.md deleted file mode 100644 index c8a09ed7..00000000 --- a/docs/models/components/feedresponsedto.md +++ /dev/null @@ -1,26 +0,0 @@ -# FeedResponseDto - -## Example Usage - -```typescript -import { FeedResponseDto } from "@novu/api/models/components"; - -let value: FeedResponseDto = { - hasMore: false, - data: [ - "", - ], - pageSize: 6994.79, - page: 2974.37, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `totalCount` | *number* | :heavy_minus_sign: | N/A | -| `hasMore` | *boolean* | :heavy_check_mark: | N/A | -| `data` | *string*[] | :heavy_check_mark: | N/A | -| `pageSize` | *number* | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/fieldfilterpart.md b/docs/models/components/fieldfilterpart.md deleted file mode 100644 index c8c2e97b..00000000 --- a/docs/models/components/fieldfilterpart.md +++ /dev/null @@ -1,23 +0,0 @@ -# FieldFilterPart - -## Example Usage - -```typescript -import { FieldFilterPart } from "@novu/api/models/components"; - -let value: FieldFilterPart = { - field: "", - value: "", - operator: "EQUAL", - on: "payload", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `field` | *string* | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | N/A | -| `operator` | [components.Operator](../../models/components/operator.md) | :heavy_check_mark: | N/A | -| `on` | [components.On](../../models/components/on.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/filtertopicsresponsedto.md b/docs/models/components/filtertopicsresponsedto.md deleted file mode 100644 index 09083966..00000000 --- a/docs/models/components/filtertopicsresponsedto.md +++ /dev/null @@ -1,33 +0,0 @@ -# FilterTopicsResponseDto - -## Example Usage - -```typescript -import { FilterTopicsResponseDto } from "@novu/api/models/components"; - -let value: FilterTopicsResponseDto = { - data: [ - { - organizationId: "", - environmentId: "", - key: "", - name: "", - subscribers: [ - "", - ], - }, - ], - page: 580.29, - pageSize: 4344.17, - totalCount: 3117.96, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `data` | [components.TopicDto](../../models/components/topicdto.md)[] | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_check_mark: | N/A | -| `pageSize` | *number* | :heavy_check_mark: | N/A | -| `totalCount` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/getlayoutresponsedto.md b/docs/models/components/getlayoutresponsedto.md deleted file mode 100644 index 1cf25cd6..00000000 --- a/docs/models/components/getlayoutresponsedto.md +++ /dev/null @@ -1,41 +0,0 @@ -# GetLayoutResponseDto - -## Example Usage - -```typescript -import { GetLayoutResponseDto } from "@novu/api/models/components"; - -let value: GetLayoutResponseDto = { - creatorId: "", - environmentId: "", - organizationId: "", - channel: "in_app", - content: "", - contentType: "", - identifier: "", - isDefault: false, - isDeleted: false, - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `creatorId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | -| `channel` | [components.GetLayoutResponseDtoChannel](../../models/components/getlayoutresponsedtochannel.md) | :heavy_check_mark: | N/A | -| `content` | *string* | :heavy_check_mark: | N/A | -| `contentType` | *string* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `isDefault` | *boolean* | :heavy_check_mark: | N/A | -| `isDeleted` | *boolean* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `updatedAt` | *string* | :heavy_minus_sign: | N/A | -| `variables` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/getlayoutresponsedtochannel.md b/docs/models/components/getlayoutresponsedtochannel.md deleted file mode 100644 index 9cd9fe20..00000000 --- a/docs/models/components/getlayoutresponsedtochannel.md +++ /dev/null @@ -1,15 +0,0 @@ -# GetLayoutResponseDtoChannel - -## Example Usage - -```typescript -import { GetLayoutResponseDtoChannel } from "@novu/api/models/components"; - -let value: GetLayoutResponseDtoChannel = "chat"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/components/getsubscriberpreferencesresponsedto.md b/docs/models/components/getsubscriberpreferencesresponsedto.md deleted file mode 100644 index a79fe0e5..00000000 --- a/docs/models/components/getsubscriberpreferencesresponsedto.md +++ /dev/null @@ -1,21 +0,0 @@ -# GetSubscriberPreferencesResponseDto - -## Example Usage - -```typescript -import { GetSubscriberPreferencesResponseDto } from "@novu/api/models/components"; - -let value: GetSubscriberPreferencesResponseDto = { - preference: { - enabled: false, - channels: {}, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_minus_sign: | The workflow information and if it is critical or not | -| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | \ No newline at end of file diff --git a/docs/models/components/gettenantresponsedto.md b/docs/models/components/gettenantresponsedto.md deleted file mode 100644 index e4043b00..00000000 --- a/docs/models/components/gettenantresponsedto.md +++ /dev/null @@ -1,27 +0,0 @@ -# GetTenantResponseDto - -## Example Usage - -```typescript -import { GetTenantResponseDto } from "@novu/api/models/components"; - -let value: GetTenantResponseDto = { - environmentId: "", - id: "", - createdAt: "", - identifier: "", - updatedAt: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `data` | [components.GetTenantResponseDtoData](../../models/components/gettenantresponsedtodata.md) | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `updatedAt` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/gettenantresponsedtodata.md b/docs/models/components/gettenantresponsedtodata.md deleted file mode 100644 index 4f7d93b8..00000000 --- a/docs/models/components/gettenantresponsedtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# GetTenantResponseDtoData - -## Example Usage - -```typescript -import { GetTenantResponseDtoData } from "@novu/api/models/components"; - -let value: GetTenantResponseDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/gettopicresponsedto.md b/docs/models/components/gettopicresponsedto.md deleted file mode 100644 index 30950928..00000000 --- a/docs/models/components/gettopicresponsedto.md +++ /dev/null @@ -1,28 +0,0 @@ -# GetTopicResponseDto - -## Example Usage - -```typescript -import { GetTopicResponseDto } from "@novu/api/models/components"; - -let value: GetTopicResponseDto = { - organizationId: "", - environmentId: "", - key: "", - name: "", - subscribers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `key` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/integrationresponsedto.md b/docs/models/components/integrationresponsedto.md deleted file mode 100644 index 6e1a89c8..00000000 --- a/docs/models/components/integrationresponsedto.md +++ /dev/null @@ -1,41 +0,0 @@ -# IntegrationResponseDto - -## Example Usage - -```typescript -import { IntegrationResponseDto } from "@novu/api/models/components"; - -let value: IntegrationResponseDto = { - environmentId: "", - organizationId: "", - name: "", - identifier: "", - providerId: "", - channel: "sms", - credentials: {}, - active: false, - deleted: false, - deletedAt: "", - deletedBy: "", - primary: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `providerId` | *string* | :heavy_check_mark: | N/A | -| `channel` | [components.IntegrationResponseDtoChannel](../../models/components/integrationresponsedtochannel.md) | :heavy_check_mark: | N/A | -| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_check_mark: | N/A | -| `active` | *boolean* | :heavy_check_mark: | N/A | -| `deleted` | *boolean* | :heavy_check_mark: | N/A | -| `deletedAt` | *string* | :heavy_check_mark: | N/A | -| `deletedBy` | *string* | :heavy_check_mark: | N/A | -| `primary` | *boolean* | :heavy_check_mark: | N/A | -| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/integrationresponsedtochannel.md b/docs/models/components/integrationresponsedtochannel.md deleted file mode 100644 index 57607f6e..00000000 --- a/docs/models/components/integrationresponsedtochannel.md +++ /dev/null @@ -1,15 +0,0 @@ -# IntegrationResponseDtoChannel - -## Example Usage - -```typescript -import { IntegrationResponseDtoChannel } from "@novu/api/models/components"; - -let value: IntegrationResponseDtoChannel = "email"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/components/markallmessageasrequestdto.md b/docs/models/components/markallmessageasrequestdto.md deleted file mode 100644 index c4b5ef09..00000000 --- a/docs/models/components/markallmessageasrequestdto.md +++ /dev/null @@ -1,18 +0,0 @@ -# MarkAllMessageAsRequestDto - -## Example Usage - -```typescript -import { MarkAllMessageAsRequestDto } from "@novu/api/models/components"; - -let value: MarkAllMessageAsRequestDto = { - markAs: "unread", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `feedIdentifier` | *components.FeedIdentifier* | :heavy_minus_sign: | Optional feed identifier or array of feed identifiers | -| `markAs` | [components.MarkAllMessageAsRequestDtoMarkAs](../../models/components/markallmessageasrequestdtomarkas.md) | :heavy_check_mark: | Mark all subscriber messages as read, unread, seen or unseen | \ No newline at end of file diff --git a/docs/models/components/markallmessageasrequestdtomarkas.md b/docs/models/components/markallmessageasrequestdtomarkas.md deleted file mode 100644 index e6c8a0f7..00000000 --- a/docs/models/components/markallmessageasrequestdtomarkas.md +++ /dev/null @@ -1,17 +0,0 @@ -# MarkAllMessageAsRequestDtoMarkAs - -Mark all subscriber messages as read, unread, seen or unseen - -## Example Usage - -```typescript -import { MarkAllMessageAsRequestDtoMarkAs } from "@novu/api/models/components"; - -let value: MarkAllMessageAsRequestDtoMarkAs = "unseen"; -``` - -## Values - -```typescript -"read" | "seen" | "unread" | "unseen" -``` \ No newline at end of file diff --git a/docs/models/components/markas.md b/docs/models/components/markas.md deleted file mode 100644 index 63197c56..00000000 --- a/docs/models/components/markas.md +++ /dev/null @@ -1,15 +0,0 @@ -# MarkAs - -## Example Usage - -```typescript -import { MarkAs } from "@novu/api/models/components"; - -let value: MarkAs = "seen"; -``` - -## Values - -```typescript -"read" | "seen" | "unread" | "unseen" -``` \ No newline at end of file diff --git a/docs/models/components/markmessageactionasseendto.md b/docs/models/components/markmessageactionasseendto.md deleted file mode 100644 index 862a243c..00000000 --- a/docs/models/components/markmessageactionasseendto.md +++ /dev/null @@ -1,18 +0,0 @@ -# MarkMessageActionAsSeenDto - -## Example Usage - -```typescript -import { MarkMessageActionAsSeenDto } from "@novu/api/models/components"; - -let value: MarkMessageActionAsSeenDto = { - status: "pending", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `status` | [components.MarkMessageActionAsSeenDtoStatus](../../models/components/markmessageactionasseendtostatus.md) | :heavy_check_mark: | Message action status | -| `payload` | [components.MarkMessageActionAsSeenDtoPayload](../../models/components/markmessageactionasseendtopayload.md) | :heavy_minus_sign: | Message action payload | \ No newline at end of file diff --git a/docs/models/components/markmessageactionasseendtopayload.md b/docs/models/components/markmessageactionasseendtopayload.md deleted file mode 100644 index f176f4e9..00000000 --- a/docs/models/components/markmessageactionasseendtopayload.md +++ /dev/null @@ -1,16 +0,0 @@ -# MarkMessageActionAsSeenDtoPayload - -Message action payload - -## Example Usage - -```typescript -import { MarkMessageActionAsSeenDtoPayload } from "@novu/api/models/components"; - -let value: MarkMessageActionAsSeenDtoPayload = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/markmessageactionasseendtostatus.md b/docs/models/components/markmessageactionasseendtostatus.md deleted file mode 100644 index 10687933..00000000 --- a/docs/models/components/markmessageactionasseendtostatus.md +++ /dev/null @@ -1,17 +0,0 @@ -# MarkMessageActionAsSeenDtoStatus - -Message action status - -## Example Usage - -```typescript -import { MarkMessageActionAsSeenDtoStatus } from "@novu/api/models/components"; - -let value: MarkMessageActionAsSeenDtoStatus = "pending"; -``` - -## Values - -```typescript -"pending" | "done" -``` \ No newline at end of file diff --git a/docs/models/components/messageaction.md b/docs/models/components/messageaction.md deleted file mode 100644 index 33317d1d..00000000 --- a/docs/models/components/messageaction.md +++ /dev/null @@ -1,17 +0,0 @@ -# MessageAction - -## Example Usage - -```typescript -import { MessageAction } from "@novu/api/models/components"; - -let value: MessageAction = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `status` | [components.MessageActionStatus](../../models/components/messageactionstatus.md) | :heavy_minus_sign: | N/A | -| `buttons` | [components.MessageButton](../../models/components/messagebutton.md)[] | :heavy_minus_sign: | N/A | -| `result` | [components.MessageActionResult](../../models/components/messageactionresult.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageactionresult.md b/docs/models/components/messageactionresult.md deleted file mode 100644 index bf928d87..00000000 --- a/docs/models/components/messageactionresult.md +++ /dev/null @@ -1,16 +0,0 @@ -# MessageActionResult - -## Example Usage - -```typescript -import { MessageActionResult } from "@novu/api/models/components"; - -let value: MessageActionResult = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `payload` | [components.MessageActionResultPayload](../../models/components/messageactionresultpayload.md) | :heavy_minus_sign: | N/A | -| `type` | [components.MessageActionResultType](../../models/components/messageactionresulttype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageactionresultpayload.md b/docs/models/components/messageactionresultpayload.md deleted file mode 100644 index bbac45e2..00000000 --- a/docs/models/components/messageactionresultpayload.md +++ /dev/null @@ -1,14 +0,0 @@ -# MessageActionResultPayload - -## Example Usage - -```typescript -import { MessageActionResultPayload } from "@novu/api/models/components"; - -let value: MessageActionResultPayload = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageactionresulttype.md b/docs/models/components/messageactionresulttype.md deleted file mode 100644 index 7b4520f3..00000000 --- a/docs/models/components/messageactionresulttype.md +++ /dev/null @@ -1,15 +0,0 @@ -# MessageActionResultType - -## Example Usage - -```typescript -import { MessageActionResultType } from "@novu/api/models/components"; - -let value: MessageActionResultType = "primary"; -``` - -## Values - -```typescript -"primary" | "secondary" -``` \ No newline at end of file diff --git a/docs/models/components/messageactionstatus.md b/docs/models/components/messageactionstatus.md deleted file mode 100644 index c039a55b..00000000 --- a/docs/models/components/messageactionstatus.md +++ /dev/null @@ -1,15 +0,0 @@ -# MessageActionStatus - -## Example Usage - -```typescript -import { MessageActionStatus } from "@novu/api/models/components"; - -let value: MessageActionStatus = "pending"; -``` - -## Values - -```typescript -"pending" | "done" -``` \ No newline at end of file diff --git a/docs/models/components/messagebutton.md b/docs/models/components/messagebutton.md deleted file mode 100644 index f51b4781..00000000 --- a/docs/models/components/messagebutton.md +++ /dev/null @@ -1,20 +0,0 @@ -# MessageButton - -## Example Usage - -```typescript -import { MessageButton } from "@novu/api/models/components"; - -let value: MessageButton = { - type: "primary", - content: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `type` | [components.MessageButtonType](../../models/components/messagebuttontype.md) | :heavy_check_mark: | N/A | -| `content` | *string* | :heavy_check_mark: | N/A | -| `resultContent` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagebuttontype.md b/docs/models/components/messagebuttontype.md deleted file mode 100644 index b06cb585..00000000 --- a/docs/models/components/messagebuttontype.md +++ /dev/null @@ -1,15 +0,0 @@ -# MessageButtonType - -## Example Usage - -```typescript -import { MessageButtonType } from "@novu/api/models/components"; - -let value: MessageButtonType = "secondary"; -``` - -## Values - -```typescript -"primary" | "secondary" -``` \ No newline at end of file diff --git a/docs/models/components/messagecta.md b/docs/models/components/messagecta.md deleted file mode 100644 index 3b30fef1..00000000 --- a/docs/models/components/messagecta.md +++ /dev/null @@ -1,19 +0,0 @@ -# MessageCTA - -## Example Usage - -```typescript -import { MessageCTA } from "@novu/api/models/components"; - -let value: MessageCTA = { - data: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `type` | [components.MessageCTAType](../../models/components/messagectatype.md) | :heavy_minus_sign: | N/A | -| `data` | [components.MessageCTAData](../../models/components/messagectadata.md) | :heavy_check_mark: | N/A | -| `action` | [components.MessageAction](../../models/components/messageaction.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagectadata.md b/docs/models/components/messagectadata.md deleted file mode 100644 index 6256b50c..00000000 --- a/docs/models/components/messagectadata.md +++ /dev/null @@ -1,15 +0,0 @@ -# MessageCTAData - -## Example Usage - -```typescript -import { MessageCTAData } from "@novu/api/models/components"; - -let value: MessageCTAData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `url` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagectatype.md b/docs/models/components/messagectatype.md deleted file mode 100644 index 297b495e..00000000 --- a/docs/models/components/messagectatype.md +++ /dev/null @@ -1,15 +0,0 @@ -# MessageCTAType - -## Example Usage - -```typescript -import { MessageCTAType } from "@novu/api/models/components"; - -let value: MessageCTAType = "redirect"; -``` - -## Values - -```typescript -"redirect" -``` \ No newline at end of file diff --git a/docs/models/components/messageentity.md b/docs/models/components/messageentity.md deleted file mode 100644 index 6e91c47a..00000000 --- a/docs/models/components/messageentity.md +++ /dev/null @@ -1,14 +0,0 @@ -# MessageEntity - -## Example Usage - -```typescript -import { MessageEntity } from "@novu/api/models/components"; - -let value: MessageEntity = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageid.md b/docs/models/components/messageid.md deleted file mode 100644 index 46eeb36d..00000000 --- a/docs/models/components/messageid.md +++ /dev/null @@ -1,19 +0,0 @@ -# MessageId - - -## Supported Types - -### `string` - -```typescript -const value: string = ""; -``` - -### `string[]` - -```typescript -const value: string[] = [ - "", -]; -``` - diff --git a/docs/models/components/messagemarkasrequestdto.md b/docs/models/components/messagemarkasrequestdto.md deleted file mode 100644 index 7a8a3575..00000000 --- a/docs/models/components/messagemarkasrequestdto.md +++ /dev/null @@ -1,21 +0,0 @@ -# MessageMarkAsRequestDto - -## Example Usage - -```typescript -import { MessageMarkAsRequestDto } from "@novu/api/models/components"; - -let value: MessageMarkAsRequestDto = { - messageId: [ - "", - ], - markAs: "unread", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `messageId` | *components.MessageId* | :heavy_check_mark: | N/A | -| `markAs` | [components.MarkAs](../../models/components/markas.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagemarkasrequestdtomarkas.md b/docs/models/components/messagemarkasrequestdtomarkas.md deleted file mode 100644 index 864b2ab8..00000000 --- a/docs/models/components/messagemarkasrequestdtomarkas.md +++ /dev/null @@ -1,19 +0,0 @@ -# MessageMarkAsRequestDtoMarkAs - -## Example Usage - -```typescript -import { MessageMarkAsRequestDtoMarkAs } from "@novu/api/models/components"; - -<<<<<<< Updated upstream -let value: MessageMarkAsRequestDtoMarkAs = "read"; -======= -let value: MessageMarkAsRequestDtoMarkAs = "seen"; ->>>>>>> Stashed changes -``` - -## Values - -```typescript -"read" | "seen" | "unread" | "unseen" -``` \ No newline at end of file diff --git a/docs/models/components/messageresponsedto.md b/docs/models/components/messageresponsedto.md deleted file mode 100644 index 544b5ad3..00000000 --- a/docs/models/components/messageresponsedto.md +++ /dev/null @@ -1,67 +0,0 @@ -# MessageResponseDto - -## Example Usage - -```typescript -import { MessageResponseDto } from "@novu/api/models/components"; - -let value: MessageResponseDto = { - templateId: "", - environmentId: "", - messageTemplateId: "", - organizationId: "", - notificationId: "", - subscriberId: "", - createdAt: "", - content: "", - transactionId: "", - channel: "sms", - read: false, - seen: false, - cta: { - data: {}, - }, - status: "error", - errorId: "", - errorText: "", - payload: {}, - overrides: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `templateId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `messageTemplateId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `notificationId` | *string* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `subscriber` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_minus_sign: | N/A | -| `template` | [components.WorkflowResponse](../../models/components/workflowresponse.md) | :heavy_minus_sign: | N/A | -| `templateIdentifier` | *string* | :heavy_minus_sign: | N/A | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `lastSeenDate` | *string* | :heavy_minus_sign: | N/A | -| `lastReadDate` | *string* | :heavy_minus_sign: | N/A | -| `content` | *components.Content* | :heavy_check_mark: | N/A | -| `transactionId` | *string* | :heavy_check_mark: | N/A | -| `subject` | *string* | :heavy_minus_sign: | N/A | -| `channel` | [components.MessageResponseDtoChannel](../../models/components/messageresponsedtochannel.md) | :heavy_check_mark: | N/A | -| `read` | *boolean* | :heavy_check_mark: | N/A | -| `seen` | *boolean* | :heavy_check_mark: | N/A | -| `email` | *string* | :heavy_minus_sign: | N/A | -| `phone` | *string* | :heavy_minus_sign: | N/A | -| `directWebhookUrl` | *string* | :heavy_minus_sign: | N/A | -| `providerId` | *string* | :heavy_minus_sign: | N/A | -| `deviceTokens` | *string*[] | :heavy_minus_sign: | N/A | -| `title` | *string* | :heavy_minus_sign: | N/A | -| `cta` | [components.MessageCTA](../../models/components/messagecta.md) | :heavy_check_mark: | N/A | -| `feedId` | [components.FeedId](../../models/components/feedid.md) | :heavy_minus_sign: | N/A | -| `status` | [components.MessageResponseDtoStatus](../../models/components/messageresponsedtostatus.md) | :heavy_check_mark: | N/A | -| `errorId` | *string* | :heavy_check_mark: | N/A | -| `errorText` | *string* | :heavy_check_mark: | N/A | -| `payload` | [components.MessageResponseDtoPayload](../../models/components/messageresponsedtopayload.md) | :heavy_check_mark: | The payload that was used to send the notification trigger | -| `overrides` | [components.MessageResponseDtoOverrides](../../models/components/messageresponsedtooverrides.md) | :heavy_check_mark: | Provider specific overrides used when triggering the notification | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtochannel.md b/docs/models/components/messageresponsedtochannel.md deleted file mode 100644 index 1e367bec..00000000 --- a/docs/models/components/messageresponsedtochannel.md +++ /dev/null @@ -1,15 +0,0 @@ -# MessageResponseDtoChannel - -## Example Usage - -```typescript -import { MessageResponseDtoChannel } from "@novu/api/models/components"; - -let value: MessageResponseDtoChannel = "sms"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/components/messageresponsedtooverrides.md b/docs/models/components/messageresponsedtooverrides.md deleted file mode 100644 index f8131ed8..00000000 --- a/docs/models/components/messageresponsedtooverrides.md +++ /dev/null @@ -1,16 +0,0 @@ -# MessageResponseDtoOverrides - -Provider specific overrides used when triggering the notification - -## Example Usage - -```typescript -import { MessageResponseDtoOverrides } from "@novu/api/models/components"; - -let value: MessageResponseDtoOverrides = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtopayload.md b/docs/models/components/messageresponsedtopayload.md deleted file mode 100644 index cee9625c..00000000 --- a/docs/models/components/messageresponsedtopayload.md +++ /dev/null @@ -1,16 +0,0 @@ -# MessageResponseDtoPayload - -The payload that was used to send the notification trigger - -## Example Usage - -```typescript -import { MessageResponseDtoPayload } from "@novu/api/models/components"; - -let value: MessageResponseDtoPayload = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtostatus.md b/docs/models/components/messageresponsedtostatus.md deleted file mode 100644 index d2a8d2eb..00000000 --- a/docs/models/components/messageresponsedtostatus.md +++ /dev/null @@ -1,15 +0,0 @@ -# MessageResponseDtoStatus - -## Example Usage - -```typescript -import { MessageResponseDtoStatus } from "@novu/api/models/components"; - -let value: MessageResponseDtoStatus = "warning"; -``` - -## Values - -```typescript -"sent" | "error" | "warning" -``` \ No newline at end of file diff --git a/docs/models/components/messagetemplate.md b/docs/models/components/messagetemplate.md deleted file mode 100644 index cb701122..00000000 --- a/docs/models/components/messagetemplate.md +++ /dev/null @@ -1,14 +0,0 @@ -# MessageTemplate - -## Example Usage - -```typescript -import { MessageTemplate } from "@novu/api/models/components"; - -let value: MessageTemplate = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/metadata.md b/docs/models/components/metadata.md deleted file mode 100644 index d4991d52..00000000 --- a/docs/models/components/metadata.md +++ /dev/null @@ -1,38 +0,0 @@ -# Metadata - - -## Supported Types - -### `components.DigestRegularMetadata` - -```typescript -const value: components.DigestRegularMetadata = { - type: "backoff", -}; -``` - -### `components.DigestTimedMetadata` - -```typescript -const value: components.DigestTimedMetadata = { - type: "timed", -}; -``` - -### `components.DelayRegularMetadata` - -```typescript -const value: components.DelayRegularMetadata = { - type: "regular", -}; -``` - -### `components.DelayScheduledMetadata` - -```typescript -const value: components.DelayScheduledMetadata = { - type: "scheduled", - delayPath: "", -}; -``` - diff --git a/docs/models/components/monthlytype.md b/docs/models/components/monthlytype.md deleted file mode 100644 index 8b6ac551..00000000 --- a/docs/models/components/monthlytype.md +++ /dev/null @@ -1,15 +0,0 @@ -# MonthlyType - -## Example Usage - -```typescript -import { MonthlyType } from "@novu/api/models/components"; - -let value: MonthlyType = "on"; -``` - -## Values - -```typescript -"each" | "on" -``` \ No newline at end of file diff --git a/docs/models/components/notificationgroup.md b/docs/models/components/notificationgroup.md deleted file mode 100644 index da0294bb..00000000 --- a/docs/models/components/notificationgroup.md +++ /dev/null @@ -1,23 +0,0 @@ -# NotificationGroup - -## Example Usage - -```typescript -import { NotificationGroup } from "@novu/api/models/components"; - -let value: NotificationGroup = { - name: "", - environmentId: "", - organizationId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationgroupresponsedto.md b/docs/models/components/notificationgroupresponsedto.md deleted file mode 100644 index 55741489..00000000 --- a/docs/models/components/notificationgroupresponsedto.md +++ /dev/null @@ -1,23 +0,0 @@ -# NotificationGroupResponseDto - -## Example Usage - -```typescript -import { NotificationGroupResponseDto } from "@novu/api/models/components"; - -let value: NotificationGroupResponseDto = { - name: "", - environmentId: "", - organizationId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstep.md b/docs/models/components/notificationstep.md deleted file mode 100644 index 5cab470b..00000000 --- a/docs/models/components/notificationstep.md +++ /dev/null @@ -1,26 +0,0 @@ -# NotificationStep - -## Example Usage - -```typescript -import { NotificationStep } from "@novu/api/models/components"; - -let value: NotificationStep = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `uuid` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `templateId` | *string* | :heavy_minus_sign: | N/A | -| `active` | *boolean* | :heavy_minus_sign: | N/A | -| `shouldStopOnFail` | *boolean* | :heavy_minus_sign: | N/A | -| `template` | [components.MessageTemplate](../../models/components/messagetemplate.md) | :heavy_minus_sign: | N/A | -| `filters` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | -| `parentId` | [components.ParentId](../../models/components/parentid.md) | :heavy_minus_sign: | N/A | -| `metadata` | *components.Metadata* | :heavy_minus_sign: | N/A | -| `replyCallback` | [components.ReplyCallback](../../models/components/replycallback.md) | :heavy_minus_sign: | N/A | -| `variants` | [components.NotificationStepVariant](../../models/components/notificationstepvariant.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariant.md b/docs/models/components/notificationstepvariant.md deleted file mode 100644 index cfb4d749..00000000 --- a/docs/models/components/notificationstepvariant.md +++ /dev/null @@ -1,25 +0,0 @@ -# NotificationStepVariant - -## Example Usage - -```typescript -import { NotificationStepVariant } from "@novu/api/models/components"; - -let value: NotificationStepVariant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `uuid` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `templateId` | *string* | :heavy_minus_sign: | N/A | -| `active` | *boolean* | :heavy_minus_sign: | N/A | -| `shouldStopOnFail` | *boolean* | :heavy_minus_sign: | N/A | -| `template` | [components.MessageTemplate](../../models/components/messagetemplate.md) | :heavy_minus_sign: | N/A | -| `filters` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | -| `parentId` | [components.NotificationStepVariantParentId](../../models/components/notificationstepvariantparentid.md) | :heavy_minus_sign: | N/A | -| `metadata` | *components.NotificationStepVariantMetadata* | :heavy_minus_sign: | N/A | -| `replyCallback` | [components.NotificationStepVariantReplyCallback](../../models/components/notificationstepvariantreplycallback.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariantmetadata.md b/docs/models/components/notificationstepvariantmetadata.md deleted file mode 100644 index bcea460c..00000000 --- a/docs/models/components/notificationstepvariantmetadata.md +++ /dev/null @@ -1,38 +0,0 @@ -# NotificationStepVariantMetadata - - -## Supported Types - -### `components.DigestRegularMetadata` - -```typescript -const value: components.DigestRegularMetadata = { - type: "backoff", -}; -``` - -### `components.DigestTimedMetadata` - -```typescript -const value: components.DigestTimedMetadata = { - type: "timed", -}; -``` - -### `components.DelayRegularMetadata` - -```typescript -const value: components.DelayRegularMetadata = { - type: "regular", -}; -``` - -### `components.DelayScheduledMetadata` - -```typescript -const value: components.DelayScheduledMetadata = { - type: "scheduled", - delayPath: "", -}; -``` - diff --git a/docs/models/components/notificationstepvariantparentid.md b/docs/models/components/notificationstepvariantparentid.md deleted file mode 100644 index 9a182149..00000000 --- a/docs/models/components/notificationstepvariantparentid.md +++ /dev/null @@ -1,14 +0,0 @@ -# NotificationStepVariantParentId - -## Example Usage - -```typescript -import { NotificationStepVariantParentId } from "@novu/api/models/components"; - -let value: NotificationStepVariantParentId = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariantreplycallback.md b/docs/models/components/notificationstepvariantreplycallback.md deleted file mode 100644 index 8ab047a7..00000000 --- a/docs/models/components/notificationstepvariantreplycallback.md +++ /dev/null @@ -1,14 +0,0 @@ -# NotificationStepVariantReplyCallback - -## Example Usage - -```typescript -import { NotificationStepVariantReplyCallback } from "@novu/api/models/components"; - -let value: NotificationStepVariantReplyCallback = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/notificationtrigger.md b/docs/models/components/notificationtrigger.md deleted file mode 100644 index d15253f7..00000000 --- a/docs/models/components/notificationtrigger.md +++ /dev/null @@ -1,26 +0,0 @@ -# NotificationTrigger - -## Example Usage - -```typescript -import { NotificationTrigger } from "@novu/api/models/components"; - -let value: NotificationTrigger = { - type: "event", - identifier: "", - variables: [ - { - name: "", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `type` | [components.NotificationTriggerType](../../models/components/notificationtriggertype.md) | :heavy_check_mark: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `variables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_check_mark: | N/A | -| `subscriberVariables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationtriggertype.md b/docs/models/components/notificationtriggertype.md deleted file mode 100644 index e8715b58..00000000 --- a/docs/models/components/notificationtriggertype.md +++ /dev/null @@ -1,15 +0,0 @@ -# NotificationTriggerType - -## Example Usage - -```typescript -import { NotificationTriggerType } from "@novu/api/models/components"; - -let value: NotificationTriggerType = "event"; -``` - -## Values - -```typescript -"event" -``` \ No newline at end of file diff --git a/docs/models/components/notificationtriggervariable.md b/docs/models/components/notificationtriggervariable.md deleted file mode 100644 index 4bca567c..00000000 --- a/docs/models/components/notificationtriggervariable.md +++ /dev/null @@ -1,17 +0,0 @@ -# NotificationTriggerVariable - -## Example Usage - -```typescript -import { NotificationTriggerVariable } from "@novu/api/models/components"; - -let value: NotificationTriggerVariable = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/on.md b/docs/models/components/on.md deleted file mode 100644 index 3f67d3c1..00000000 --- a/docs/models/components/on.md +++ /dev/null @@ -1,15 +0,0 @@ -# On - -## Example Usage - -```typescript -import { On } from "@novu/api/models/components"; - -let value: On = "payload"; -``` - -## Values - -```typescript -"subscriber" | "payload" -``` \ No newline at end of file diff --git a/docs/models/components/operator.md b/docs/models/components/operator.md deleted file mode 100644 index 4d9a5b40..00000000 --- a/docs/models/components/operator.md +++ /dev/null @@ -1,15 +0,0 @@ -# Operator - -## Example Usage - -```typescript -import { Operator } from "@novu/api/models/components"; - -let value: Operator = "NOT_IN"; -``` - -## Values - -```typescript -"LARGER" | "SMALLER" | "LARGER_EQUAL" | "SMALLER_EQUAL" | "EQUAL" | "NOT_EQUAL" | "ALL_IN" | "ANY_IN" | "NOT_IN" | "BETWEEN" | "NOT_BETWEEN" | "LIKE" | "NOT_LIKE" | "IN" -``` \ No newline at end of file diff --git a/docs/models/components/ordinal.md b/docs/models/components/ordinal.md deleted file mode 100644 index d30ab30d..00000000 --- a/docs/models/components/ordinal.md +++ /dev/null @@ -1,15 +0,0 @@ -# Ordinal - -## Example Usage - -```typescript -import { Ordinal } from "@novu/api/models/components"; - -let value: Ordinal = "2"; -``` - -## Values - -```typescript -"1" | "2" | "3" | "4" | "5" | "last" -``` \ No newline at end of file diff --git a/docs/models/components/ordinalvalue.md b/docs/models/components/ordinalvalue.md deleted file mode 100644 index 31c73e0b..00000000 --- a/docs/models/components/ordinalvalue.md +++ /dev/null @@ -1,15 +0,0 @@ -# OrdinalValue - -## Example Usage - -```typescript -import { OrdinalValue } from "@novu/api/models/components"; - -let value: OrdinalValue = "saturday"; -``` - -## Values - -```typescript -"day" | "weekday" | "weekend" | "sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" -``` \ No newline at end of file diff --git a/docs/models/components/organizationbrandingresponsedto.md b/docs/models/components/organizationbrandingresponsedto.md deleted file mode 100644 index 90d54994..00000000 --- a/docs/models/components/organizationbrandingresponsedto.md +++ /dev/null @@ -1,25 +0,0 @@ -# OrganizationBrandingResponseDto - -## Example Usage - -```typescript -import { OrganizationBrandingResponseDto } from "@novu/api/models/components"; - -let value: OrganizationBrandingResponseDto = { - color: "orchid", - contentBackground: "", - fontColor: "", - logo: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `color` | *string* | :heavy_check_mark: | N/A | -| `contentBackground` | *string* | :heavy_check_mark: | N/A | -| `direction` | [components.Direction](../../models/components/direction.md) | :heavy_minus_sign: | N/A | -| `fontColor` | *string* | :heavy_check_mark: | N/A | -| `fontFamily` | *string* | :heavy_minus_sign: | N/A | -| `logo` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/organizationresponsedto.md b/docs/models/components/organizationresponsedto.md deleted file mode 100644 index d2304ea1..00000000 --- a/docs/models/components/organizationresponsedto.md +++ /dev/null @@ -1,26 +0,0 @@ -# OrganizationResponseDto - -## Example Usage - -```typescript -import { OrganizationResponseDto } from "@novu/api/models/components"; - -let value: OrganizationResponseDto = { - branding: { - color: "yellow", - contentBackground: "", - fontColor: "", - logo: "", - }, - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `branding` | [components.OrganizationBrandingResponseDto](../../models/components/organizationbrandingresponsedto.md) | :heavy_check_mark: | N/A | -| `logo` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `partnerConfigurations` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/overrides.md b/docs/models/components/overrides.md deleted file mode 100644 index 99d8c8be..00000000 --- a/docs/models/components/overrides.md +++ /dev/null @@ -1,16 +0,0 @@ -# Overrides - -This could be used to override provider specific configurations - -## Example Usage - -```typescript -import { Overrides } from "@novu/api/models/components"; - -let value: Overrides = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/parentid.md b/docs/models/components/parentid.md deleted file mode 100644 index 8c641363..00000000 --- a/docs/models/components/parentid.md +++ /dev/null @@ -1,14 +0,0 @@ -# ParentId - -## Example Usage - -```typescript -import { ParentId } from "@novu/api/models/components"; - -let value: ParentId = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/payload.md b/docs/models/components/payload.md deleted file mode 100644 index 0d201d57..00000000 --- a/docs/models/components/payload.md +++ /dev/null @@ -1,17 +0,0 @@ -# Payload - -The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - -## Example Usage - -```typescript -import { Payload } from "@novu/api/models/components"; - -let value: Payload = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/preference.md b/docs/models/components/preference.md deleted file mode 100644 index 3d3470b3..00000000 --- a/docs/models/components/preference.md +++ /dev/null @@ -1,19 +0,0 @@ -# Preference - -## Example Usage - -```typescript -import { Preference } from "@novu/api/models/components"; - -let value: Preference = { - enabled: false, - channels: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `enabled` | *boolean* | :heavy_check_mark: | Sets if the workflow is fully enabled for all channels or not for the subscriber. | -| `channels` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | Subscriber preferences for the different channels regarding this workflow | \ No newline at end of file diff --git a/docs/models/components/preferencechannels.md b/docs/models/components/preferencechannels.md deleted file mode 100644 index f6df176a..00000000 --- a/docs/models/components/preferencechannels.md +++ /dev/null @@ -1,19 +0,0 @@ -# PreferenceChannels - -## Example Usage - -```typescript -import { PreferenceChannels } from "@novu/api/models/components"; - -let value: PreferenceChannels = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `email` | *boolean* | :heavy_minus_sign: | N/A | -| `sms` | *boolean* | :heavy_minus_sign: | N/A | -| `inApp` | *boolean* | :heavy_minus_sign: | N/A | -| `chat` | *boolean* | :heavy_minus_sign: | N/A | -| `push` | *boolean* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/providerid.md b/docs/models/components/providerid.md deleted file mode 100644 index d9bbdbd0..00000000 --- a/docs/models/components/providerid.md +++ /dev/null @@ -1,17 +0,0 @@ -# ProviderId - -The provider identifier for the credentials - -## Example Usage - -```typescript -import { ProviderId } from "@novu/api/models/components"; - -let value: ProviderId = "ryver"; -``` - -## Values - -```typescript -"slack" | "discord" | "msteams" | "mattermost" | "ryver" | "zulip" | "grafana-on-call" | "getstream" | "rocket-chat" | "whatsapp-business" | "fcm" | "apns" | "expo" | "one-signal" | "pushpad" | "push-webhook" | "pusher-beams" -``` \ No newline at end of file diff --git a/docs/models/components/removesubscribersrequestdto.md b/docs/models/components/removesubscribersrequestdto.md deleted file mode 100644 index 6378417e..00000000 --- a/docs/models/components/removesubscribersrequestdto.md +++ /dev/null @@ -1,19 +0,0 @@ -# RemoveSubscribersRequestDto - -## Example Usage - -```typescript -import { RemoveSubscribersRequestDto } from "@novu/api/models/components"; - -let value: RemoveSubscribersRequestDto = { - subscribers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `subscribers` | *string*[] | :heavy_check_mark: | List of subscriber identifiers that will be removed to the topic | \ No newline at end of file diff --git a/docs/models/components/renameorganizationdto.md b/docs/models/components/renameorganizationdto.md deleted file mode 100644 index 30bd019a..00000000 --- a/docs/models/components/renameorganizationdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# RenameOrganizationDto - -## Example Usage - -```typescript -import { RenameOrganizationDto } from "@novu/api/models/components"; - -let value: RenameOrganizationDto = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/renametopicrequestdto.md b/docs/models/components/renametopicrequestdto.md deleted file mode 100644 index 7e0ec720..00000000 --- a/docs/models/components/renametopicrequestdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# RenameTopicRequestDto - -## Example Usage - -```typescript -import { RenameTopicRequestDto } from "@novu/api/models/components"; - -let value: RenameTopicRequestDto = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `name` | *string* | :heavy_check_mark: | User defined custom name and provided by the user to rename the topic. | \ No newline at end of file diff --git a/docs/models/components/renametopicresponsedto.md b/docs/models/components/renametopicresponsedto.md deleted file mode 100644 index 2e200baf..00000000 --- a/docs/models/components/renametopicresponsedto.md +++ /dev/null @@ -1,28 +0,0 @@ -# RenameTopicResponseDto - -## Example Usage - -```typescript -import { RenameTopicResponseDto } from "@novu/api/models/components"; - -let value: RenameTopicResponseDto = { - organizationId: "", - environmentId: "", - key: "", - name: "", - subscribers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `key` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/replycallback.md b/docs/models/components/replycallback.md deleted file mode 100644 index e23aabc6..00000000 --- a/docs/models/components/replycallback.md +++ /dev/null @@ -1,14 +0,0 @@ -# ReplyCallback - -## Example Usage - -```typescript -import { ReplyCallback } from "@novu/api/models/components"; - -let value: ReplyCallback = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/security.md b/docs/models/components/security.md deleted file mode 100644 index 59a810c2..00000000 --- a/docs/models/components/security.md +++ /dev/null @@ -1,17 +0,0 @@ -# Security - -## Example Usage - -```typescript -import { Security } from "@novu/api/models/components"; - -let value: Security = { - apiKey: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `apiKey` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/source.md b/docs/models/components/source.md deleted file mode 100644 index cc43d1f7..00000000 --- a/docs/models/components/source.md +++ /dev/null @@ -1,15 +0,0 @@ -# Source - -## Example Usage - -```typescript -import { Source } from "@novu/api/models/components"; - -let value: Source = "Credentials"; -``` - -## Values - -```typescript -"Credentials" | "Internal" | "Payload" | "Webhook" -``` \ No newline at end of file diff --git a/docs/models/components/status.md b/docs/models/components/status.md deleted file mode 100644 index 37cc848a..00000000 --- a/docs/models/components/status.md +++ /dev/null @@ -1,15 +0,0 @@ -# Status - -## Example Usage - -```typescript -import { Status } from "@novu/api/models/components"; - -let value: Status = "ReadConfirmation"; -``` - -## Values - -```typescript -"Success" | "Warning" | "Failed" | "Pending" | "Queued" | "ReadConfirmation" -``` \ No newline at end of file diff --git a/docs/models/components/stepfilter.md b/docs/models/components/stepfilter.md deleted file mode 100644 index 92ed9d29..00000000 --- a/docs/models/components/stepfilter.md +++ /dev/null @@ -1,30 +0,0 @@ -# StepFilter - -## Example Usage - -```typescript -import { StepFilter } from "@novu/api/models/components"; - -let value: StepFilter = { - isNegated: false, - type: "STATEMENT", - value: "AND", - children: [ - { - field: "", - value: "", - operator: "ANY_IN", - on: "subscriber", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `isNegated` | *boolean* | :heavy_check_mark: | N/A | -| `type` | [components.StepFilterType](../../models/components/stepfiltertype.md) | :heavy_check_mark: | N/A | -| `value` | [components.Value](../../models/components/value.md) | :heavy_check_mark: | N/A | -| `children` | [components.FieldFilterPart](../../models/components/fieldfilterpart.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/stepfiltertype.md b/docs/models/components/stepfiltertype.md deleted file mode 100644 index ace94e10..00000000 --- a/docs/models/components/stepfiltertype.md +++ /dev/null @@ -1,15 +0,0 @@ -# StepFilterType - -## Example Usage - -```typescript -import { StepFilterType } from "@novu/api/models/components"; - -let value: StepFilterType = "BOOLEAN"; -``` - -## Values - -```typescript -"BOOLEAN" | "TEXT" | "DATE" | "NUMBER" | "STATEMENT" | "LIST" | "MULTI_LIST" | "GROUP" -``` \ No newline at end of file diff --git a/docs/models/components/subscriberpayloaddto.md b/docs/models/components/subscriberpayloaddto.md deleted file mode 100644 index d8af3779..00000000 --- a/docs/models/components/subscriberpayloaddto.md +++ /dev/null @@ -1,25 +0,0 @@ -# SubscriberPayloadDto - -## Example Usage - -```typescript -import { SubscriberPayloadDto } from "@novu/api/models/components"; - -let value: SubscriberPayloadDto = { - subscriberId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | -| `email` | *string* | :heavy_minus_sign: | N/A | -| `firstName` | *string* | :heavy_minus_sign: | N/A | -| `lastName` | *string* | :heavy_minus_sign: | N/A | -| `phone` | *string* | :heavy_minus_sign: | N/A | -| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | -| `locale` | *string* | :heavy_minus_sign: | N/A | -| `data` | [components.Data](../../models/components/data.md) | :heavy_minus_sign: | N/A | -| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/subscriberpayloaddtodata.md b/docs/models/components/subscriberpayloaddtodata.md deleted file mode 100644 index ccfe7896..00000000 --- a/docs/models/components/subscriberpayloaddtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# SubscriberPayloadDtoData - -## Example Usage - -```typescript -import { SubscriberPayloadDtoData } from "@novu/api/models/components"; - -let value: SubscriberPayloadDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/subscriberresponsedto.md b/docs/models/components/subscriberresponsedto.md deleted file mode 100644 index c42f918e..00000000 --- a/docs/models/components/subscriberresponsedto.md +++ /dev/null @@ -1,39 +0,0 @@ -# SubscriberResponseDto - -## Example Usage - -```typescript -import { SubscriberResponseDto } from "@novu/api/models/components"; - -let value: SubscriberResponseDto = { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_minus_sign: | The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that | -| `firstName` | *string* | :heavy_minus_sign: | N/A | -| `lastName` | *string* | :heavy_minus_sign: | N/A | -| `email` | *string* | :heavy_minus_sign: | N/A | -| `phone` | *string* | :heavy_minus_sign: | N/A | -| `avatar` | *string* | :heavy_minus_sign: | N/A | -| `locale` | *string* | :heavy_minus_sign: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | -| `channels` | [components.ChannelSettings](../../models/components/channelsettings.md)[] | :heavy_minus_sign: | Channels settings for subscriber | -| `topics` | *string*[] | :heavy_minus_sign: | Topics that subscriber belongs to | -| `isOnline` | *boolean* | :heavy_minus_sign: | N/A | -| `lastOnlineAt` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `deleted` | *boolean* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `updatedAt` | *string* | :heavy_check_mark: | N/A | -| `v` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/system.md b/docs/models/components/system.md deleted file mode 100644 index dfc5ec71..00000000 --- a/docs/models/components/system.md +++ /dev/null @@ -1,14 +0,0 @@ -# System - -## Example Usage - -```typescript -import { System } from "@novu/api/models/components"; - -let value: System = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/templateresponse.md b/docs/models/components/templateresponse.md deleted file mode 100644 index b7db0638..00000000 --- a/docs/models/components/templateresponse.md +++ /dev/null @@ -1,25 +0,0 @@ -# TemplateResponse - -## Example Usage - -```typescript -import { TemplateResponse } from "@novu/api/models/components"; - -let value: TemplateResponse = { - id: "", - name: "", - critical: false, - triggers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_check_mark: | Unique identifier of the workflow | -| `name` | *string* | :heavy_check_mark: | Name of the workflow | -| `critical` | *boolean* | :heavy_check_mark: | Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen | -| `triggers` | *string*[] | :heavy_check_mark: | Triggers are the events that will trigger the workflow. | \ No newline at end of file diff --git a/docs/models/components/tenant.md b/docs/models/components/tenant.md deleted file mode 100644 index 41d67814..00000000 --- a/docs/models/components/tenant.md +++ /dev/null @@ -1,21 +0,0 @@ -# Tenant - -It is used to specify a tenant context during trigger event. - Existing tenants will be updated with the provided details. - - - -## Supported Types - -### `string` - -```typescript -const value: string = ""; -``` - -### `components.TenantPayloadDto` - -```typescript -const value: components.TenantPayloadDto = {}; -``` - diff --git a/docs/models/components/tenantpayloaddto.md b/docs/models/components/tenantpayloaddto.md deleted file mode 100644 index 661d9a83..00000000 --- a/docs/models/components/tenantpayloaddto.md +++ /dev/null @@ -1,17 +0,0 @@ -# TenantPayloadDto - -## Example Usage - -```typescript -import { TenantPayloadDto } from "@novu/api/models/components"; - -let value: TenantPayloadDto = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `identifier` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `data` | [components.TenantPayloadDtoData](../../models/components/tenantpayloaddtodata.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/tenantpayloaddtodata.md b/docs/models/components/tenantpayloaddtodata.md deleted file mode 100644 index 04522a7e..00000000 --- a/docs/models/components/tenantpayloaddtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# TenantPayloadDtoData - -## Example Usage - -```typescript -import { TenantPayloadDtoData } from "@novu/api/models/components"; - -let value: TenantPayloadDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/textalign.md b/docs/models/components/textalign.md deleted file mode 100644 index aa50769d..00000000 --- a/docs/models/components/textalign.md +++ /dev/null @@ -1,15 +0,0 @@ -# TextAlign - -## Example Usage - -```typescript -import { TextAlign } from "@novu/api/models/components"; - -let value: TextAlign = "center"; -``` - -## Values - -```typescript -"center" | "left" | "right" -``` \ No newline at end of file diff --git a/docs/models/components/timedconfig.md b/docs/models/components/timedconfig.md deleted file mode 100644 index 201d9d7e..00000000 --- a/docs/models/components/timedconfig.md +++ /dev/null @@ -1,20 +0,0 @@ -# TimedConfig - -## Example Usage - -```typescript -import { TimedConfig } from "@novu/api/models/components"; - -let value: TimedConfig = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `atTime` | *string* | :heavy_minus_sign: | N/A | -| `weekDays` | [components.WeekDays](../../models/components/weekdays.md)[] | :heavy_minus_sign: | N/A | -| `monthDays` | *string*[] | :heavy_minus_sign: | N/A | -| `ordinal` | [components.Ordinal](../../models/components/ordinal.md) | :heavy_minus_sign: | N/A | -| `ordinalValue` | [components.OrdinalValue](../../models/components/ordinalvalue.md) | :heavy_minus_sign: | N/A | -| `monthlyType` | [components.MonthlyType](../../models/components/monthlytype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/tlsoptions.md b/docs/models/components/tlsoptions.md deleted file mode 100644 index a0471566..00000000 --- a/docs/models/components/tlsoptions.md +++ /dev/null @@ -1,14 +0,0 @@ -# TlsOptions - -## Example Usage - -```typescript -import { TlsOptions } from "@novu/api/models/components"; - -let value: TlsOptions = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/to.md b/docs/models/components/to.md deleted file mode 100644 index 6a16d8b4..00000000 --- a/docs/models/components/to.md +++ /dev/null @@ -1,28 +0,0 @@ -# To - - -## Supported Types - -### `components.SubscriberPayloadDto` - -```typescript -const value: components.SubscriberPayloadDto = { - subscriberId: "", -}; -``` - -### `string` - -```typescript -const value: string = "SUBSCRIBER_ID"; -``` - -### `components.TopicPayloadDto` - -```typescript -const value: components.TopicPayloadDto = { - topicKey: "", - type: "Topic", -}; -``` - diff --git a/docs/models/components/topicdto.md b/docs/models/components/topicdto.md deleted file mode 100644 index 5bfda316..00000000 --- a/docs/models/components/topicdto.md +++ /dev/null @@ -1,28 +0,0 @@ -# TopicDto - -## Example Usage - -```typescript -import { TopicDto } from "@novu/api/models/components"; - -let value: TopicDto = { - organizationId: "", - environmentId: "", - key: "", - name: "", - subscribers: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `key` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/topicpayloaddto.md b/docs/models/components/topicpayloaddto.md deleted file mode 100644 index 030a93e5..00000000 --- a/docs/models/components/topicpayloaddto.md +++ /dev/null @@ -1,19 +0,0 @@ -# TopicPayloadDto - -## Example Usage - -```typescript -import { TopicPayloadDto } from "@novu/api/models/components"; - -let value: TopicPayloadDto = { - topicKey: "", - type: "Topic", -}; -``` - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `topicKey` | *string* | :heavy_check_mark: | N/A | | -| `type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | N/A | Topic | \ No newline at end of file diff --git a/docs/models/components/topicpayloaddtotype.md b/docs/models/components/topicpayloaddtotype.md deleted file mode 100644 index ab949005..00000000 --- a/docs/models/components/topicpayloaddtotype.md +++ /dev/null @@ -1,15 +0,0 @@ -# TopicPayloadDtoType - -## Example Usage - -```typescript -import { TopicPayloadDtoType } from "@novu/api/models/components"; - -let value: TopicPayloadDtoType = "Topic"; -``` - -## Values - -```typescript -"Subscriber" | "Topic" -``` \ No newline at end of file diff --git a/docs/models/components/topicsubscriberdto.md b/docs/models/components/topicsubscriberdto.md deleted file mode 100644 index 99c8f9b0..00000000 --- a/docs/models/components/topicsubscriberdto.md +++ /dev/null @@ -1,27 +0,0 @@ -# TopicSubscriberDto - -## Example Usage - -```typescript -import { TopicSubscriberDto } from "@novu/api/models/components"; - -let value: TopicSubscriberDto = { - organizationId: "", - environmentId: "", - subscriberId: "", - topicId: "", - topicKey: "", - externalSubscriberId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------- | ---------------------- | ---------------------- | ---------------------- | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `topicId` | *string* | :heavy_check_mark: | N/A | -| `topicKey` | *string* | :heavy_check_mark: | N/A | -| `externalSubscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/translations.md b/docs/models/components/translations.md deleted file mode 100644 index 21622673..00000000 --- a/docs/models/components/translations.md +++ /dev/null @@ -1,14 +0,0 @@ -# Translations - -## Example Usage - -```typescript -import { Translations } from "@novu/api/models/components"; - -let value: Translations = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/triggereventrequestdto.md b/docs/models/components/triggereventrequestdto.md deleted file mode 100644 index f852e4c2..00000000 --- a/docs/models/components/triggereventrequestdto.md +++ /dev/null @@ -1,32 +0,0 @@ -# TriggerEventRequestDto - -## Example Usage - -```typescript -import { TriggerEventRequestDto } from "@novu/api/models/components"; - -let value: TriggerEventRequestDto = { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - subscriberId: "", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *string* | :heavy_check_mark: | The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. | workflow_identifier | -| `payload` | [components.Payload](../../models/components/payload.md) | :heavy_minus_sign: | The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it.
This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. | {
"comment_id": "string",
"post": {
"text": "string"
}
} | -| `overrides` | [components.Overrides](../../models/components/overrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | -| `to` | *components.To*[] | :heavy_check_mark: | The recipients list of people who will receive the notification. | | -| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | -| `actor` | *components.Actor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | -| `tenant` | *components.Tenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
Existing tenants will be updated with the provided details.
| | -| `bridgeUrl` | *string* | :heavy_minus_sign: | N/A | | -| `controls` | [components.Controls](../../models/components/controls.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/components/triggereventrequestdtooverrides.md b/docs/models/components/triggereventrequestdtooverrides.md deleted file mode 100644 index 73f84a08..00000000 --- a/docs/models/components/triggereventrequestdtooverrides.md +++ /dev/null @@ -1,16 +0,0 @@ -# TriggerEventRequestDtoOverrides - -This could be used to override provider specific configurations - -## Example Usage - -```typescript -import { TriggerEventRequestDtoOverrides } from "@novu/api/models/components"; - -let value: TriggerEventRequestDtoOverrides = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/triggereventrequestdtopayload.md b/docs/models/components/triggereventrequestdtopayload.md deleted file mode 100644 index 8a1b98ca..00000000 --- a/docs/models/components/triggereventrequestdtopayload.md +++ /dev/null @@ -1,17 +0,0 @@ -# TriggerEventRequestDtoPayload - -The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - -## Example Usage - -```typescript -import { TriggerEventRequestDtoPayload } from "@novu/api/models/components"; - -let value: TriggerEventRequestDtoPayload = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/triggereventresponsedto.md b/docs/models/components/triggereventresponsedto.md deleted file mode 100644 index 89c9af1b..00000000 --- a/docs/models/components/triggereventresponsedto.md +++ /dev/null @@ -1,21 +0,0 @@ -# TriggerEventResponseDto - -## Example Usage - -```typescript -import { TriggerEventResponseDto } from "@novu/api/models/components"; - -let value: TriggerEventResponseDto = { - acknowledged: false, - status: "error", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `acknowledged` | *boolean* | :heavy_check_mark: | If trigger was acknowledged or not | -| `status` | [components.TriggerEventResponseDtoStatus](../../models/components/triggereventresponsedtostatus.md) | :heavy_check_mark: | Status for trigger | -| `error` | *string*[] | :heavy_minus_sign: | In case of an error, this field will contain the error message | -| `transactionId` | *string* | :heavy_minus_sign: | Transaction id for trigger | \ No newline at end of file diff --git a/docs/models/components/triggereventresponsedtostatus.md b/docs/models/components/triggereventresponsedtostatus.md deleted file mode 100644 index 548b3edd..00000000 --- a/docs/models/components/triggereventresponsedtostatus.md +++ /dev/null @@ -1,17 +0,0 @@ -# TriggerEventResponseDtoStatus - -Status for trigger - -## Example Usage - -```typescript -import { TriggerEventResponseDtoStatus } from "@novu/api/models/components"; - -let value: TriggerEventResponseDtoStatus = "processed"; -``` - -## Values - -```typescript -"error" | "trigger_not_active" | "no_workflow_active_steps_defined" | "no_workflow_steps_defined" | "processed" | "subscriber_id_missing" | "no_tenant_found" -``` \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdto.md b/docs/models/components/triggereventtoallrequestdto.md deleted file mode 100644 index 393033e9..00000000 --- a/docs/models/components/triggereventtoallrequestdto.md +++ /dev/null @@ -1,24 +0,0 @@ -# TriggerEventToAllRequestDto - -## Example Usage - -```typescript -import { TriggerEventToAllRequestDto } from "@novu/api/models/components"; - -let value: TriggerEventToAllRequestDto = { - name: "", - payload: {}, - overrides: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *string* | :heavy_check_mark: | The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. | | -| `payload` | [components.TriggerEventToAllRequestDtoPayload](../../models/components/triggereventtoallrequestdtopayload.md) | :heavy_check_mark: | The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it.
This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. | {
"comment_id": "string",
"post": {
"text": "string"
}
} | -| `overrides` | [components.TriggerEventToAllRequestDtoOverrides](../../models/components/triggereventtoallrequestdtooverrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | -| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | -| `actor` | *components.TriggerEventToAllRequestDtoActor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | -| `tenant` | *components.TriggerEventToAllRequestDtoTenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
If a new tenant object is provided, we will create a new tenant.
| | \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdtoactor.md b/docs/models/components/triggereventtoallrequestdtoactor.md deleted file mode 100644 index 8eb237df..00000000 --- a/docs/models/components/triggereventtoallrequestdtoactor.md +++ /dev/null @@ -1,23 +0,0 @@ -# TriggerEventToAllRequestDtoActor - -It is used to display the Avatar of the provided actor's subscriber id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - - -## Supported Types - -### `string` - -```typescript -const value: string = ""; -``` - -### `components.SubscriberPayloadDto` - -```typescript -const value: components.SubscriberPayloadDto = { - subscriberId: "", -}; -``` - diff --git a/docs/models/components/triggereventtoallrequestdtooverrides.md b/docs/models/components/triggereventtoallrequestdtooverrides.md deleted file mode 100644 index 89918b67..00000000 --- a/docs/models/components/triggereventtoallrequestdtooverrides.md +++ /dev/null @@ -1,16 +0,0 @@ -# TriggerEventToAllRequestDtoOverrides - -This could be used to override provider specific configurations - -## Example Usage - -```typescript -import { TriggerEventToAllRequestDtoOverrides } from "@novu/api/models/components"; - -let value: TriggerEventToAllRequestDtoOverrides = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdtopayload.md b/docs/models/components/triggereventtoallrequestdtopayload.md deleted file mode 100644 index 70baab8a..00000000 --- a/docs/models/components/triggereventtoallrequestdtopayload.md +++ /dev/null @@ -1,17 +0,0 @@ -# TriggerEventToAllRequestDtoPayload - -The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - -## Example Usage - -```typescript -import { TriggerEventToAllRequestDtoPayload } from "@novu/api/models/components"; - -let value: TriggerEventToAllRequestDtoPayload = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdtotenant.md b/docs/models/components/triggereventtoallrequestdtotenant.md deleted file mode 100644 index c7d3d28b..00000000 --- a/docs/models/components/triggereventtoallrequestdtotenant.md +++ /dev/null @@ -1,21 +0,0 @@ -# TriggerEventToAllRequestDtoTenant - -It is used to specify a tenant context during trigger event. - If a new tenant object is provided, we will create a new tenant. - - - -## Supported Types - -### `string` - -```typescript -const value: string = ""; -``` - -### `components.TenantPayloadDto` - -```typescript -const value: components.TenantPayloadDto = {}; -``` - diff --git a/docs/models/components/type.md b/docs/models/components/type.md deleted file mode 100644 index ffc431f7..00000000 --- a/docs/models/components/type.md +++ /dev/null @@ -1,15 +0,0 @@ -# Type - -## Example Usage - -```typescript -import { Type } from "@novu/api/models/components"; - -let value: Type = "Topic"; -``` - -## Values - -```typescript -"Subscriber" | "Topic" -``` \ No newline at end of file diff --git a/docs/models/components/unit.md b/docs/models/components/unit.md deleted file mode 100644 index 2d1fae4a..00000000 --- a/docs/models/components/unit.md +++ /dev/null @@ -1,15 +0,0 @@ -# Unit - -## Example Usage - -```typescript -import { Unit } from "@novu/api/models/components"; - -let value: Unit = "days"; -``` - -## Values - -```typescript -"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" -``` \ No newline at end of file diff --git a/docs/models/components/unseencountresponse.md b/docs/models/components/unseencountresponse.md deleted file mode 100644 index 0c18cc03..00000000 --- a/docs/models/components/unseencountresponse.md +++ /dev/null @@ -1,17 +0,0 @@ -# UnseenCountResponse - -## Example Usage - -```typescript -import { UnseenCountResponse } from "@novu/api/models/components"; - -let value: UnseenCountResponse = { - count: 8137.98, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `count` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatebrandingdetailsdto.md b/docs/models/components/updatebrandingdetailsdto.md deleted file mode 100644 index cfdd42a4..00000000 --- a/docs/models/components/updatebrandingdetailsdto.md +++ /dev/null @@ -1,24 +0,0 @@ -# UpdateBrandingDetailsDto - -## Example Usage - -```typescript -import { UpdateBrandingDetailsDto } from "@novu/api/models/components"; - -let value: UpdateBrandingDetailsDto = { - color: "plum", - contentBackground: "", - fontColor: "", - logo: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------- | ------------------- | ------------------- | ------------------- | -| `color` | *string* | :heavy_check_mark: | N/A | -| `contentBackground` | *string* | :heavy_check_mark: | N/A | -| `fontColor` | *string* | :heavy_check_mark: | N/A | -| `fontFamily` | *string* | :heavy_minus_sign: | N/A | -| `logo` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/updateintegrationrequestdto.md b/docs/models/components/updateintegrationrequestdto.md deleted file mode 100644 index a5db2b51..00000000 --- a/docs/models/components/updateintegrationrequestdto.md +++ /dev/null @@ -1,22 +0,0 @@ -# UpdateIntegrationRequestDto - -## Example Usage - -```typescript -import { UpdateIntegrationRequestDto } from "@novu/api/models/components"; - -let value: UpdateIntegrationRequestDto = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_minus_sign: | N/A | -| `environmentId` | *string* | :heavy_minus_sign: | N/A | -| `active` | *boolean* | :heavy_minus_sign: | If the integration is active the validation on the credentials field will run | -| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_minus_sign: | N/A | -| `removeNovuBranding` | *boolean* | :heavy_minus_sign: | If true, the Novu branding will be removed from the Inbox component | -| `check` | *boolean* | :heavy_minus_sign: | N/A | -| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatelayoutrequestdto.md b/docs/models/components/updatelayoutrequestdto.md deleted file mode 100644 index 192e97af..00000000 --- a/docs/models/components/updatelayoutrequestdto.md +++ /dev/null @@ -1,22 +0,0 @@ -# UpdateLayoutRequestDto - -## Example Usage - -```typescript -import { UpdateLayoutRequestDto } from "@novu/api/models/components"; - -let value: UpdateLayoutRequestDto = { - identifier: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `content` | *string* | :heavy_minus_sign: | User defined content for the layout. | -| `description` | *string* | :heavy_minus_sign: | User defined description of the layout | -| `identifier` | *string* | :heavy_check_mark: | User defined custom key that will be a unique identifier for the Layout updated. | -| `isDefault` | *boolean* | :heavy_minus_sign: | Variable that defines if the layout is chosen as default when creating a layout. | -| `name` | *string* | :heavy_minus_sign: | User defined custom name and provided by the user that will name the Layout updated. | -| `variables` | [components.Variables](../../models/components/variables.md) | :heavy_minus_sign: | User defined variables to render in the layout placeholders. | \ No newline at end of file diff --git a/docs/models/components/updatelayoutresponsedto.md b/docs/models/components/updatelayoutresponsedto.md deleted file mode 100644 index 3ae0539e..00000000 --- a/docs/models/components/updatelayoutresponsedto.md +++ /dev/null @@ -1,41 +0,0 @@ -# UpdateLayoutResponseDto - -## Example Usage - -```typescript -import { UpdateLayoutResponseDto } from "@novu/api/models/components"; - -let value: UpdateLayoutResponseDto = { - creatorId: "", - environmentId: "", - organizationId: "", - channel: "push", - content: "", - contentType: "", - identifier: "", - isDefault: false, - isDeleted: false, - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `creatorId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | -| `channel` | [components.UpdateLayoutResponseDtoChannel](../../models/components/updatelayoutresponsedtochannel.md) | :heavy_check_mark: | N/A | -| `content` | *string* | :heavy_check_mark: | N/A | -| `contentType` | *string* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `isDefault` | *boolean* | :heavy_check_mark: | N/A | -| `isDeleted` | *boolean* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `updatedAt` | *string* | :heavy_minus_sign: | N/A | -| `variables` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatelayoutresponsedtochannel.md b/docs/models/components/updatelayoutresponsedtochannel.md deleted file mode 100644 index e4c37839..00000000 --- a/docs/models/components/updatelayoutresponsedtochannel.md +++ /dev/null @@ -1,15 +0,0 @@ -# UpdateLayoutResponseDtoChannel - -## Example Usage - -```typescript -import { UpdateLayoutResponseDtoChannel } from "@novu/api/models/components"; - -let value: UpdateLayoutResponseDtoChannel = "push"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/components/updatesubscriberchannelrequestdto.md b/docs/models/components/updatesubscriberchannelrequestdto.md deleted file mode 100644 index 45d6f666..00000000 --- a/docs/models/components/updatesubscriberchannelrequestdto.md +++ /dev/null @@ -1,22 +0,0 @@ -# UpdateSubscriberChannelRequestDto - -## Example Usage - -```typescript -import { UpdateSubscriberChannelRequestDto } from "@novu/api/models/components"; - -let value: UpdateSubscriberChannelRequestDto = { - providerId: "whatsapp-business", - credentials: { - webhookUrl: "https://old-fashioned-deck.org", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `providerId` | [components.UpdateSubscriberChannelRequestDtoProviderId](../../models/components/updatesubscriberchannelrequestdtoproviderid.md) | :heavy_check_mark: | The provider identifier for the credentials | -| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | -| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md b/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md deleted file mode 100644 index 78e8a2e8..00000000 --- a/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md +++ /dev/null @@ -1,17 +0,0 @@ -# UpdateSubscriberChannelRequestDtoProviderId - -The provider identifier for the credentials - -## Example Usage - -```typescript -import { UpdateSubscriberChannelRequestDtoProviderId } from "@novu/api/models/components"; - -let value: UpdateSubscriberChannelRequestDtoProviderId = "ryver"; -``` - -## Values - -```typescript -"slack" | "discord" | "msteams" | "mattermost" | "ryver" | "zulip" | "grafana-on-call" | "getstream" | "rocket-chat" | "whatsapp-business" | "fcm" | "apns" | "expo" | "one-signal" | "pushpad" | "push-webhook" | "pusher-beams" -``` \ No newline at end of file diff --git a/docs/models/components/updatesubscriberglobalpreferencesrequestdto.md b/docs/models/components/updatesubscriberglobalpreferencesrequestdto.md deleted file mode 100644 index 3f65c6d8..00000000 --- a/docs/models/components/updatesubscriberglobalpreferencesrequestdto.md +++ /dev/null @@ -1,16 +0,0 @@ -# UpdateSubscriberGlobalPreferencesRequestDto - -## Example Usage - -```typescript -import { UpdateSubscriberGlobalPreferencesRequestDto } from "@novu/api/models/components"; - -let value: UpdateSubscriberGlobalPreferencesRequestDto = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `enabled` | *boolean* | :heavy_minus_sign: | Enable or disable the subscriber global preferences. | -| `preferences` | [components.ChannelPreference](../../models/components/channelpreference.md)[] | :heavy_minus_sign: | The subscriber global preferences for every ChannelTypeEnum. | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberonlineflagrequestdto.md b/docs/models/components/updatesubscriberonlineflagrequestdto.md deleted file mode 100644 index 83061978..00000000 --- a/docs/models/components/updatesubscriberonlineflagrequestdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# UpdateSubscriberOnlineFlagRequestDto - -## Example Usage - -```typescript -import { UpdateSubscriberOnlineFlagRequestDto } from "@novu/api/models/components"; - -let value: UpdateSubscriberOnlineFlagRequestDto = { - isOnline: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `isOnline` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberpreferencerequestdto.md b/docs/models/components/updatesubscriberpreferencerequestdto.md deleted file mode 100644 index ab38c659..00000000 --- a/docs/models/components/updatesubscriberpreferencerequestdto.md +++ /dev/null @@ -1,16 +0,0 @@ -# UpdateSubscriberPreferenceRequestDto - -## Example Usage - -```typescript -import { UpdateSubscriberPreferenceRequestDto } from "@novu/api/models/components"; - -let value: UpdateSubscriberPreferenceRequestDto = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `channel` | [components.ChannelPreference](../../models/components/channelpreference.md) | :heavy_minus_sign: | The subscriber preferences for every ChannelTypeEnum for the workflow assigned. | -| `enabled` | *boolean* | :heavy_minus_sign: | Sets if the workflow is fully enabled for all channels or not for the subscriber. | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberpreferenceresponsedto.md b/docs/models/components/updatesubscriberpreferenceresponsedto.md deleted file mode 100644 index 1d52bc61..00000000 --- a/docs/models/components/updatesubscriberpreferenceresponsedto.md +++ /dev/null @@ -1,29 +0,0 @@ -# UpdateSubscriberPreferenceResponseDto - -## Example Usage - -```typescript -import { UpdateSubscriberPreferenceResponseDto } from "@novu/api/models/components"; - -let value: UpdateSubscriberPreferenceResponseDto = { - template: { - id: "", - name: "", - critical: false, - triggers: [ - "", - ], - }, - preference: { - enabled: false, - channels: {}, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_check_mark: | The workflow information and if it is critical or not | -| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberrequestdto.md b/docs/models/components/updatesubscriberrequestdto.md deleted file mode 100644 index abfd3ec6..00000000 --- a/docs/models/components/updatesubscriberrequestdto.md +++ /dev/null @@ -1,22 +0,0 @@ -# UpdateSubscriberRequestDto - -## Example Usage - -```typescript -import { UpdateSubscriberRequestDto } from "@novu/api/models/components"; - -let value: UpdateSubscriberRequestDto = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `email` | *string* | :heavy_minus_sign: | N/A | -| `firstName` | *string* | :heavy_minus_sign: | N/A | -| `lastName` | *string* | :heavy_minus_sign: | N/A | -| `phone` | *string* | :heavy_minus_sign: | N/A | -| `avatar` | *string* | :heavy_minus_sign: | N/A | -| `locale` | *string* | :heavy_minus_sign: | N/A | -| `data` | [components.UpdateSubscriberRequestDtoData](../../models/components/updatesubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | -| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberrequestdtodata.md b/docs/models/components/updatesubscriberrequestdtodata.md deleted file mode 100644 index 71cb8daa..00000000 --- a/docs/models/components/updatesubscriberrequestdtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# UpdateSubscriberRequestDtoData - -## Example Usage - -```typescript -import { UpdateSubscriberRequestDtoData } from "@novu/api/models/components"; - -let value: UpdateSubscriberRequestDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/updatetenantrequestdto.md b/docs/models/components/updatetenantrequestdto.md deleted file mode 100644 index ac3be0e2..00000000 --- a/docs/models/components/updatetenantrequestdto.md +++ /dev/null @@ -1,17 +0,0 @@ -# UpdateTenantRequestDto - -## Example Usage - -```typescript -import { UpdateTenantRequestDto } from "@novu/api/models/components"; - -let value: UpdateTenantRequestDto = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `data` | [components.UpdateTenantRequestDtoData](../../models/components/updatetenantrequestdtodata.md) | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatetenantrequestdtodata.md b/docs/models/components/updatetenantrequestdtodata.md deleted file mode 100644 index c9468b09..00000000 --- a/docs/models/components/updatetenantrequestdtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# UpdateTenantRequestDtoData - -## Example Usage - -```typescript -import { UpdateTenantRequestDtoData } from "@novu/api/models/components"; - -let value: UpdateTenantRequestDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/updatetenantresponsedto.md b/docs/models/components/updatetenantresponsedto.md deleted file mode 100644 index 5ff64e3c..00000000 --- a/docs/models/components/updatetenantresponsedto.md +++ /dev/null @@ -1,27 +0,0 @@ -# UpdateTenantResponseDto - -## Example Usage - -```typescript -import { UpdateTenantResponseDto } from "@novu/api/models/components"; - -let value: UpdateTenantResponseDto = { - environmentId: "", - id: "", - createdAt: "", - identifier: "", - updatedAt: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `id` | *string* | :heavy_check_mark: | N/A | -| `createdAt` | *string* | :heavy_check_mark: | N/A | -| `data` | [components.UpdateTenantResponseDtoData](../../models/components/updatetenantresponsedtodata.md) | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `name` | *string* | :heavy_minus_sign: | N/A | -| `updatedAt` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatetenantresponsedtodata.md b/docs/models/components/updatetenantresponsedtodata.md deleted file mode 100644 index bd961272..00000000 --- a/docs/models/components/updatetenantresponsedtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# UpdateTenantResponseDtoData - -## Example Usage - -```typescript -import { UpdateTenantResponseDtoData } from "@novu/api/models/components"; - -let value: UpdateTenantResponseDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/updateworkflowrequestdto.md b/docs/models/components/updateworkflowrequestdto.md deleted file mode 100644 index ddfbb2d4..00000000 --- a/docs/models/components/updateworkflowrequestdto.md +++ /dev/null @@ -1,26 +0,0 @@ -# UpdateWorkflowRequestDto - -## Example Usage - -```typescript -import { UpdateWorkflowRequestDto } from "@novu/api/models/components"; - -let value: UpdateWorkflowRequestDto = { - name: "", - notificationGroupId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `critical` | *boolean* | :heavy_minus_sign: | N/A | -| `data` | [components.UpdateWorkflowRequestDtoData](../../models/components/updateworkflowrequestdtodata.md) | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_minus_sign: | N/A | -| `identifier` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `notificationGroupId` | *string* | :heavy_check_mark: | N/A | -| `preferenceSettings` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_minus_sign: | N/A | -| `steps` | *string*[] | :heavy_minus_sign: | N/A | -| `tags` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updateworkflowrequestdtodata.md b/docs/models/components/updateworkflowrequestdtodata.md deleted file mode 100644 index 0ea57b03..00000000 --- a/docs/models/components/updateworkflowrequestdtodata.md +++ /dev/null @@ -1,14 +0,0 @@ -# UpdateWorkflowRequestDtoData - -## Example Usage - -```typescript -import { UpdateWorkflowRequestDtoData } from "@novu/api/models/components"; - -let value: UpdateWorkflowRequestDtoData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/value.md b/docs/models/components/value.md deleted file mode 100644 index b9f79c7e..00000000 --- a/docs/models/components/value.md +++ /dev/null @@ -1,15 +0,0 @@ -# Value - -## Example Usage - -```typescript -import { Value } from "@novu/api/models/components"; - -let value: Value = "OR"; -``` - -## Values - -```typescript -"AND" | "OR" -``` \ No newline at end of file diff --git a/docs/models/components/variables.md b/docs/models/components/variables.md deleted file mode 100644 index 2f3af845..00000000 --- a/docs/models/components/variables.md +++ /dev/null @@ -1,16 +0,0 @@ -# Variables - -User defined variables to render in the layout placeholders. - -## Example Usage - -```typescript -import { Variables } from "@novu/api/models/components"; - -let value: Variables = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/variablesresponsedto.md b/docs/models/components/variablesresponsedto.md deleted file mode 100644 index d76878fb..00000000 --- a/docs/models/components/variablesresponsedto.md +++ /dev/null @@ -1,19 +0,0 @@ -# VariablesResponseDto - -## Example Usage - -```typescript -import { VariablesResponseDto } from "@novu/api/models/components"; - -let value: VariablesResponseDto = { - system: {}, - translations: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `system` | [components.System](../../models/components/system.md) | :heavy_check_mark: | N/A | -| `translations` | [components.Translations](../../models/components/translations.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/weekdays.md b/docs/models/components/weekdays.md deleted file mode 100644 index 4a73d079..00000000 --- a/docs/models/components/weekdays.md +++ /dev/null @@ -1,15 +0,0 @@ -# WeekDays - -## Example Usage - -```typescript -import { WeekDays } from "@novu/api/models/components"; - -let value: WeekDays = "tuesday"; -``` - -## Values - -```typescript -"monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" -``` \ No newline at end of file diff --git a/docs/models/components/workflowintegrationstatus.md b/docs/models/components/workflowintegrationstatus.md deleted file mode 100644 index e7915938..00000000 --- a/docs/models/components/workflowintegrationstatus.md +++ /dev/null @@ -1,14 +0,0 @@ -# WorkflowIntegrationStatus - -## Example Usage - -```typescript -import { WorkflowIntegrationStatus } from "@novu/api/models/components"; - -let value: WorkflowIntegrationStatus = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/workflowresponse.md b/docs/models/components/workflowresponse.md deleted file mode 100644 index a0bbc1bd..00000000 --- a/docs/models/components/workflowresponse.md +++ /dev/null @@ -1,66 +0,0 @@ -# WorkflowResponse - -## Example Usage - -```typescript -import { WorkflowResponse } from "@novu/api/models/components"; - -let value: WorkflowResponse = { - name: "", - description: "hidden remand whether seriously huzzah immediately geez", - active: false, - draft: false, - preferenceSettings: {}, - critical: false, - tags: [ - "", - ], - steps: [ - {}, - ], - organizationId: "", - creatorId: "", - environmentId: "", - triggers: [ - { - type: "event", - identifier: "", - variables: [ - { - name: "", - }, - ], - }, - ], - notificationGroupId: "", - deleted: false, - deletedAt: "", - deletedBy: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `description` | *string* | :heavy_check_mark: | N/A | -| `active` | *boolean* | :heavy_check_mark: | N/A | -| `draft` | *boolean* | :heavy_check_mark: | N/A | -| `preferenceSettings` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | N/A | -| `critical` | *boolean* | :heavy_check_mark: | N/A | -| `tags` | *string*[] | :heavy_check_mark: | N/A | -| `steps` | [components.NotificationStep](../../models/components/notificationstep.md)[] | :heavy_check_mark: | N/A | -| `organizationId` | *string* | :heavy_check_mark: | N/A | -| `creatorId` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `triggers` | [components.NotificationTrigger](../../models/components/notificationtrigger.md)[] | :heavy_check_mark: | N/A | -| `notificationGroupId` | *string* | :heavy_check_mark: | N/A | -| `parentId` | *string* | :heavy_minus_sign: | N/A | -| `deleted` | *boolean* | :heavy_check_mark: | N/A | -| `deletedAt` | *string* | :heavy_check_mark: | N/A | -| `deletedBy` | *string* | :heavy_check_mark: | N/A | -| `notificationGroup` | [components.NotificationGroup](../../models/components/notificationgroup.md) | :heavy_minus_sign: | N/A | -| `data` | [components.WorkflowResponseData](../../models/components/workflowresponsedata.md) | :heavy_minus_sign: | N/A | -| `workflowIntegrationStatus` | [components.WorkflowIntegrationStatus](../../models/components/workflowintegrationstatus.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/workflowresponsedata.md b/docs/models/components/workflowresponsedata.md deleted file mode 100644 index 23301dd5..00000000 --- a/docs/models/components/workflowresponsedata.md +++ /dev/null @@ -1,14 +0,0 @@ -# WorkflowResponseData - -## Example Usage - -```typescript -import { WorkflowResponseData } from "@novu/api/models/components"; - -let value: WorkflowResponseData = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/workflowsresponsedto.md b/docs/models/components/workflowsresponsedto.md deleted file mode 100644 index e3be277c..00000000 --- a/docs/models/components/workflowsresponsedto.md +++ /dev/null @@ -1,25 +0,0 @@ -# WorkflowsResponseDto - -## Example Usage - -```typescript -import { WorkflowsResponseDto } from "@novu/api/models/components"; - -let value: WorkflowsResponseDto = { - data: [ - "", - ], - page: 384.25, - pageSize: 4386.01, - totalCount: 6342.74, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `data` | *string*[] | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_check_mark: | N/A | -| `pageSize` | *number* | :heavy_check_mark: | N/A | -| `totalCount` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/changescontrollerapplydiffrequest.md b/docs/models/operations/changescontrollerapplydiffrequest.md deleted file mode 100644 index 96156aad..00000000 --- a/docs/models/operations/changescontrollerapplydiffrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# ChangesControllerApplyDiffRequest - -## Example Usage - -```typescript -import { ChangesControllerApplyDiffRequest } from "@novu/api/models/operations"; - -let value: ChangesControllerApplyDiffRequest = { - changeId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `changeId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/changescontrollergetchangesrequest.md b/docs/models/operations/changescontrollergetchangesrequest.md deleted file mode 100644 index 6c032e39..00000000 --- a/docs/models/operations/changescontrollergetchangesrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# ChangesControllerGetChangesRequest - -## Example Usage - -```typescript -import { ChangesControllerGetChangesRequest } from "@novu/api/models/operations"; - -let value: ChangesControllerGetChangesRequest = { - promoted: "false", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | -| `promoted` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/channel.md b/docs/models/operations/channel.md deleted file mode 100644 index e7ab724b..00000000 --- a/docs/models/operations/channel.md +++ /dev/null @@ -1,15 +0,0 @@ -# Channel - -## Example Usage - -```typescript -import { Channel } from "@novu/api/models/operations"; - -let value: Channel = "in_app"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/operations/channels.md b/docs/models/operations/channels.md deleted file mode 100644 index a38b610c..00000000 --- a/docs/models/operations/channels.md +++ /dev/null @@ -1,15 +0,0 @@ -# Channels - -## Example Usage - -```typescript -import { Channels } from "@novu/api/models/operations"; - -let value: Channels = "sms"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md b/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md deleted file mode 100644 index 57876028..00000000 --- a/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md +++ /dev/null @@ -1,28 +0,0 @@ -# EnvironmentsControllerV1GetCurrentEnvironmentResponse - -## Example Usage - -```typescript -import { EnvironmentsControllerV1GetCurrentEnvironmentResponse } from "@novu/api/models/operations"; - -let value: EnvironmentsControllerV1GetCurrentEnvironmentResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - name: "", - organizationId: "", - identifier: "", - parentId: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.EnvironmentResponseDto](../../models/components/environmentresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md b/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md deleted file mode 100644 index b91cef1e..00000000 --- a/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# EnvironmentsControllerV1ListMyEnvironmentsResponse - -## Example Usage - -```typescript -import { EnvironmentsControllerV1ListMyEnvironmentsResponse } from "@novu/api/models/operations"; - -let value: EnvironmentsControllerV1ListMyEnvironmentsResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - name: "", - organizationId: "", - identifier: "", - parentId: "", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.EnvironmentResponseDto](../../models/components/environmentresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md b/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md deleted file mode 100644 index fb55d9a1..00000000 --- a/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md +++ /dev/null @@ -1,28 +0,0 @@ -# EnvironmentsControllerV1ListOrganizationApiKeysResponse - -## Example Usage - -```typescript -import { EnvironmentsControllerV1ListOrganizationApiKeysResponse } from "@novu/api/models/operations"; - -let value: EnvironmentsControllerV1ListOrganizationApiKeysResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - key: "", - userId: "", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.ApiKey](../../models/components/apikey.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md b/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md deleted file mode 100644 index 27d634f0..00000000 --- a/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md +++ /dev/null @@ -1,26 +0,0 @@ -# EventsControllerBroadcastEventToAllResponse - -## Example Usage - -```typescript -import { EventsControllerBroadcastEventToAllResponse } from "@novu/api/models/operations"; - -let value: EventsControllerBroadcastEventToAllResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - acknowledged: false, - status: "processed", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollercancelrequest.md b/docs/models/operations/eventscontrollercancelrequest.md deleted file mode 100644 index 72bf067b..00000000 --- a/docs/models/operations/eventscontrollercancelrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# EventsControllerCancelRequest - -## Example Usage - -```typescript -import { EventsControllerCancelRequest } from "@novu/api/models/operations"; - -let value: EventsControllerCancelRequest = { - transactionId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollercancelresponse.md b/docs/models/operations/eventscontrollercancelresponse.md deleted file mode 100644 index 54202b4f..00000000 --- a/docs/models/operations/eventscontrollercancelresponse.md +++ /dev/null @@ -1,25 +0,0 @@ -# EventsControllerCancelResponse - -## Example Usage - -```typescript -import { EventsControllerCancelResponse } from "@novu/api/models/operations"; - -let value: EventsControllerCancelResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - data: false, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.DataBooleanDto](../../models/components/databooleandto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollertriggerbulkresponse.md b/docs/models/operations/eventscontrollertriggerbulkresponse.md deleted file mode 100644 index 774620e9..00000000 --- a/docs/models/operations/eventscontrollertriggerbulkresponse.md +++ /dev/null @@ -1,28 +0,0 @@ -# EventsControllerTriggerBulkResponse - -## Example Usage - -```typescript -import { EventsControllerTriggerBulkResponse } from "@novu/api/models/operations"; - -let value: EventsControllerTriggerBulkResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - acknowledged: false, - status: "subscriber_id_missing", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollertriggerresponse.md b/docs/models/operations/eventscontrollertriggerresponse.md deleted file mode 100644 index 0fd91b3a..00000000 --- a/docs/models/operations/eventscontrollertriggerresponse.md +++ /dev/null @@ -1,26 +0,0 @@ -# EventsControllerTriggerResponse - -## Example Usage - -```typescript -import { EventsControllerTriggerResponse } from "@novu/api/models/operations"; - -let value: EventsControllerTriggerResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - acknowledged: false, - status: "no_workflow_steps_defined", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md deleted file mode 100644 index edd1a2ca..00000000 --- a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md +++ /dev/null @@ -1,20 +0,0 @@ -# ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest - -## Example Usage - -```typescript -import { ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest } from "@novu/api/models/operations"; - -let value: ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = - { - notificationId: "", - subscriberId: "", - }; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `notificationId` | *string* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md deleted file mode 100644 index 161f7486..00000000 --- a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md +++ /dev/null @@ -1,40 +0,0 @@ -# ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse - -## Example Usage - -```typescript -import { ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse } from "@novu/api/models/operations"; - -let value: - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - organizationId: "", - jobId: "", - environmentId: "", - notificationId: "", - notificationTemplateId: "", - subscriberId: "", - transactionId: "", - channel: "push", - detail: "", - source: "Internal", - status: "Pending", - isTest: false, - isRetry: false, - }, - ], - }; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.ExecutionDetailsResponseDto](../../models/components/executiondetailsresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/feedscontrollerdeletefeedbyidrequest.md b/docs/models/operations/feedscontrollerdeletefeedbyidrequest.md deleted file mode 100644 index 179af31c..00000000 --- a/docs/models/operations/feedscontrollerdeletefeedbyidrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# FeedsControllerDeleteFeedByIdRequest - -## Example Usage - -```typescript -import { FeedsControllerDeleteFeedByIdRequest } from "@novu/api/models/operations"; - -let value: FeedsControllerDeleteFeedByIdRequest = { - feedId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `feedId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollercreateintegrationresponse.md b/docs/models/operations/integrationscontrollercreateintegrationresponse.md deleted file mode 100644 index 5a964ab9..00000000 --- a/docs/models/operations/integrationscontrollercreateintegrationresponse.md +++ /dev/null @@ -1,36 +0,0 @@ -# IntegrationsControllerCreateIntegrationResponse - -## Example Usage - -```typescript -import { IntegrationsControllerCreateIntegrationResponse } from "@novu/api/models/operations"; - -let value: IntegrationsControllerCreateIntegrationResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - environmentId: "", - organizationId: "", - name: "", - identifier: "", - providerId: "", - channel: "in_app", - credentials: {}, - active: false, - deleted: false, - deletedAt: "", - deletedBy: "", - primary: false, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md b/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md deleted file mode 100644 index 4b4c3e30..00000000 --- a/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md +++ /dev/null @@ -1,38 +0,0 @@ -# IntegrationsControllerGetActiveIntegrationsResponse - -## Example Usage - -```typescript -import { IntegrationsControllerGetActiveIntegrationsResponse } from "@novu/api/models/operations"; - -let value: IntegrationsControllerGetActiveIntegrationsResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - environmentId: "", - organizationId: "", - name: "", - identifier: "", - providerId: "", - channel: "in_app", - credentials: {}, - active: false, - deleted: false, - deletedAt: "", - deletedBy: "", - primary: false, - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md b/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md deleted file mode 100644 index a3439ab3..00000000 --- a/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# IntegrationsControllerGetWebhookSupportStatusRequest - -## Example Usage - -```typescript -import { IntegrationsControllerGetWebhookSupportStatusRequest } from "@novu/api/models/operations"; - -let value: IntegrationsControllerGetWebhookSupportStatusRequest = { - providerOrIntegrationId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------- | ------------------------- | ------------------------- | ------------------------- | -| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md b/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md deleted file mode 100644 index e68cdb44..00000000 --- a/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md +++ /dev/null @@ -1,23 +0,0 @@ -# IntegrationsControllerGetWebhookSupportStatusResponse - -## Example Usage - -```typescript -import { IntegrationsControllerGetWebhookSupportStatusResponse } from "@novu/api/models/operations"; - -let value: IntegrationsControllerGetWebhookSupportStatusResponse = { - headers: { - "key": [ - "", - ], - }, - result: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerlistintegrationsresponse.md b/docs/models/operations/integrationscontrollerlistintegrationsresponse.md deleted file mode 100644 index 40dd8daa..00000000 --- a/docs/models/operations/integrationscontrollerlistintegrationsresponse.md +++ /dev/null @@ -1,38 +0,0 @@ -# IntegrationsControllerListIntegrationsResponse - -## Example Usage - -```typescript -import { IntegrationsControllerListIntegrationsResponse } from "@novu/api/models/operations"; - -let value: IntegrationsControllerListIntegrationsResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - environmentId: "", - organizationId: "", - name: "", - identifier: "", - providerId: "", - channel: "in_app", - credentials: {}, - active: false, - deleted: false, - deletedAt: "", - deletedBy: "", - primary: false, - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerremoveintegrationrequest.md b/docs/models/operations/integrationscontrollerremoveintegrationrequest.md deleted file mode 100644 index 0c1c7606..00000000 --- a/docs/models/operations/integrationscontrollerremoveintegrationrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# IntegrationsControllerRemoveIntegrationRequest - -## Example Usage - -```typescript -import { IntegrationsControllerRemoveIntegrationRequest } from "@novu/api/models/operations"; - -let value: IntegrationsControllerRemoveIntegrationRequest = { - integrationId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `integrationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerremoveintegrationresponse.md b/docs/models/operations/integrationscontrollerremoveintegrationresponse.md deleted file mode 100644 index 61c6a362..00000000 --- a/docs/models/operations/integrationscontrollerremoveintegrationresponse.md +++ /dev/null @@ -1,38 +0,0 @@ -# IntegrationsControllerRemoveIntegrationResponse - -## Example Usage - -```typescript -import { IntegrationsControllerRemoveIntegrationResponse } from "@novu/api/models/operations"; - -let value: IntegrationsControllerRemoveIntegrationResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - environmentId: "", - organizationId: "", - name: "", - identifier: "", - providerId: "", - channel: "chat", - credentials: {}, - active: false, - deleted: false, - deletedAt: "", - deletedBy: "", - primary: false, - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md b/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md deleted file mode 100644 index facc8217..00000000 --- a/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# IntegrationsControllerSetIntegrationAsPrimaryRequest - -## Example Usage - -```typescript -import { IntegrationsControllerSetIntegrationAsPrimaryRequest } from "@novu/api/models/operations"; - -let value: IntegrationsControllerSetIntegrationAsPrimaryRequest = { - integrationId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `integrationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md b/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md deleted file mode 100644 index 57678ea8..00000000 --- a/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md +++ /dev/null @@ -1,36 +0,0 @@ -# IntegrationsControllerSetIntegrationAsPrimaryResponse - -## Example Usage - -```typescript -import { IntegrationsControllerSetIntegrationAsPrimaryResponse } from "@novu/api/models/operations"; - -let value: IntegrationsControllerSetIntegrationAsPrimaryResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - environmentId: "", - organizationId: "", - name: "", - identifier: "", - providerId: "", - channel: "push", - credentials: {}, - active: false, - deleted: false, - deletedAt: "", - deletedBy: "", - primary: false, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md b/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md deleted file mode 100644 index cb43386a..00000000 --- a/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# IntegrationsControllerUpdateIntegrationByIdRequest - -## Example Usage - -```typescript -import { IntegrationsControllerUpdateIntegrationByIdRequest } from "@novu/api/models/operations"; - -let value: IntegrationsControllerUpdateIntegrationByIdRequest = { - integrationId: "", - updateIntegrationRequestDto: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `integrationId` | *string* | :heavy_check_mark: | N/A | -| `updateIntegrationRequestDto` | [components.UpdateIntegrationRequestDto](../../models/components/updateintegrationrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md b/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md deleted file mode 100644 index 01b31772..00000000 --- a/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md +++ /dev/null @@ -1,36 +0,0 @@ -# IntegrationsControllerUpdateIntegrationByIdResponse - -## Example Usage - -```typescript -import { IntegrationsControllerUpdateIntegrationByIdResponse } from "@novu/api/models/operations"; - -let value: IntegrationsControllerUpdateIntegrationByIdResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - environmentId: "", - organizationId: "", - name: "", - identifier: "", - providerId: "", - channel: "push", - credentials: {}, - active: false, - deleted: false, - deletedAt: "", - deletedBy: "", - primary: false, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/layoutscontrollerdeletelayoutrequest.md b/docs/models/operations/layoutscontrollerdeletelayoutrequest.md deleted file mode 100644 index 27ca6443..00000000 --- a/docs/models/operations/layoutscontrollerdeletelayoutrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# LayoutsControllerDeleteLayoutRequest - -## Example Usage - -```typescript -import { LayoutsControllerDeleteLayoutRequest } from "@novu/api/models/operations"; - -let value: LayoutsControllerDeleteLayoutRequest = { - layoutId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | \ No newline at end of file diff --git a/docs/models/operations/layoutscontrollergetlayoutrequest.md b/docs/models/operations/layoutscontrollergetlayoutrequest.md deleted file mode 100644 index 4bf3c2c1..00000000 --- a/docs/models/operations/layoutscontrollergetlayoutrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# LayoutsControllerGetLayoutRequest - -## Example Usage - -```typescript -import { LayoutsControllerGetLayoutRequest } from "@novu/api/models/operations"; - -let value: LayoutsControllerGetLayoutRequest = { - layoutId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | \ No newline at end of file diff --git a/docs/models/operations/layoutscontrollerlistlayoutsrequest.md b/docs/models/operations/layoutscontrollerlistlayoutsrequest.md deleted file mode 100644 index eca0fbff..00000000 --- a/docs/models/operations/layoutscontrollerlistlayoutsrequest.md +++ /dev/null @@ -1,18 +0,0 @@ -# LayoutsControllerListLayoutsRequest - -## Example Usage - -```typescript -import { LayoutsControllerListLayoutsRequest } from "@novu/api/models/operations"; - -let value: LayoutsControllerListLayoutsRequest = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `page` | *number* | :heavy_minus_sign: | Number of page for pagination | -| `pageSize` | *number* | :heavy_minus_sign: | Size of page for pagination | -| `sortBy` | *string* | :heavy_minus_sign: | Sort field. Currently only supported `createdAt` | -| `orderBy` | [operations.OrderBy](../../models/operations/orderby.md) | :heavy_minus_sign: | Direction of the sorting query param | \ No newline at end of file diff --git a/docs/models/operations/layoutscontrollersetdefaultlayoutrequest.md b/docs/models/operations/layoutscontrollersetdefaultlayoutrequest.md deleted file mode 100644 index b71765e0..00000000 --- a/docs/models/operations/layoutscontrollersetdefaultlayoutrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# LayoutsControllerSetDefaultLayoutRequest - -## Example Usage - -```typescript -import { LayoutsControllerSetDefaultLayoutRequest } from "@novu/api/models/operations"; - -let value: LayoutsControllerSetDefaultLayoutRequest = { - layoutId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | \ No newline at end of file diff --git a/docs/models/operations/layoutscontrollerupdatelayoutrequest.md b/docs/models/operations/layoutscontrollerupdatelayoutrequest.md deleted file mode 100644 index cb9215a1..00000000 --- a/docs/models/operations/layoutscontrollerupdatelayoutrequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# LayoutsControllerUpdateLayoutRequest - -## Example Usage - -```typescript -import { LayoutsControllerUpdateLayoutRequest } from "@novu/api/models/operations"; - -let value: LayoutsControllerUpdateLayoutRequest = { - layoutId: "", - updateLayoutRequestDto: { - identifier: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | -| `updateLayoutRequestDto` | [components.UpdateLayoutRequestDto](../../models/components/updatelayoutrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessagerequest.md b/docs/models/operations/messagescontrollerdeletemessagerequest.md deleted file mode 100644 index bd9b94de..00000000 --- a/docs/models/operations/messagescontrollerdeletemessagerequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# MessagesControllerDeleteMessageRequest - -## Example Usage - -```typescript -import { MessagesControllerDeleteMessageRequest } from "@novu/api/models/operations"; - -let value: MessagesControllerDeleteMessageRequest = { - messageId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `messageId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessageresponse.md b/docs/models/operations/messagescontrollerdeletemessageresponse.md deleted file mode 100644 index f54d9dec..00000000 --- a/docs/models/operations/messagescontrollerdeletemessageresponse.md +++ /dev/null @@ -1,26 +0,0 @@ -# MessagesControllerDeleteMessageResponse - -## Example Usage - -```typescript -import { MessagesControllerDeleteMessageResponse } from "@novu/api/models/operations"; - -let value: MessagesControllerDeleteMessageResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - acknowledged: false, - status: "deleted", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.DeleteMessageResponseDto](../../models/components/deletemessageresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md deleted file mode 100644 index 5bea039e..00000000 --- a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md +++ /dev/null @@ -1,18 +0,0 @@ -# MessagesControllerDeleteMessagesByTransactionIdRequest - -## Example Usage - -```typescript -import { MessagesControllerDeleteMessagesByTransactionIdRequest } from "@novu/api/models/operations"; - -let value: MessagesControllerDeleteMessagesByTransactionIdRequest = { - transactionId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `channel` | [operations.QueryParamChannel](../../models/operations/queryparamchannel.md) | :heavy_minus_sign: | The channel of the message to be deleted | -| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md deleted file mode 100644 index eb117477..00000000 --- a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md +++ /dev/null @@ -1,21 +0,0 @@ -# MessagesControllerDeleteMessagesByTransactionIdResponse - -## Example Usage - -```typescript -import { MessagesControllerDeleteMessagesByTransactionIdResponse } from "@novu/api/models/operations"; - -let value: MessagesControllerDeleteMessagesByTransactionIdResponse = { - headers: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollergetmessagesrequest.md b/docs/models/operations/messagescontrollergetmessagesrequest.md deleted file mode 100644 index 1a23c80a..00000000 --- a/docs/models/operations/messagescontrollergetmessagesrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# MessagesControllerGetMessagesRequest - -## Example Usage - -```typescript -import { MessagesControllerGetMessagesRequest } from "@novu/api/models/operations"; - -let value: MessagesControllerGetMessagesRequest = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `channel` | [operations.Channel](../../models/operations/channel.md) | :heavy_minus_sign: | N/A | -| `subscriberId` | *string* | :heavy_minus_sign: | N/A | -| `transactionId` | *string*[] | :heavy_minus_sign: | N/A | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollergetmessagesresponse.md b/docs/models/operations/messagescontrollergetmessagesresponse.md deleted file mode 100644 index e3444aa3..00000000 --- a/docs/models/operations/messagescontrollergetmessagesresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# MessagesControllerGetMessagesResponse - -## Example Usage - -```typescript -import { MessagesControllerGetMessagesResponse } from "@novu/api/models/operations"; - -let value: MessagesControllerGetMessagesResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - hasMore: false, - data: [ - "", - ], - pageSize: 6531.08, - page: 2532.92, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md deleted file mode 100644 index 30dd544a..00000000 --- a/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md +++ /dev/null @@ -1,27 +0,0 @@ -# NotificationGroupsControllerCreateNotificationGroupResponse - -## Example Usage - -```typescript -import { NotificationGroupsControllerCreateNotificationGroupResponse } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerCreateNotificationGroupResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - name: "", - environmentId: "", - organizationId: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md b/docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md deleted file mode 100644 index f460ee17..00000000 --- a/docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# NotificationGroupsControllerDeleteNotificationGroupRequest - -## Example Usage - -```typescript -import { NotificationGroupsControllerDeleteNotificationGroupRequest } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerDeleteNotificationGroupRequest = { - id: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md deleted file mode 100644 index 9d4b3783..00000000 --- a/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md +++ /dev/null @@ -1,26 +0,0 @@ -# NotificationGroupsControllerDeleteNotificationGroupResponse - -## Example Usage - -```typescript -import { NotificationGroupsControllerDeleteNotificationGroupResponse } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerDeleteNotificationGroupResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - acknowledged: false, - status: "deleted", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.DeleteNotificationGroupResponseDto](../../models/components/deletenotificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md b/docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md deleted file mode 100644 index 51bff1be..00000000 --- a/docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# NotificationGroupsControllerGetNotificationGroupRequest - -## Example Usage - -```typescript -import { NotificationGroupsControllerGetNotificationGroupRequest } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerGetNotificationGroupRequest = { - id: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md deleted file mode 100644 index 0a5962b8..00000000 --- a/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md +++ /dev/null @@ -1,27 +0,0 @@ -# NotificationGroupsControllerGetNotificationGroupResponse - -## Example Usage - -```typescript -import { NotificationGroupsControllerGetNotificationGroupResponse } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerGetNotificationGroupResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - name: "", - environmentId: "", - organizationId: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md b/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md deleted file mode 100644 index bfc3148c..00000000 --- a/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md +++ /dev/null @@ -1,29 +0,0 @@ -# NotificationGroupsControllerListNotificationGroupsResponse - -## Example Usage - -```typescript -import { NotificationGroupsControllerListNotificationGroupsResponse } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerListNotificationGroupsResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - name: "", - environmentId: "", - organizationId: "", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md b/docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md deleted file mode 100644 index 464f6cac..00000000 --- a/docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# NotificationGroupsControllerUpdateNotificationGroupRequest - -## Example Usage - -```typescript -import { NotificationGroupsControllerUpdateNotificationGroupRequest } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerUpdateNotificationGroupRequest = { - id: "", - createNotificationGroupRequestDto: { - name: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | -| `createNotificationGroupRequestDto` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md deleted file mode 100644 index 257ac529..00000000 --- a/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md +++ /dev/null @@ -1,27 +0,0 @@ -# NotificationGroupsControllerUpdateNotificationGroupResponse - -## Example Usage - -```typescript -import { NotificationGroupsControllerUpdateNotificationGroupResponse } from "@novu/api/models/operations"; - -let value: NotificationGroupsControllerUpdateNotificationGroupResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - name: "", - environmentId: "", - organizationId: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md b/docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md deleted file mode 100644 index a846d6c7..00000000 --- a/docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md +++ /dev/null @@ -1,15 +0,0 @@ -# NotificationsControllerGetActivityGraphStatsRequest - -## Example Usage - -```typescript -import { NotificationsControllerGetActivityGraphStatsRequest } from "@novu/api/models/operations"; - -let value: NotificationsControllerGetActivityGraphStatsRequest = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `days` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md b/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md deleted file mode 100644 index f8de7850..00000000 --- a/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md +++ /dev/null @@ -1,34 +0,0 @@ -# NotificationsControllerGetActivityGraphStatsResponse - -## Example Usage - -```typescript -import { NotificationsControllerGetActivityGraphStatsResponse } from "@novu/api/models/operations"; - -let value: NotificationsControllerGetActivityGraphStatsResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - id: "", - count: 5680.45, - templates: [ - "", - ], - channels: [ - "push", - ], - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.ActivityGraphStatesResponse](../../models/components/activitygraphstatesresponse.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitystatsresponse.md b/docs/models/operations/notificationscontrollergetactivitystatsresponse.md deleted file mode 100644 index 0b4e27c4..00000000 --- a/docs/models/operations/notificationscontrollergetactivitystatsresponse.md +++ /dev/null @@ -1,26 +0,0 @@ -# NotificationsControllerGetActivityStatsResponse - -## Example Usage - -```typescript -import { NotificationsControllerGetActivityStatsResponse } from "@novu/api/models/operations"; - -let value: NotificationsControllerGetActivityStatsResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - weeklySent: 7917.25, - monthlySent: 5288.95, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.ActivityStatsResponseDto](../../models/components/activitystatsresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetnotificationrequest.md b/docs/models/operations/notificationscontrollergetnotificationrequest.md deleted file mode 100644 index 41341f5c..00000000 --- a/docs/models/operations/notificationscontrollergetnotificationrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# NotificationsControllerGetNotificationRequest - -## Example Usage - -```typescript -import { NotificationsControllerGetNotificationRequest } from "@novu/api/models/operations"; - -let value: NotificationsControllerGetNotificationRequest = { - notificationId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `notificationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetnotificationresponse.md b/docs/models/operations/notificationscontrollergetnotificationresponse.md deleted file mode 100644 index b8b29c82..00000000 --- a/docs/models/operations/notificationscontrollergetnotificationresponse.md +++ /dev/null @@ -1,27 +0,0 @@ -# NotificationsControllerGetNotificationResponse - -## Example Usage - -```typescript -import { NotificationsControllerGetNotificationResponse } from "@novu/api/models/operations"; - -let value: NotificationsControllerGetNotificationResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - environmentId: "", - organizationId: "", - transactionId: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.ActivityNotificationResponseDto](../../models/components/activitynotificationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollerlistnotificationsrequest.md b/docs/models/operations/notificationscontrollerlistnotificationsrequest.md deleted file mode 100644 index 052e45b8..00000000 --- a/docs/models/operations/notificationscontrollerlistnotificationsrequest.md +++ /dev/null @@ -1,35 +0,0 @@ -# NotificationsControllerListNotificationsRequest - -## Example Usage - -```typescript -import { NotificationsControllerListNotificationsRequest } from "@novu/api/models/operations"; - -let value: NotificationsControllerListNotificationsRequest = { - channels: [ - "push", - ], - templates: [ - "", - ], - emails: [ - "", - ], - search: "", - subscriberIds: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| `channels` | [operations.Channels](../../models/operations/channels.md)[] | :heavy_check_mark: | N/A | -| `templates` | *string*[] | :heavy_check_mark: | N/A | -| `emails` | *string*[] | :heavy_check_mark: | N/A | -| ~~`search`~~ | *string* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible. | -| `subscriberIds` | *string*[] | :heavy_check_mark: | N/A | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `transactionId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollerlistnotificationsresponse.md b/docs/models/operations/notificationscontrollerlistnotificationsresponse.md deleted file mode 100644 index 220f95f4..00000000 --- a/docs/models/operations/notificationscontrollerlistnotificationsresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# NotificationsControllerListNotificationsResponse - -## Example Usage - -```typescript -import { NotificationsControllerListNotificationsResponse } from "@novu/api/models/operations"; - -let value: NotificationsControllerListNotificationsResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - hasMore: false, - data: [ - "", - ], - pageSize: 9636.63, - page: 3834.42, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/orderby.md b/docs/models/operations/orderby.md deleted file mode 100644 index 2b380e52..00000000 --- a/docs/models/operations/orderby.md +++ /dev/null @@ -1,17 +0,0 @@ -# OrderBy - -Direction of the sorting query param - -## Example Usage - -```typescript -import { OrderBy } from "@novu/api/models/operations"; - -let value: OrderBy = "DESC"; -``` - -## Values - -```typescript -"ASC" | "DESC" -``` \ No newline at end of file diff --git a/docs/models/operations/parameter.md b/docs/models/operations/parameter.md deleted file mode 100644 index db1b216b..00000000 --- a/docs/models/operations/parameter.md +++ /dev/null @@ -1,17 +0,0 @@ -# Parameter - -the preferences level to be retrieved (template / global) - -## Example Usage - -```typescript -import { Parameter } from "@novu/api/models/operations"; - -let value: Parameter = "global"; -``` - -## Values - -```typescript -"global" | "template" -``` \ No newline at end of file diff --git a/docs/models/operations/queryparamchannel.md b/docs/models/operations/queryparamchannel.md deleted file mode 100644 index a9acdf68..00000000 --- a/docs/models/operations/queryparamchannel.md +++ /dev/null @@ -1,17 +0,0 @@ -# QueryParamChannel - -The channel of the message to be deleted - -## Example Usage - -```typescript -import { QueryParamChannel } from "@novu/api/models/operations"; - -let value: QueryParamChannel = "sms"; -``` - -## Values - -```typescript -"in_app" | "email" | "sms" | "chat" | "push" -``` \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md b/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md deleted file mode 100644 index c03b7c54..00000000 --- a/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md +++ /dev/null @@ -1,21 +0,0 @@ -# SubscribersControllerBulkCreateSubscribersResponse - -## Example Usage - -```typescript -import { SubscribersControllerBulkCreateSubscribersResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerBulkCreateSubscribersResponse = { - headers: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md b/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md deleted file mode 100644 index e1a3c7a7..00000000 --- a/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md +++ /dev/null @@ -1,24 +0,0 @@ -# SubscribersControllerChatAccessOauthRequest - -## Example Usage - -```typescript -import { SubscribersControllerChatAccessOauthRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerChatAccessOauthRequest = { - subscriberId: "", - providerId: "", - hmacHash: "", - environmentId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------- | ----------------------- | ----------------------- | ----------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `providerId` | *any* | :heavy_check_mark: | N/A | -| `hmacHash` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `integrationIdentifier` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md b/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md deleted file mode 100644 index 45085487..00000000 --- a/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md +++ /dev/null @@ -1,21 +0,0 @@ -# SubscribersControllerChatAccessOauthResponse - -## Example Usage - -```typescript -import { SubscribersControllerChatAccessOauthResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerChatAccessOauthResponse = { - headers: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md deleted file mode 100644 index 115eb8c6..00000000 --- a/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md +++ /dev/null @@ -1,26 +0,0 @@ -# SubscribersControllerChatOauthCallbackRequest - -## Example Usage - -```typescript -import { SubscribersControllerChatOauthCallbackRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerChatOauthCallbackRequest = { - subscriberId: "", - providerId: "", - code: "", - hmacHash: "", - environmentId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------- | ----------------------- | ----------------------- | ----------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `providerId` | *any* | :heavy_check_mark: | N/A | -| `code` | *string* | :heavy_check_mark: | N/A | -| `hmacHash` | *string* | :heavy_check_mark: | N/A | -| `environmentId` | *string* | :heavy_check_mark: | N/A | -| `integrationIdentifier` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md deleted file mode 100644 index 1f17ff94..00000000 --- a/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md +++ /dev/null @@ -1,23 +0,0 @@ -# SubscribersControllerChatOauthCallbackResponse - -## Example Usage - -```typescript -import { SubscribersControllerChatOauthCallbackResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerChatOauthCallbackResponse = { - headers: { - "key": [ - "", - ], - }, - result: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [operations.SubscribersControllerChatOauthCallbackResponseBody](../../models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md deleted file mode 100644 index 9476de24..00000000 --- a/docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md +++ /dev/null @@ -1,14 +0,0 @@ -# SubscribersControllerChatOauthCallbackResponseBody - -## Example Usage - -```typescript -import { SubscribersControllerChatOauthCallbackResponseBody } from "@novu/api/models/operations"; - -let value: SubscribersControllerChatOauthCallbackResponseBody = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md b/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md deleted file mode 100644 index 12c5d2d3..00000000 --- a/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# SubscribersControllerCreateSubscriberResponse - -## Example Usage - -```typescript -import { SubscribersControllerCreateSubscriberResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerCreateSubscriberResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md deleted file mode 100644 index 6f2cf92f..00000000 --- a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# SubscribersControllerDeleteSubscriberCredentialsRequest - -## Example Usage - -```typescript -import { SubscribersControllerDeleteSubscriberCredentialsRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerDeleteSubscriberCredentialsRequest = { - subscriberId: "", - providerId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `providerId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md deleted file mode 100644 index 96b2334f..00000000 --- a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md +++ /dev/null @@ -1,21 +0,0 @@ -# SubscribersControllerDeleteSubscriberCredentialsResponse - -## Example Usage - -```typescript -import { SubscribersControllerDeleteSubscriberCredentialsResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerDeleteSubscriberCredentialsResponse = { - headers: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md deleted file mode 100644 index 59ad8e16..00000000 --- a/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md +++ /dev/null @@ -1,24 +0,0 @@ -# SubscribersControllerGetNotificationsFeedRequest - -## Example Usage - -```typescript -import { SubscribersControllerGetNotificationsFeedRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetNotificationsFeedRequest = { - subscriberId: "", - payload: - "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", -}; -``` - -## Fields - -| Field | Type | Required | Description | Example | -| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | | -| `page` | *number* | :heavy_minus_sign: | N/A | | -| `limit` | *number* | :heavy_minus_sign: | N/A | | -| `read` | *boolean* | :heavy_minus_sign: | N/A | | -| `seen` | *boolean* | :heavy_minus_sign: | N/A | | -| `payload` | *string* | :heavy_minus_sign: | Base64 encoded string of the partial payload JSON object | btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md deleted file mode 100644 index 8941f043..00000000 --- a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md +++ /dev/null @@ -1,37 +0,0 @@ -# SubscribersControllerGetNotificationsFeedResponse - -## Example Usage - -```typescript -import { SubscribersControllerGetNotificationsFeedResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetNotificationsFeedResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - page: 3595.08, - hasMore: false, - pageSize: 4370.32, - data: [ - { - hasMore: false, - data: [ - "", - ], - pageSize: 6976.31, - page: 602.25, - }, - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [operations.SubscribersControllerGetNotificationsFeedResponseBody](../../models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md deleted file mode 100644 index a612bdac..00000000 --- a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md +++ /dev/null @@ -1,32 +0,0 @@ -# SubscribersControllerGetNotificationsFeedResponseBody - -## Example Usage - -```typescript -import { SubscribersControllerGetNotificationsFeedResponseBody } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetNotificationsFeedResponseBody = { - page: 6120.96, - hasMore: false, - pageSize: 6169.34, - data: [ - { - hasMore: false, - data: [ - "", - ], - pageSize: 9437.48, - page: 6818.20, - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `page` | *number* | :heavy_check_mark: | The current page of the paginated response | -| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | -| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | -| `data` | [components.FeedResponseDto](../../models/components/feedresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md deleted file mode 100644 index e8279689..00000000 --- a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md +++ /dev/null @@ -1,20 +0,0 @@ -# SubscribersControllerGetSubscriberPreferenceByLevelRequest - -## Example Usage - -```typescript -import { SubscribersControllerGetSubscriberPreferenceByLevelRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetSubscriberPreferenceByLevelRequest = { - parameter: "template", - subscriberId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | -| `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved (template / global) | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md deleted file mode 100644 index 4c8c5595..00000000 --- a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# SubscribersControllerGetSubscriberPreferenceByLevelResponse - -## Example Usage - -```typescript -import { SubscribersControllerGetSubscriberPreferenceByLevelResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetSubscriberPreferenceByLevelResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - preference: { - enabled: false, - channels: {}, - }, - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.GetSubscriberPreferencesResponseDto](../../models/components/getsubscriberpreferencesresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberrequest.md deleted file mode 100644 index e7ad3e9f..00000000 --- a/docs/models/operations/subscriberscontrollergetsubscriberrequest.md +++ /dev/null @@ -1,18 +0,0 @@ -# SubscribersControllerGetSubscriberRequest - -## Example Usage - -```typescript -import { SubscribersControllerGetSubscriberRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetSubscriberRequest = { - subscriberId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `includeTopics` | *string* | :heavy_minus_sign: | Includes the topics associated with the subscriber | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberresponse.md b/docs/models/operations/subscriberscontrollergetsubscriberresponse.md deleted file mode 100644 index 1b9b405e..00000000 --- a/docs/models/operations/subscriberscontrollergetsubscriberresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# SubscribersControllerGetSubscriberResponse - -## Example Usage - -```typescript -import { SubscribersControllerGetSubscriberResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetSubscriberResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetunseencountrequest.md b/docs/models/operations/subscriberscontrollergetunseencountrequest.md deleted file mode 100644 index be7f9ad7..00000000 --- a/docs/models/operations/subscriberscontrollergetunseencountrequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# SubscribersControllerGetUnseenCountRequest - -## Example Usage - -```typescript -import { SubscribersControllerGetUnseenCountRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetUnseenCountRequest = { - seen: false, - subscriberId: "", - limit: 6667.67, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `seen` | *boolean* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `limit` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetunseencountresponse.md b/docs/models/operations/subscriberscontrollergetunseencountresponse.md deleted file mode 100644 index 5f1db382..00000000 --- a/docs/models/operations/subscriberscontrollergetunseencountresponse.md +++ /dev/null @@ -1,25 +0,0 @@ -# SubscribersControllerGetUnseenCountResponse - -## Example Usage - -```typescript -import { SubscribersControllerGetUnseenCountResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerGetUnseenCountResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - count: 6706.38, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.UnseenCountResponse](../../models/components/unseencountresponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md deleted file mode 100644 index fdc52a3e..00000000 --- a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md +++ /dev/null @@ -1,18 +0,0 @@ -# SubscribersControllerListSubscriberPreferencesRequest - -## Example Usage - -```typescript -import { SubscribersControllerListSubscriberPreferencesRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerListSubscriberPreferencesRequest = { - subscriberId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md deleted file mode 100644 index bddcc179..00000000 --- a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md +++ /dev/null @@ -1,38 +0,0 @@ -# SubscribersControllerListSubscriberPreferencesResponse - -## Example Usage - -```typescript -import { SubscribersControllerListSubscriberPreferencesResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerListSubscriberPreferencesResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - { - template: { - id: "", - name: "", - critical: false, - triggers: [ - "", - ], - }, - preference: { - enabled: false, - channels: {}, - }, - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersrequest.md b/docs/models/operations/subscriberscontrollerlistsubscribersrequest.md deleted file mode 100644 index b96e44f9..00000000 --- a/docs/models/operations/subscriberscontrollerlistsubscribersrequest.md +++ /dev/null @@ -1,16 +0,0 @@ -# SubscribersControllerListSubscribersRequest - -## Example Usage - -```typescript -import { SubscribersControllerListSubscribersRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerListSubscribersRequest = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md deleted file mode 100644 index 0e8e1a77..00000000 --- a/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md +++ /dev/null @@ -1,37 +0,0 @@ -# SubscribersControllerListSubscribersResponse - -## Example Usage - -```typescript -import { SubscribersControllerListSubscribersResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerListSubscribersResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - page: 4614.79, - hasMore: false, - pageSize: 7805.29, - data: [ - { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [operations.SubscribersControllerListSubscribersResponseBody](../../models/operations/subscriberscontrollerlistsubscribersresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md deleted file mode 100644 index d52b116f..00000000 --- a/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md +++ /dev/null @@ -1,32 +0,0 @@ -# SubscribersControllerListSubscribersResponseBody - -## Example Usage - -```typescript -import { SubscribersControllerListSubscribersResponseBody } from "@novu/api/models/operations"; - -let value: SubscribersControllerListSubscribersResponseBody = { - page: 9786.18, - hasMore: false, - pageSize: 7991.59, - data: [ - { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `page` | *number* | :heavy_check_mark: | The current page of the paginated response | -| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | -| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | -| `data` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md b/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md deleted file mode 100644 index 9437042b..00000000 --- a/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md +++ /dev/null @@ -1,25 +0,0 @@ -# SubscribersControllerMarkActionAsSeenRequest - -## Example Usage - -```typescript -import { SubscribersControllerMarkActionAsSeenRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerMarkActionAsSeenRequest = { - messageId: "", - type: "", - subscriberId: "", - markMessageActionAsSeenDto: { - status: "done", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `messageId` | *string* | :heavy_check_mark: | N/A | -| `type` | *any* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `markMessageActionAsSeenDto` | [components.MarkMessageActionAsSeenDto](../../models/components/markmessageactionasseendto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md b/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md deleted file mode 100644 index 8880a20d..00000000 --- a/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md +++ /dev/null @@ -1,47 +0,0 @@ -# SubscribersControllerMarkActionAsSeenResponse - -## Example Usage - -```typescript -import { SubscribersControllerMarkActionAsSeenResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerMarkActionAsSeenResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - templateId: "", - environmentId: "", - messageTemplateId: "", - organizationId: "", - notificationId: "", - subscriberId: "", - createdAt: "", - content: { - type: "text", - content: "", - }, - transactionId: "", - channel: "in_app", - read: false, - seen: false, - cta: { - data: {}, - }, - status: "sent", - errorId: "", - errorText: "", - payload: {}, - overrides: {}, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.MessageResponseDto](../../models/components/messageresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md b/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md deleted file mode 100644 index 201ffad6..00000000 --- a/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# SubscribersControllerMarkAllUnreadAsReadRequest - -## Example Usage - -```typescript -import { SubscribersControllerMarkAllUnreadAsReadRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerMarkAllUnreadAsReadRequest = { - subscriberId: "", - markAllMessageAsRequestDto: { - markAs: "seen", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md b/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md deleted file mode 100644 index a8d15823..00000000 --- a/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md +++ /dev/null @@ -1,23 +0,0 @@ -# SubscribersControllerMarkAllUnreadAsReadResponse - -## Example Usage - -```typescript -import { SubscribersControllerMarkAllUnreadAsReadResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerMarkAllUnreadAsReadResponse = { - headers: { - "key": [ - "", - ], - }, - result: 3637.11, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md deleted file mode 100644 index 6869e508..00000000 --- a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md +++ /dev/null @@ -1,22 +0,0 @@ -# SubscribersControllerMarkMessagesAsRequest - -## Example Usage - -```typescript -import { SubscribersControllerMarkMessagesAsRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerMarkMessagesAsRequest = { - subscriberId: "", - messageMarkAsRequestDto: { - messageId: "", - markAs: "read", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `messageMarkAsRequestDto` | [components.MessageMarkAsRequestDto](../../models/components/messagemarkasrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md b/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md deleted file mode 100644 index 080c2291..00000000 --- a/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md +++ /dev/null @@ -1,25 +0,0 @@ -# SubscribersControllerMarkMessagesAsResponse - -## Example Usage - -```typescript -import { SubscribersControllerMarkMessagesAsResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerMarkMessagesAsResponse = { - headers: { - "key": [ - "", - ], - }, - result: [ - {}, - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.MessageEntity](../../models/components/messageentity.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md deleted file mode 100644 index 9d4fa810..00000000 --- a/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md +++ /dev/null @@ -1,24 +0,0 @@ -# SubscribersControllerModifySubscriberChannelRequest - -## Example Usage - -```typescript -import { SubscribersControllerModifySubscriberChannelRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerModifySubscriberChannelRequest = { - subscriberId: "", - updateSubscriberChannelRequestDto: { - providerId: "getstream", - credentials: { - webhookUrl: "https://sorrowful-import.name/", - }, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md b/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md deleted file mode 100644 index 8c1d1364..00000000 --- a/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# SubscribersControllerModifySubscriberChannelResponse - -## Example Usage - -```typescript -import { SubscribersControllerModifySubscriberChannelResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerModifySubscriberChannelResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md b/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md deleted file mode 100644 index 3f3a9ccb..00000000 --- a/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# SubscribersControllerRemoveSubscriberRequest - -## Example Usage - -```typescript -import { SubscribersControllerRemoveSubscriberRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerRemoveSubscriberRequest = { - subscriberId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md b/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md deleted file mode 100644 index 6b3a99da..00000000 --- a/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md +++ /dev/null @@ -1,26 +0,0 @@ -# SubscribersControllerRemoveSubscriberResponse - -## Example Usage - -```typescript -import { SubscribersControllerRemoveSubscriberResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerRemoveSubscriberResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - acknowledged: false, - status: "deleted", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.DeleteSubscriberResponseDto](../../models/components/deletesubscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md deleted file mode 100644 index dd51367f..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md +++ /dev/null @@ -1,24 +0,0 @@ -# SubscribersControllerUpdateSubscriberChannelRequest - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberChannelRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberChannelRequest = { - subscriberId: "", - updateSubscriberChannelRequestDto: { - providerId: "msteams", - credentials: { - webhookUrl: "https://corrupt-unblinking.name", - }, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md deleted file mode 100644 index bf20d9c1..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# SubscribersControllerUpdateSubscriberChannelResponse - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberChannelResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberChannelResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md deleted file mode 100644 index ddcd4cda..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# SubscribersControllerUpdateSubscriberGlobalPreferencesRequest - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberGlobalPreferencesRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { - subscriberId: "", - updateSubscriberGlobalPreferencesRequestDto: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md deleted file mode 100644 index 48ccd5a7..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md +++ /dev/null @@ -1,36 +0,0 @@ -# SubscribersControllerUpdateSubscriberGlobalPreferencesResponse - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberGlobalPreferencesResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberGlobalPreferencesResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - template: { - id: "", - name: "", - critical: false, - triggers: [ - "", - ], - }, - preference: { - enabled: false, - channels: {}, - }, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md deleted file mode 100644 index 44b31f42..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# SubscribersControllerUpdateSubscriberOnlineFlagRequest - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberOnlineFlagRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberOnlineFlagRequest = { - subscriberId: "", - updateSubscriberOnlineFlagRequestDto: { - isOnline: false, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberOnlineFlagRequestDto` | [components.UpdateSubscriberOnlineFlagRequestDto](../../models/components/updatesubscriberonlineflagrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md deleted file mode 100644 index 84bf07eb..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# SubscribersControllerUpdateSubscriberOnlineFlagResponse - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberOnlineFlagResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberOnlineFlagResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md deleted file mode 100644 index 52454602..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# SubscribersControllerUpdateSubscriberPreferenceRequest - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberPreferenceRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberPreferenceRequest = { - subscriberId: "", - parameter: "", - updateSubscriberPreferenceRequestDto: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `parameter` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberPreferenceRequestDto` | [components.UpdateSubscriberPreferenceRequestDto](../../models/components/updatesubscriberpreferencerequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md deleted file mode 100644 index cf8d8d3b..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md +++ /dev/null @@ -1,36 +0,0 @@ -# SubscribersControllerUpdateSubscriberPreferenceResponse - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberPreferenceResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberPreferenceResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - template: { - id: "", - name: "", - critical: false, - triggers: [ - "", - ], - }, - preference: { - enabled: false, - channels: {}, - }, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md deleted file mode 100644 index 6e11a5eb..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# SubscribersControllerUpdateSubscriberRequest - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberRequest } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberRequest = { - subscriberId: "", - updateSubscriberRequestDto: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberRequestDto` | [components.UpdateSubscriberRequestDto](../../models/components/updatesubscriberrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md deleted file mode 100644 index 096c2fed..00000000 --- a/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# SubscribersControllerUpdateSubscriberResponse - -## Example Usage - -```typescript -import { SubscribersControllerUpdateSubscriberResponse } from "@novu/api/models/operations"; - -let value: SubscribersControllerUpdateSubscriberResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - subscriberId: "", - organizationId: "", - environmentId: "", - deleted: false, - createdAt: "", - updatedAt: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/tenantcontrollergettenantbyidrequest.md b/docs/models/operations/tenantcontrollergettenantbyidrequest.md deleted file mode 100644 index a933feac..00000000 --- a/docs/models/operations/tenantcontrollergettenantbyidrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# TenantControllerGetTenantByIdRequest - -## Example Usage - -```typescript -import { TenantControllerGetTenantByIdRequest } from "@novu/api/models/operations"; - -let value: TenantControllerGetTenantByIdRequest = { - identifier: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `identifier` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/tenantcontrollerlisttenantsrequest.md b/docs/models/operations/tenantcontrollerlisttenantsrequest.md deleted file mode 100644 index bdd36c71..00000000 --- a/docs/models/operations/tenantcontrollerlisttenantsrequest.md +++ /dev/null @@ -1,16 +0,0 @@ -# TenantControllerListTenantsRequest - -## Example Usage - -```typescript -import { TenantControllerListTenantsRequest } from "@novu/api/models/operations"; - -let value: TenantControllerListTenantsRequest = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/tenantcontrollerlisttenantsresponse.md b/docs/models/operations/tenantcontrollerlisttenantsresponse.md deleted file mode 100644 index f9ea5e5f..00000000 --- a/docs/models/operations/tenantcontrollerlisttenantsresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# TenantControllerListTenantsResponse - -## Example Usage - -```typescript -import { TenantControllerListTenantsResponse } from "@novu/api/models/operations"; - -let value: TenantControllerListTenantsResponse = { - result: { - data: [ - { - environmentId: "", - id: "", - createdAt: "", - identifier: "", - updatedAt: "", - }, - ], - hasMore: false, - page: 1965.82, - pageSize: 9495.72, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `result` | [operations.TenantControllerListTenantsResponseBody](../../models/operations/tenantcontrollerlisttenantsresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/tenantcontrollerlisttenantsresponsebody.md b/docs/models/operations/tenantcontrollerlisttenantsresponsebody.md deleted file mode 100644 index a6ca341e..00000000 --- a/docs/models/operations/tenantcontrollerlisttenantsresponsebody.md +++ /dev/null @@ -1,31 +0,0 @@ -# TenantControllerListTenantsResponseBody - -## Example Usage - -```typescript -import { TenantControllerListTenantsResponseBody } from "@novu/api/models/operations"; - -let value: TenantControllerListTenantsResponseBody = { - data: [ - { - environmentId: "", - id: "", - createdAt: "", - identifier: "", - updatedAt: "", - }, - ], - hasMore: false, - page: 1381.83, - pageSize: 7783.46, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `data` | [components.GetTenantResponseDto](../../models/components/gettenantresponsedto.md)[] | :heavy_check_mark: | N/A | -| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | -| `page` | *number* | :heavy_check_mark: | The current page of the paginated response | -| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | \ No newline at end of file diff --git a/docs/models/operations/tenantcontrollerremovetenantrequest.md b/docs/models/operations/tenantcontrollerremovetenantrequest.md deleted file mode 100644 index 481cd4ba..00000000 --- a/docs/models/operations/tenantcontrollerremovetenantrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# TenantControllerRemoveTenantRequest - -## Example Usage - -```typescript -import { TenantControllerRemoveTenantRequest } from "@novu/api/models/operations"; - -let value: TenantControllerRemoveTenantRequest = { - identifier: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `identifier` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/tenantcontrollerupdatetenantrequest.md b/docs/models/operations/tenantcontrollerupdatetenantrequest.md deleted file mode 100644 index 478d5d89..00000000 --- a/docs/models/operations/tenantcontrollerupdatetenantrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# TenantControllerUpdateTenantRequest - -## Example Usage - -```typescript -import { TenantControllerUpdateTenantRequest } from "@novu/api/models/operations"; - -let value: TenantControllerUpdateTenantRequest = { - identifier: "", - updateTenantRequestDto: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `updateTenantRequestDto` | [components.UpdateTenantRequestDto](../../models/components/updatetenantrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrolleraddsubscribersrequest.md b/docs/models/operations/topicscontrolleraddsubscribersrequest.md deleted file mode 100644 index d618fb15..00000000 --- a/docs/models/operations/topicscontrolleraddsubscribersrequest.md +++ /dev/null @@ -1,23 +0,0 @@ -# TopicsControllerAddSubscribersRequest - -## Example Usage - -```typescript -import { TopicsControllerAddSubscribersRequest } from "@novu/api/models/operations"; - -let value: TopicsControllerAddSubscribersRequest = { - topicKey: "", - addSubscribersRequestDto: { - subscribers: [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `addSubscribersRequestDto` | [components.AddSubscribersRequestDto](../../models/components/addsubscribersrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrolleraddsubscribersresponse.md b/docs/models/operations/topicscontrolleraddsubscribersresponse.md deleted file mode 100644 index 29fa2cf2..00000000 --- a/docs/models/operations/topicscontrolleraddsubscribersresponse.md +++ /dev/null @@ -1,21 +0,0 @@ -# TopicsControllerAddSubscribersResponse - -## Example Usage - -```typescript -import { TopicsControllerAddSubscribersResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerAddSubscribersResponse = { - headers: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollercreatetopicresponse.md b/docs/models/operations/topicscontrollercreatetopicresponse.md deleted file mode 100644 index a4d12ed3..00000000 --- a/docs/models/operations/topicscontrollercreatetopicresponse.md +++ /dev/null @@ -1,25 +0,0 @@ -# TopicsControllerCreateTopicResponse - -## Example Usage - -```typescript -import { TopicsControllerCreateTopicResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerCreateTopicResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - key: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.CreateTopicResponseDto](../../models/components/createtopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerdeletetopicrequest.md b/docs/models/operations/topicscontrollerdeletetopicrequest.md deleted file mode 100644 index 91fa24c2..00000000 --- a/docs/models/operations/topicscontrollerdeletetopicrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# TopicsControllerDeleteTopicRequest - -## Example Usage - -```typescript -import { TopicsControllerDeleteTopicRequest } from "@novu/api/models/operations"; - -let value: TopicsControllerDeleteTopicRequest = { - topicKey: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerdeletetopicresponse.md b/docs/models/operations/topicscontrollerdeletetopicresponse.md deleted file mode 100644 index 0016e20e..00000000 --- a/docs/models/operations/topicscontrollerdeletetopicresponse.md +++ /dev/null @@ -1,21 +0,0 @@ -# TopicsControllerDeleteTopicResponse - -## Example Usage - -```typescript -import { TopicsControllerDeleteTopicResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerDeleteTopicResponse = { - headers: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicrequest.md b/docs/models/operations/topicscontrollergettopicrequest.md deleted file mode 100644 index 10c3e7ba..00000000 --- a/docs/models/operations/topicscontrollergettopicrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# TopicsControllerGetTopicRequest - -## Example Usage - -```typescript -import { TopicsControllerGetTopicRequest } from "@novu/api/models/operations"; - -let value: TopicsControllerGetTopicRequest = { - topicKey: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicresponse.md b/docs/models/operations/topicscontrollergettopicresponse.md deleted file mode 100644 index 44458224..00000000 --- a/docs/models/operations/topicscontrollergettopicresponse.md +++ /dev/null @@ -1,31 +0,0 @@ -# TopicsControllerGetTopicResponse - -## Example Usage - -```typescript -import { TopicsControllerGetTopicResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerGetTopicResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - organizationId: "", - environmentId: "", - key: "", - name: "", - subscribers: [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.GetTopicResponseDto](../../models/components/gettopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicsubscriberrequest.md b/docs/models/operations/topicscontrollergettopicsubscriberrequest.md deleted file mode 100644 index 5037dd89..00000000 --- a/docs/models/operations/topicscontrollergettopicsubscriberrequest.md +++ /dev/null @@ -1,19 +0,0 @@ -# TopicsControllerGetTopicSubscriberRequest - -## Example Usage - -```typescript -import { TopicsControllerGetTopicSubscriberRequest } from "@novu/api/models/operations"; - -let value: TopicsControllerGetTopicSubscriberRequest = { - externalSubscriberId: "", - topicKey: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `externalSubscriberId` | *string* | :heavy_check_mark: | The external subscriber id | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicsubscriberresponse.md b/docs/models/operations/topicscontrollergettopicsubscriberresponse.md deleted file mode 100644 index 774ef9c1..00000000 --- a/docs/models/operations/topicscontrollergettopicsubscriberresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -# TopicsControllerGetTopicSubscriberResponse - -## Example Usage - -```typescript -import { TopicsControllerGetTopicSubscriberResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerGetTopicSubscriberResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - organizationId: "", - environmentId: "", - subscriberId: "", - topicId: "", - topicKey: "", - externalSubscriberId: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.TopicSubscriberDto](../../models/components/topicsubscriberdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerlisttopicsrequest.md b/docs/models/operations/topicscontrollerlisttopicsrequest.md deleted file mode 100644 index ef798d99..00000000 --- a/docs/models/operations/topicscontrollerlisttopicsrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# TopicsControllerListTopicsRequest - -## Example Usage - -```typescript -import { TopicsControllerListTopicsRequest } from "@novu/api/models/operations"; - -let value: TopicsControllerListTopicsRequest = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | -| `page` | *number* | :heavy_minus_sign: | Number of page for the pagination | -| `pageSize` | *number* | :heavy_minus_sign: | Size of page for the pagination | -| `key` | *string* | :heavy_minus_sign: | Topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerlisttopicsresponse.md b/docs/models/operations/topicscontrollerlisttopicsresponse.md deleted file mode 100644 index 5e2081d1..00000000 --- a/docs/models/operations/topicscontrollerlisttopicsresponse.md +++ /dev/null @@ -1,38 +0,0 @@ -# TopicsControllerListTopicsResponse - -## Example Usage - -```typescript -import { TopicsControllerListTopicsResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerListTopicsResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - data: [ - { - organizationId: "", - environmentId: "", - key: "", - name: "", - subscribers: [ - "", - ], - }, - ], - page: 2444.26, - pageSize: 1589.70, - totalCount: 1103.75, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.FilterTopicsResponseDto](../../models/components/filtertopicsresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerremovesubscribersrequest.md b/docs/models/operations/topicscontrollerremovesubscribersrequest.md deleted file mode 100644 index 2120c9fe..00000000 --- a/docs/models/operations/topicscontrollerremovesubscribersrequest.md +++ /dev/null @@ -1,23 +0,0 @@ -# TopicsControllerRemoveSubscribersRequest - -## Example Usage - -```typescript -import { TopicsControllerRemoveSubscribersRequest } from "@novu/api/models/operations"; - -let value: TopicsControllerRemoveSubscribersRequest = { - topicKey: "", - removeSubscribersRequestDto: { - subscribers: [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerremovesubscribersresponse.md b/docs/models/operations/topicscontrollerremovesubscribersresponse.md deleted file mode 100644 index bca5e233..00000000 --- a/docs/models/operations/topicscontrollerremovesubscribersresponse.md +++ /dev/null @@ -1,21 +0,0 @@ -# TopicsControllerRemoveSubscribersResponse - -## Example Usage - -```typescript -import { TopicsControllerRemoveSubscribersResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerRemoveSubscribersResponse = { - headers: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerrenametopicrequest.md b/docs/models/operations/topicscontrollerrenametopicrequest.md deleted file mode 100644 index 8f50fa1d..00000000 --- a/docs/models/operations/topicscontrollerrenametopicrequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# TopicsControllerRenameTopicRequest - -## Example Usage - -```typescript -import { TopicsControllerRenameTopicRequest } from "@novu/api/models/operations"; - -let value: TopicsControllerRenameTopicRequest = { - topicKey: "", - renameTopicRequestDto: { - name: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `renameTopicRequestDto` | [components.RenameTopicRequestDto](../../models/components/renametopicrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerrenametopicresponse.md b/docs/models/operations/topicscontrollerrenametopicresponse.md deleted file mode 100644 index 2977f8cc..00000000 --- a/docs/models/operations/topicscontrollerrenametopicresponse.md +++ /dev/null @@ -1,31 +0,0 @@ -# TopicsControllerRenameTopicResponse - -## Example Usage - -```typescript -import { TopicsControllerRenameTopicResponse } from "@novu/api/models/operations"; - -let value: TopicsControllerRenameTopicResponse = { - headers: { - "key": [ - "", - ], - }, - result: { - organizationId: "", - environmentId: "", - key: "", - name: "", - subscribers: [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `headers` | Record | :heavy_check_mark: | N/A | -| `result` | [components.RenameTopicResponseDto](../../models/components/renametopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/workflowcontrollerdeleteworkflowbyidrequest.md b/docs/models/operations/workflowcontrollerdeleteworkflowbyidrequest.md deleted file mode 100644 index a433199c..00000000 --- a/docs/models/operations/workflowcontrollerdeleteworkflowbyidrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# WorkflowControllerDeleteWorkflowByIdRequest - -## Example Usage - -```typescript -import { WorkflowControllerDeleteWorkflowByIdRequest } from "@novu/api/models/operations"; - -let value: WorkflowControllerDeleteWorkflowByIdRequest = { - workflowId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/workflowcontrollergetworkflowbyidrequest.md b/docs/models/operations/workflowcontrollergetworkflowbyidrequest.md deleted file mode 100644 index dc02856f..00000000 --- a/docs/models/operations/workflowcontrollergetworkflowbyidrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# WorkflowControllerGetWorkflowByIdRequest - -## Example Usage - -```typescript -import { WorkflowControllerGetWorkflowByIdRequest } from "@novu/api/models/operations"; - -let value: WorkflowControllerGetWorkflowByIdRequest = { - workflowId: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/workflowcontrollerlistworkflowsrequest.md b/docs/models/operations/workflowcontrollerlistworkflowsrequest.md deleted file mode 100644 index 92891755..00000000 --- a/docs/models/operations/workflowcontrollerlistworkflowsrequest.md +++ /dev/null @@ -1,17 +0,0 @@ -# WorkflowControllerListWorkflowsRequest - -## Example Usage - -```typescript -import { WorkflowControllerListWorkflowsRequest } from "@novu/api/models/operations"; - -let value: WorkflowControllerListWorkflowsRequest = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | -| `query` | *string* | :heavy_minus_sign: | A query string to filter the results. It allows filtering based on either the name or trigger identifier of the workflow items. | \ No newline at end of file diff --git a/docs/models/operations/workflowcontrollerupdateactivestatusrequest.md b/docs/models/operations/workflowcontrollerupdateactivestatusrequest.md deleted file mode 100644 index 20487685..00000000 --- a/docs/models/operations/workflowcontrollerupdateactivestatusrequest.md +++ /dev/null @@ -1,21 +0,0 @@ -# WorkflowControllerUpdateActiveStatusRequest - -## Example Usage - -```typescript -import { WorkflowControllerUpdateActiveStatusRequest } from "@novu/api/models/operations"; - -let value: WorkflowControllerUpdateActiveStatusRequest = { - workflowId: "", - changeWorkflowStatusRequestDto: { - active: false, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | -| `changeWorkflowStatusRequestDto` | [components.ChangeWorkflowStatusRequestDto](../../models/components/changeworkflowstatusrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/workflowcontrollerupdateworkflowbyidrequest.md b/docs/models/operations/workflowcontrollerupdateworkflowbyidrequest.md deleted file mode 100644 index 6aeea8aa..00000000 --- a/docs/models/operations/workflowcontrollerupdateworkflowbyidrequest.md +++ /dev/null @@ -1,22 +0,0 @@ -# WorkflowControllerUpdateWorkflowByIdRequest - -## Example Usage - -```typescript -import { WorkflowControllerUpdateWorkflowByIdRequest } from "@novu/api/models/operations"; - -let value: WorkflowControllerUpdateWorkflowByIdRequest = { - workflowId: "", - updateWorkflowRequestDto: { - name: "", - notificationGroupId: "", - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | -| `updateWorkflowRequestDto` | [components.UpdateWorkflowRequestDto](../../models/components/updateworkflowrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/sdks/apikeys/README.md b/docs/sdks/apikeys/README.md deleted file mode 100644 index 166c1cb5..00000000 --- a/docs/sdks/apikeys/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# ApiKeys -(*environments.apiKeys*) - -## Overview - -### Available Operations - -* [list](#list) - Get api keys - -## list - -Get api keys - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.environments.apiKeys.list(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { environmentsApiKeysList } from "@novu/api/funcs/environmentsApiKeysList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await environmentsApiKeysList(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse](../../models/operations/environmentscontrollerv1listorganizationapikeysresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md deleted file mode 100644 index 879f43a1..00000000 --- a/docs/sdks/authentication/README.md +++ /dev/null @@ -1,175 +0,0 @@ -# Authentication -(*subscribers.authentication*) - -## Overview - -### Available Operations - -* [chatAccessOauthCallBack](#chataccessoauthcallback) - Handle providers oauth redirect -* [chatAccessOauth](#chataccessoauth) - Handle chat oauth - -## chatAccessOauthCallBack - -Handle providers oauth redirect - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.authentication.chatAccessOauthCallBack({ - subscriberId: "", - providerId: "", - code: "", - hmacHash: "", - environmentId: "", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationChatAccessOauthCallBack } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersAuthenticationChatAccessOauthCallBack(novu, { - subscriberId: "", - providerId: "", - code: "", - hmacHash: "", - environmentId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerChatOauthCallbackRequest](../../models/operations/subscriberscontrollerchatoauthcallbackrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerChatOauthCallbackResponse](../../models/operations/subscriberscontrollerchatoauthcallbackresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## chatAccessOauth - -Handle chat oauth - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.authentication.chatAccessOauth({ - subscriberId: "", - providerId: "", - hmacHash: "", - environmentId: "", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersAuthenticationChatAccessOauth } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauth.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersAuthenticationChatAccessOauth(novu, { - subscriberId: "", - providerId: "", - hmacHash: "", - environmentId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerChatAccessOauthRequest](../../models/operations/subscriberscontrollerchataccessoauthrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerChatAccessOauthResponse](../../models/operations/subscriberscontrollerchataccessoauthresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/changes/README.md b/docs/sdks/changes/README.md deleted file mode 100644 index f7fb7a41..00000000 --- a/docs/sdks/changes/README.md +++ /dev/null @@ -1,316 +0,0 @@ -# Changes -(*changes*) - -## Overview - -Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - - -### Available Operations - -* [apply](#apply) - Apply change -* [applyBulk](#applybulk) - Apply changes -* [count](#count) - Get changes count -* [retrieve](#retrieve) - Get changes - -## apply - -Apply change - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.changes.apply(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { changesApply } from "@novu/api/funcs/changesApply.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await changesApply(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `changeId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.ChangeResponseDto[]](../../models/.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## applyBulk - -Apply changes - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.changes.applyBulk({ - changeIds: [ - "", - ], - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { changesApplyBulk } from "@novu/api/funcs/changesApplyBulk.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await changesApplyBulk(novu, { - changeIds: [ - "", - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.BulkApplyChangeDto](../../models/components/bulkapplychangedto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.ChangeResponseDto[]](../../models/.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## count - -Get changes count - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.changes.count(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { changesCount } from "@novu/api/funcs/changesCount.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await changesCount(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.DataNumberDto](../../models/components/datanumberdto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve - -Get changes - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.changes.retrieve({ - promoted: "false", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { changesRetrieve } from "@novu/api/funcs/changesRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await changesRetrieve(novu, { - promoted: "false", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.ChangesControllerGetChangesRequest](../../models/operations/changescontrollergetchangesrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.ChangesResponseDto](../../models/components/changesresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | diff --git a/docs/sdks/credentials/README.md b/docs/sdks/credentials/README.md deleted file mode 100644 index 9d6d880f..00000000 --- a/docs/sdks/credentials/README.md +++ /dev/null @@ -1,251 +0,0 @@ -# Credentials -(*subscribers.credentials*) - -## Overview - -### Available Operations - -* [update](#update) - Update subscriber credentials -* [append](#append) - Modify subscriber credentials -* [delete](#delete) - Delete subscriber credentials by providerId - -## update - -Subscriber credentials associated to the delivery methods such as slack and push tokens. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.credentials.update({ - providerId: "pushpad", - credentials: { - webhookUrl: "https://grown-worth.name", - }, - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersCredentialsUpdate } from "@novu/api/funcs/subscribersCredentialsUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersCredentialsUpdate(novu, { - providerId: "pushpad", - credentials: { - webhookUrl: "https://grown-worth.name", - }, - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerUpdateSubscriberChannelResponse](../../models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## append - -Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.credentials.append({ - providerId: "zulip", - credentials: { - webhookUrl: "https://talkative-pop.org", - }, - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersCredentialsAppend } from "@novu/api/funcs/subscribersCredentialsAppend.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersCredentialsAppend(novu, { - providerId: "zulip", - credentials: { - webhookUrl: "https://talkative-pop.org", - }, - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerModifySubscriberChannelResponse](../../models/operations/subscriberscontrollermodifysubscriberchannelresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## delete - -Delete subscriber credentials such as slack and expo tokens. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.credentials.delete("", ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersCredentialsDelete } from "@novu/api/funcs/subscribersCredentialsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersCredentialsDelete(novu, "", ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `providerId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerDeleteSubscriberCredentialsResponse](../../models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/environments/README.md b/docs/sdks/environments/README.md deleted file mode 100644 index 90933a53..00000000 --- a/docs/sdks/environments/README.md +++ /dev/null @@ -1,154 +0,0 @@ -# Environments -(*environments*) - -## Overview - -Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - - -### Available Operations - -* [retrieve](#retrieve) - Get current environment -* [list](#list) - Get environments - -## retrieve - -Get current environment - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.environments.retrieve(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { environmentsRetrieve } from "@novu/api/funcs/environmentsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await environmentsRetrieve(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse](../../models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## list - -Get environments - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.environments.list(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { environmentsList } from "@novu/api/funcs/environmentsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await environmentsList(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.EnvironmentsControllerV1ListMyEnvironmentsResponse](../../models/operations/environmentscontrollerv1listmyenvironmentsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/executiondetails/README.md b/docs/sdks/executiondetails/README.md deleted file mode 100644 index 150d009c..00000000 --- a/docs/sdks/executiondetails/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# ExecutionDetails -(*executionDetails*) - -## Overview - -Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - - -### Available Operations - -* [retrieve](#retrieve) - Get execution details - -## retrieve - -Get execution details - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.executionDetails.retrieve("", ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { executionDetailsRetrieve } from "@novu/api/funcs/executionDetailsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await executionDetailsRetrieve(novu, "", ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `notificationId` | *string* | :heavy_check_mark: | N/A | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse](../../models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/feeds/README.md b/docs/sdks/feeds/README.md deleted file mode 100644 index 34e12f2b..00000000 --- a/docs/sdks/feeds/README.md +++ /dev/null @@ -1,234 +0,0 @@ -# Feeds -(*feeds*) - -## Overview - -Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - - -### Available Operations - -* [create](#create) - Create feed -* [delete](#delete) - Delete feed -* [retrieve](#retrieve) - Get feeds - -## create - -Create feed - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.feeds.create({ - name: "", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { feedsCreate } from "@novu/api/funcs/feedsCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await feedsCreate(novu, { - name: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateFeedRequestDto](../../models/components/createfeedrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.FeedResponseDto](../../models/components/feedresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## delete - -Delete feed - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.feeds.delete(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { feedsDelete } from "@novu/api/funcs/feedsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await feedsDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `feedId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.FeedResponseDto[]](../../models/.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve - -Get feeds - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.feeds.retrieve(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { feedsRetrieve } from "@novu/api/funcs/feedsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await feedsRetrieve(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.FeedResponseDto[]](../../models/.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | diff --git a/docs/sdks/integrations/README.md b/docs/sdks/integrations/README.md deleted file mode 100644 index e54c9f26..00000000 --- a/docs/sdks/integrations/README.md +++ /dev/null @@ -1,453 +0,0 @@ -# Integrations -(*integrations*) - -## Overview - -With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - - -### Available Operations - -* [list](#list) - Get integrations -* [create](#create) - Create integration -* [listActive](#listactive) - Get active integrations -* [update](#update) - Update integration -* [delete](#delete) - Delete integration -* [setAsPrimary](#setasprimary) - Set integration as primary - -## list - -Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrations.list(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsList } from "@novu/api/funcs/integrationsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsList(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerListIntegrationsResponse](../../models/operations/integrationscontrollerlistintegrationsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## create - -Create an integration for the current environment the user is based on the API key provided - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrations.create({ - providerId: "", - channel: "sms", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsCreate } from "@novu/api/funcs/integrationsCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsCreate(novu, { - providerId: "", - channel: "sms", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateIntegrationRequestDto](../../models/components/createintegrationrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerCreateIntegrationResponse](../../models/operations/integrationscontrollercreateintegrationresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## listActive - -Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrations.listActive(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsListActive } from "@novu/api/funcs/integrationsListActive.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsListActive(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerGetActiveIntegrationsResponse](../../models/operations/integrationscontrollergetactiveintegrationsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## update - -Update integration - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrations.update({}, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsUpdate } from "@novu/api/funcs/integrationsUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsUpdate(novu, {}, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `integrationId` | *string* | :heavy_check_mark: | N/A | -| `updateIntegrationRequestDto` | [components.UpdateIntegrationRequestDto](../../models/components/updateintegrationrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerUpdateIntegrationByIdResponse](../../models/operations/integrationscontrollerupdateintegrationbyidresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## delete - -Delete integration - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrations.delete(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsDelete } from "@novu/api/funcs/integrationsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `integrationId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerRemoveIntegrationResponse](../../models/operations/integrationscontrollerremoveintegrationresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## setAsPrimary - -Set integration as primary - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrations.setAsPrimary(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsSetAsPrimary } from "@novu/api/funcs/integrationsSetAsPrimary.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsSetAsPrimary(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `integrationId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerSetIntegrationAsPrimaryResponse](../../models/operations/integrationscontrollersetintegrationasprimaryresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/layouts/README.md b/docs/sdks/layouts/README.md deleted file mode 100644 index 5dc0ea87..00000000 --- a/docs/sdks/layouts/README.md +++ /dev/null @@ -1,445 +0,0 @@ -# Layouts -(*layouts*) - -## Overview - -Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - - -### Available Operations - -* [create](#create) - Layout creation -* [delete](#delete) - Delete layout -* [list](#list) - Filter layouts -* [retrieve](#retrieve) - Get layout -* [setAsDefault](#setasdefault) - Set default layout -* [update](#update) - Update a layout - -## create - -Create a layout - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.layouts.create(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { layoutsCreate } from "@novu/api/funcs/layoutsCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await layoutsCreate(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.CreateLayoutResponseDto](../../models/components/createlayoutresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## delete - -Execute a soft delete of a layout given a certain ID. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - await novu.layouts.delete(""); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { layoutsDelete } from "@novu/api/funcs/layoutsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await layoutsDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## list - -Returns a list of layouts that can be paginated using the `page` query parameter and filtered by the environment where it is executed from the organization the user belongs to. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - await novu.layouts.list({}); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { layoutsList } from "@novu/api/funcs/layoutsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await layoutsList(novu, {}); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.LayoutsControllerListLayoutsRequest](../../models/operations/layoutscontrollerlistlayoutsrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve - -Get a layout by its ID - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.layouts.retrieve(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { layoutsRetrieve } from "@novu/api/funcs/layoutsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await layoutsRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.GetLayoutResponseDto](../../models/components/getlayoutresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## setAsDefault - -Sets the default layout for the environment and updates to non default to the existing default layout (if any). - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - await novu.layouts.setAsDefault(""); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { layoutsSetAsDefault } from "@novu/api/funcs/layoutsSetAsDefault.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await layoutsSetAsDefault(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## update - -Update the name, content and variables of a layout. Also change it to be default or no. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.layouts.update("", { - identifier: "", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { layoutsUpdate } from "@novu/api/funcs/layoutsUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await layoutsUpdate(novu, "", { - identifier: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `layoutId` | *string* | :heavy_check_mark: | The layout id | -| `updateLayoutRequestDto` | [components.UpdateLayoutRequestDto](../../models/components/updatelayoutrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.UpdateLayoutResponseDto](../../models/components/updatelayoutresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | diff --git a/docs/sdks/messages/README.md b/docs/sdks/messages/README.md deleted file mode 100644 index 3821db0c..00000000 --- a/docs/sdks/messages/README.md +++ /dev/null @@ -1,230 +0,0 @@ -# Messages -(*messages*) - -## Overview - -A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - - -### Available Operations - -* [retrieve](#retrieve) - Get messages -* [delete](#delete) - Delete message -* [deleteByTransactionId](#deletebytransactionid) - Delete messages by transactionId - -## retrieve - -Returns a list of messages, could paginate using the `page` query parameter - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.messages.retrieve({}); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { messagesRetrieve } from "@novu/api/funcs/messagesRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await messagesRetrieve(novu, {}); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.MessagesControllerGetMessagesRequest](../../models/operations/messagescontrollergetmessagesrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.MessagesControllerGetMessagesResponse](../../models/operations/messagescontrollergetmessagesresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## delete - -Deletes a message entity from the Novu platform - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.messages.delete(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { messagesDelete } from "@novu/api/funcs/messagesDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await messagesDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `messageId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.MessagesControllerDeleteMessageResponse](../../models/operations/messagescontrollerdeletemessageresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## deleteByTransactionId - -Deletes messages entity from the Novu platform using TransactionId of message - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.messages.deleteByTransactionId(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { messagesDeleteByTransactionId } from "@novu/api/funcs/messagesDeleteByTransactionId.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await messagesDeleteByTransactionId(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `transactionId` | *string* | :heavy_check_mark: | N/A | -| `channel` | [operations.QueryParamChannel](../../models/operations/queryparamchannel.md) | :heavy_minus_sign: | The channel of the message to be deleted | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.MessagesControllerDeleteMessagesByTransactionIdResponse](../../models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/notifications/README.md b/docs/sdks/notifications/README.md deleted file mode 100644 index 09ed556c..00000000 --- a/docs/sdks/notifications/README.md +++ /dev/null @@ -1,187 +0,0 @@ -# Notifications -(*notifications*) - -## Overview - -### Available Operations - -* [list](#list) - Get notifications -* [retrieve](#retrieve) - Get notification - -## list - -Get notifications - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.notifications.list({ - channels: [ - "sms", - "chat", - "in_app", - ], - templates: [ - "", - ], - emails: [ - "", - ], - search: "", - subscriberIds: [ - "", - "", - ], - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsList } from "@novu/api/funcs/notificationsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsList(novu, { - channels: [ - "sms", - "chat", - "in_app", - ], - templates: [ - "", - ], - emails: [ - "", - ], - search: "", - subscriberIds: [ - "", - "", - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.NotificationsControllerListNotificationsRequest](../../models/operations/notificationscontrollerlistnotificationsrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationsControllerListNotificationsResponse](../../models/operations/notificationscontrollerlistnotificationsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## retrieve - -Get notification - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.notifications.retrieve(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsRetrieve } from "@novu/api/funcs/notificationsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `notificationId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationsControllerGetNotificationResponse](../../models/operations/notificationscontrollergetnotificationresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novu/README.md b/docs/sdks/novu/README.md deleted file mode 100644 index be1d0edb..00000000 --- a/docs/sdks/novu/README.md +++ /dev/null @@ -1,437 +0,0 @@ -# Novu SDK - -## Overview - -Novu API: Novu REST API. Please see https://docs.novu.co/api-reference for more details. - -Novu Documentation - - -### Available Operations - -* [trigger](#trigger) - Trigger event -* [triggerBulk](#triggerbulk) - Bulk trigger event -* [triggerBroadcast](#triggerbroadcast) - Broadcast event to all -* [cancelByTransactionId](#cancelbytransactionid) - Cancel triggered event - -## trigger - - - Trigger event is the main (and only) way to send notifications to subscribers. - The trigger identifier is used to match the particular workflow associated with it. - Additional information can be passed according the body interface below. - - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.trigger({ - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - topicKey: "", - type: "Topic", - }, - ], - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { trigger } from "@novu/api/funcs/trigger.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await trigger(novu, { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - topicKey: "", - type: "Topic", - }, - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.TriggerEventRequestDto](../../models/components/triggereventrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.EventsControllerTriggerResponse](../../models/operations/eventscontrollertriggerresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## triggerBulk - - - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. - - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.triggerBulk({ - events: [ - { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - subscriberId: "", - }, - ], - }, - { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - ], - }, - { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - topicKey: "", - type: "Topic", - }, - ], - }, - ], - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { triggerBulk } from "@novu/api/funcs/triggerBulk.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await triggerBulk(novu, { - events: [ - { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - subscriberId: "", - }, - ], - }, - { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - ], - }, - { - name: "workflow_identifier", - payload: {}, - overrides: {}, - to: [ - { - topicKey: "", - type: "Topic", - }, - { - topicKey: "", - type: "Topic", - }, - ], - }, - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.BulkTriggerEventDto](../../models/components/bulktriggereventdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.EventsControllerTriggerBulkResponse](../../models/operations/eventscontrollertriggerbulkresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## triggerBroadcast - -Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.triggerBroadcast({ - name: "", - payload: {}, - overrides: {}, - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { triggerBroadcast } from "@novu/api/funcs/triggerBroadcast.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await triggerBroadcast(novu, { - name: "", - payload: {}, - overrides: {}, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.TriggerEventToAllRequestDto](../../models/components/triggereventtoallrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.EventsControllerBroadcastEventToAllResponse](../../models/operations/eventscontrollerbroadcasteventtoallresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## cancelByTransactionId - - - Using a previously generated transactionId during the event trigger, - will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.cancelByTransactionId(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { cancelByTransactionId } from "@novu/api/funcs/cancelByTransactionId.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await cancelByTransactionId(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `transactionId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.EventsControllerCancelResponse](../../models/operations/eventscontrollercancelresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novumessages/README.md b/docs/sdks/novumessages/README.md deleted file mode 100644 index a48fcb6d..00000000 --- a/docs/sdks/novumessages/README.md +++ /dev/null @@ -1,252 +0,0 @@ -# NovuMessages -(*subscribers.messages*) - -## Overview - -### Available Operations - -* [markAllAs](#markallas) - Mark a subscriber messages as seen, read, unseen or unread -* [markAll](#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. -* [updateAsSeen](#updateasseen) - Mark message action as seen - -## markAllAs - -Mark a subscriber messages as seen, read, unseen or unread - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.messages.markAllAs({ - messageId: "", - markAs: "read", - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesMarkAllAs } from "@novu/api/funcs/subscribersMessagesMarkAllAs.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesMarkAllAs(novu, { - messageId: "", - markAs: "read", - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `messageMarkAsRequestDto` | [components.MessageMarkAsRequestDto](../../models/components/messagemarkasrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerMarkMessagesAsResponse](../../models/operations/subscriberscontrollermarkmessagesasresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## markAll - -Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.messages.markAll({ - markAs: "seen", - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesMarkAll } from "@novu/api/funcs/subscribersMessagesMarkAll.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesMarkAll(novu, { - markAs: "seen", - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerMarkAllUnreadAsReadResponse](../../models/operations/subscriberscontrollermarkallunreadasreadresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## updateAsSeen - -Mark message action as seen - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.messages.updateAsSeen({ - messageId: "", - type: "", - subscriberId: "", - markMessageActionAsSeenDto: { - status: "done", - }, - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersMessagesUpdateAsSeen } from "@novu/api/funcs/subscribersMessagesUpdateAsSeen.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersMessagesUpdateAsSeen(novu, { - messageId: "", - type: "", - subscriberId: "", - markMessageActionAsSeenDto: { - status: "done", - }, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerMarkActionAsSeenRequest](../../models/operations/subscriberscontrollermarkactionasseenrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerMarkActionAsSeenResponse](../../models/operations/subscriberscontrollermarkactionasseenresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novunotifications/README.md b/docs/sdks/novunotifications/README.md deleted file mode 100644 index 63357980..00000000 --- a/docs/sdks/novunotifications/README.md +++ /dev/null @@ -1,167 +0,0 @@ -# NovuNotifications -(*subscribers.notifications*) - -## Overview - -### Available Operations - -* [retrieve](#retrieve) - Get in-app notification feed for a particular subscriber -* [unseenCount](#unseencount) - Get the unseen in-app notifications count for subscribers feed - -## retrieve - -Get in-app notification feed for a particular subscriber - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.notifications.retrieve({ - subscriberId: "", - payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersNotificationsRetrieve } from "@novu/api/funcs/subscribersNotificationsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersNotificationsRetrieve(novu, { - subscriberId: "", - payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerGetNotificationsFeedRequest](../../models/operations/subscriberscontrollergetnotificationsfeedrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponse](../../models/operations/subscriberscontrollergetnotificationsfeedresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## unseenCount - -Get the unseen in-app notifications count for subscribers feed - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.notifications.unseenCount({ - seen: false, - subscriberId: "", - limit: 2979.49, - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersNotificationsUnseenCount } from "@novu/api/funcs/subscribersNotificationsUnseenCount.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersNotificationsUnseenCount(novu, { - seen: false, - subscriberId: "", - limit: 2979.49, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerGetUnseenCountRequest](../../models/operations/subscriberscontrollergetunseencountrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerGetUnseenCountResponse](../../models/operations/subscriberscontrollergetunseencountresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novusubscribers/README.md b/docs/sdks/novusubscribers/README.md deleted file mode 100644 index caeaf6c7..00000000 --- a/docs/sdks/novusubscribers/README.md +++ /dev/null @@ -1,249 +0,0 @@ -# NovuSubscribers -(*topics.subscribers*) - -## Overview - -### Available Operations - -* [assign](#assign) - Subscribers addition -* [retrieve](#retrieve) - Check topic subscriber -* [delete](#delete) - Subscribers removal - -## assign - -Add subscribers to a topic by key - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.subscribers.assign({ - subscribers: [ - "", - "", - ], - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersAssign } from "@novu/api/funcs/topicsSubscribersAssign.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersAssign(novu, { - subscribers: [ - "", - "", - ], - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `addSubscribersRequestDto` | [components.AddSubscribersRequestDto](../../models/components/addsubscribersrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerAddSubscribersResponse](../../models/operations/topicscontrolleraddsubscribersresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## retrieve - -Check if a subscriber belongs to a certain topic - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.subscribers.retrieve("", ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersRetrieve } from "@novu/api/funcs/topicsSubscribersRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersRetrieve(novu, "", ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `externalSubscriberId` | *string* | :heavy_check_mark: | The external subscriber id | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerGetTopicSubscriberResponse](../../models/operations/topicscontrollergettopicsubscriberresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## delete - -Remove subscribers from a topic - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.subscribers.delete({ - subscribers: [ - "", - "", - ], - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsSubscribersDelete } from "@novu/api/funcs/topicsSubscribersDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsSubscribersDelete(novu, { - subscribers: [ - "", - "", - ], - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerRemoveSubscribersResponse](../../models/operations/topicscontrollerremovesubscribersresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/organizations/README.md b/docs/sdks/organizations/README.md deleted file mode 100644 index a6a2ac8f..00000000 --- a/docs/sdks/organizations/README.md +++ /dev/null @@ -1,244 +0,0 @@ -# Organizations -(*organizations*) - -## Overview - -An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - - -### Available Operations - -* [eeOrganizationControllerRenameOrganization](#eeorganizationcontrollerrenameorganization) - Rename organization name -* [retrieve](#retrieve) - Fetch current organization details -* [update](#update) - Update organization branding details - -## eeOrganizationControllerRenameOrganization - -Rename organization name - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.organizations.eeOrganizationControllerRenameOrganization({ - name: "", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { organizationsEEOrganizationControllerRenameOrganization } from "@novu/api/funcs/organizationsEEOrganizationControllerRenameOrganization.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await organizationsEEOrganizationControllerRenameOrganization(novu, { - name: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.RenameOrganizationDto](../../models/components/renameorganizationdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.RenameOrganizationDto](../../models/components/renameorganizationdto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve - -Fetch current organization details - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.organizations.retrieve(); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { organizationsRetrieve } from "@novu/api/funcs/organizationsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await organizationsRetrieve(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.OrganizationResponseDto](../../models/components/organizationresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## update - -Update organization branding details - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.organizations.update({ - color: "fuchsia", - contentBackground: "", - fontColor: "", - logo: "", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { organizationsUpdate } from "@novu/api/funcs/organizationsUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await organizationsUpdate(novu, { - color: "fuchsia", - contentBackground: "", - fontColor: "", - logo: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.UpdateBrandingDetailsDto](../../models/components/updatebrandingdetailsdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.OrganizationBrandingResponseDto](../../models/components/organizationbrandingresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | diff --git a/docs/sdks/preferences/README.md b/docs/sdks/preferences/README.md deleted file mode 100644 index a8f3b2ce..00000000 --- a/docs/sdks/preferences/README.md +++ /dev/null @@ -1,315 +0,0 @@ -# Preferences -(*subscribers.preferences*) - -## Overview - -### Available Operations - -* [list](#list) - Get subscriber preferences -* [updateGlobal](#updateglobal) - Update subscriber global preferences -* [retrieveByLevel](#retrievebylevel) - Get subscriber preferences by level -* [update](#update) - Update subscriber preference - -## list - -Get subscriber preferences - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.preferences.list(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesList } from "@novu/api/funcs/subscribersPreferencesList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesList(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerListSubscriberPreferencesResponse](../../models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## updateGlobal - -Update subscriber global preferences - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.preferences.updateGlobal({}, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesUpdateGlobal } from "@novu/api/funcs/subscribersPreferencesUpdateGlobal.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesUpdateGlobal(novu, {}, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse](../../models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## retrieveByLevel - -Get subscriber preferences by level - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.preferences.retrieveByLevel({ - parameter: "global", - subscriberId: "", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesRetrieveByLevel } from "@novu/api/funcs/subscribersPreferencesRetrieveByLevel.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesRetrieveByLevel(novu, { - parameter: "global", - subscriberId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest](../../models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse](../../models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## update - -Update subscriber preference - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.preferences.update({ - subscriberId: "", - parameter: "", - updateSubscriberPreferenceRequestDto: {}, - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPreferencesUpdate } from "@novu/api/funcs/subscribersPreferencesUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPreferencesUpdate(novu, { - subscriberId: "", - parameter: "", - updateSubscriberPreferenceRequestDto: {}, - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.SubscribersControllerUpdateSubscriberPreferenceRequest](../../models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerUpdateSubscriberPreferenceResponse](../../models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/properties/README.md b/docs/sdks/properties/README.md deleted file mode 100644 index 3d2dba0a..00000000 --- a/docs/sdks/properties/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# Properties -(*subscribers.properties*) - -## Overview - -### Available Operations - -* [updateOnlineFlag](#updateonlineflag) - Update subscriber online status - -## updateOnlineFlag - -Used to update the subscriber isOnline flag. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.properties.updateOnlineFlag({ - isOnline: true, - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersPropertiesUpdateOnlineFlag } from "@novu/api/funcs/subscribersPropertiesUpdateOnlineFlag.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersPropertiesUpdateOnlineFlag(novu, { - isOnline: true, - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberOnlineFlagRequestDto` | [components.UpdateSubscriberOnlineFlagRequestDto](../../models/components/updatesubscriberonlineflagrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse](../../models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/stats/README.md b/docs/sdks/stats/README.md deleted file mode 100644 index 5cd03b19..00000000 --- a/docs/sdks/stats/README.md +++ /dev/null @@ -1,152 +0,0 @@ -# Stats -(*notifications.stats*) - -## Overview - -### Available Operations - -* [retrieve](#retrieve) - Get notification statistics -* [graph](#graph) - Get notification graph statistics - -## retrieve - -Get notification statistics - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.notifications.stats.retrieve(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsStatsRetrieve } from "@novu/api/funcs/notificationsStatsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsStatsRetrieve(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationsControllerGetActivityStatsResponse](../../models/operations/notificationscontrollergetactivitystatsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## graph - -Get notification graph statistics - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.notifications.stats.graph(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { notificationsStatsGraph } from "@novu/api/funcs/notificationsStatsGraph.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await notificationsStatsGraph(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `days` | *number* | :heavy_minus_sign: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationsControllerGetActivityGraphStatsResponse](../../models/operations/notificationscontrollergetactivitygraphstatsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/subscribers/README.md b/docs/sdks/subscribers/README.md deleted file mode 100644 index 849106c8..00000000 --- a/docs/sdks/subscribers/README.md +++ /dev/null @@ -1,470 +0,0 @@ -# Subscribers -(*subscribers*) - -## 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. - - -### Available Operations - -* [list](#list) - Get subscribers -* [create](#create) - Create subscriber -* [retrieve](#retrieve) - Get subscriber -* [update](#update) - Update subscriber -* [delete](#delete) - Delete subscriber -* [createBulk](#createbulk) - Bulk create subscribers - -## list - -Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.list(); - - for await (const page of result) { - // Handle the page - console.log(page); - } -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersList } from "@novu/api/funcs/subscribersList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersList(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - for await (const page of result) { - // Handle the page - console.log(page); - } -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerListSubscribersResponse](../../models/operations/subscriberscontrollerlistsubscribersresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## create - -Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.create({ - subscriberId: "", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersCreate } from "@novu/api/funcs/subscribersCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersCreate(novu, { - subscriberId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateSubscriberRequestDto](../../models/components/createsubscriberrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerCreateSubscriberResponse](../../models/operations/subscriberscontrollercreatesubscriberresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## retrieve - -Get subscriber by your internal id used to identify the subscriber - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.retrieve(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersRetrieve } from "@novu/api/funcs/subscribersRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `includeTopics` | *string* | :heavy_minus_sign: | Includes the topics associated with the subscriber | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerGetSubscriberResponse](../../models/operations/subscriberscontrollergetsubscriberresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## update - -Used to update the subscriber entity with new information - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.update({}, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersUpdate } from "@novu/api/funcs/subscribersUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersUpdate(novu, {}, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `updateSubscriberRequestDto` | [components.UpdateSubscriberRequestDto](../../models/components/updatesubscriberrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerUpdateSubscriberResponse](../../models/operations/subscriberscontrollerupdatesubscriberresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## delete - -Deletes a subscriber entity from the Novu platform - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.delete(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersDelete } from "@novu/api/funcs/subscribersDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `subscriberId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerRemoveSubscriberResponse](../../models/operations/subscriberscontrollerremovesubscriberresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## createBulk - - - Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - The bulk API is limited to 500 subscribers per request. - - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.subscribers.createBulk({ - subscribers: [ - "", - ], - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { subscribersCreateBulk } from "@novu/api/funcs/subscribersCreateBulk.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await subscribersCreateBulk(novu, { - subscribers: [ - "", - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.BulkSubscriberCreateDto](../../models/components/bulksubscribercreatedto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.SubscribersControllerBulkCreateSubscribersResponse](../../models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/tenants/README.md b/docs/sdks/tenants/README.md deleted file mode 100644 index db8e9564..00000000 --- a/docs/sdks/tenants/README.md +++ /dev/null @@ -1,387 +0,0 @@ -# Tenants -(*tenants*) - -## Overview - -A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - - -### Available Operations - -* [create](#create) - Create tenant -* [delete](#delete) - Delete tenant -* [list](#list) - Get tenants -* [retrieve](#retrieve) - Get tenant -* [update](#update) - Update tenant - -## create - -Create tenant under the current environment Tenants is not supported in code first version of the API. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.tenants.create({ - identifier: "", - name: "", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { tenantsCreate } from "@novu/api/funcs/tenantsCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await tenantsCreate(novu, { - identifier: "", - name: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateTenantRequestDto](../../models/components/createtenantrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.CreateTenantResponseDto](../../models/components/createtenantresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## delete - -Deletes a tenant entity from the Novu platform. Tenants is not supported in code first version of the API. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - await novu.tenants.delete(""); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { tenantsDelete } from "@novu/api/funcs/tenantsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await tenantsDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## list - -Returns a list of tenants, could paginated using the `page` and `limit` query parameter. Tenants is not supported in code first version of the API. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.tenants.list(); - - for await (const page of result) { - // Handle the page - console.log(page); - } -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { tenantsList } from "@novu/api/funcs/tenantsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await tenantsList(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - for await (const page of result) { - // Handle the page - console.log(page); - } -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `page` | *number* | :heavy_minus_sign: | N/A | -| `limit` | *number* | :heavy_minus_sign: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TenantControllerListTenantsResponse](../../models/operations/tenantcontrollerlisttenantsresponse.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve - -Get tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.tenants.retrieve(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { tenantsRetrieve } from "@novu/api/funcs/tenantsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await tenantsRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.GetTenantResponseDto](../../models/components/gettenantresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## update - -Update tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API. - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.tenants.update("", {}); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { tenantsUpdate } from "@novu/api/funcs/tenantsUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await tenantsUpdate(novu, "", {}); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `identifier` | *string* | :heavy_check_mark: | N/A | -| `updateTenantRequestDto` | [components.UpdateTenantRequestDto](../../models/components/updatetenantrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.UpdateTenantResponseDto](../../models/components/updatetenantresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | diff --git a/docs/sdks/topics/README.md b/docs/sdks/topics/README.md deleted file mode 100644 index 6bfcdf0e..00000000 --- a/docs/sdks/topics/README.md +++ /dev/null @@ -1,386 +0,0 @@ -# Topics -(*topics*) - -## 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. - - -### Available Operations - -* [create](#create) - Topic creation -* [list](#list) - Filter topics -* [delete](#delete) - Delete topic -* [retrieve](#retrieve) - Get topic -* [rename](#rename) - Rename a topic - -## create - -Create a topic - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.create({ - key: "", - name: "", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsCreate } from "@novu/api/funcs/topicsCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsCreate(novu, { - key: "", - name: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateTopicRequestDto](../../models/components/createtopicrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerCreateTopicResponse](../../models/operations/topicscontrollercreatetopicresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## list - -Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.list({}); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsList } from "@novu/api/funcs/topicsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsList(novu, {}); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.TopicsControllerListTopicsRequest](../../models/operations/topicscontrollerlisttopicsrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerListTopicsResponse](../../models/operations/topicscontrollerlisttopicsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## delete - -Delete a topic by its topic key if it has no subscribers - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.delete(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsDelete } from "@novu/api/funcs/topicsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerDeleteTopicResponse](../../models/operations/topicscontrollerdeletetopicresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## retrieve - -Get a topic by its topic key - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.retrieve(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsRetrieve } from "@novu/api/funcs/topicsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerGetTopicResponse](../../models/operations/topicscontrollergettopicresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## rename - -Rename a topic by providing a new name - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.topics.rename({ - name: "", - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { topicsRename } from "@novu/api/funcs/topicsRename.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await topicsRename(novu, { - name: "", - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `topicKey` | *string* | :heavy_check_mark: | The topic key | -| `renameTopicRequestDto` | [components.RenameTopicRequestDto](../../models/components/renametopicrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.TopicsControllerRenameTopicResponse](../../models/operations/topicscontrollerrenametopicresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/webhooks/README.md b/docs/sdks/webhooks/README.md deleted file mode 100644 index 5497d0aa..00000000 --- a/docs/sdks/webhooks/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# Webhooks -(*integrations.webhooks*) - -## Overview - -### Available Operations - -* [retrieve](#retrieve) - Get webhook support status for provider - -## retrieve - -Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.integrations.webhooks.retrieve(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { integrationsWebhooksRetrieve } from "@novu/api/funcs/integrationsWebhooksRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await integrationsWebhooksRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.IntegrationsControllerGetWebhookSupportStatusResponse](../../models/operations/integrationscontrollergetwebhooksupportstatusresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/workflowgroups/README.md b/docs/sdks/workflowgroups/README.md deleted file mode 100644 index d0d7e3ba..00000000 --- a/docs/sdks/workflowgroups/README.md +++ /dev/null @@ -1,382 +0,0 @@ -# WorkflowGroups -(*workflowGroups*) - -## Overview - -Workflow groups are used to organize workflows into logical groups. - -### Available Operations - -* [create](#create) - Create workflow group -* [list](#list) - Get workflow groups -* [retrieve](#retrieve) - Get workflow group -* [update](#update) - Update workflow group -* [delete](#delete) - Delete workflow group - -## create - -workflow group was previously named notification group - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflowGroups.create({ - name: "", - }); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsCreate } from "@novu/api/funcs/workflowGroupsCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowGroupsCreate(novu, { - name: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationGroupsControllerCreateNotificationGroupResponse](../../models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## list - -workflow group was previously named notification group - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflowGroups.list(); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsList } from "@novu/api/funcs/workflowGroupsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowGroupsList(novu); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationGroupsControllerListNotificationGroupsResponse](../../models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## retrieve - -workflow group was previously named notification group - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflowGroups.retrieve(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsRetrieve } from "@novu/api/funcs/workflowGroupsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowGroupsRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationGroupsControllerGetNotificationGroupResponse](../../models/operations/notificationgroupscontrollergetnotificationgroupresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## update - -workflow group was previously named notification group - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflowGroups.update({ - name: "", - }, ""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsUpdate } from "@novu/api/funcs/workflowGroupsUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowGroupsUpdate(novu, { - name: "", - }, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | -| `createNotificationGroupRequestDto` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationGroupsControllerUpdateNotificationGroupResponse](../../models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | - -## delete - -workflow group was previously named notification group - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflowGroups.delete(""); - - // Handle the result - console.log(result); -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowGroupsDelete } from "@novu/api/funcs/workflowGroupsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowGroupsDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result); -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[operations.NotificationGroupsControllerDeleteNotificationGroupResponse](../../models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md)\>** - -### Errors - -| Error Type | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/workflows/README.md b/docs/sdks/workflows/README.md deleted file mode 100644 index 184dc471..00000000 --- a/docs/sdks/workflows/README.md +++ /dev/null @@ -1,398 +0,0 @@ -# Workflows -(*workflows*) - -## Overview - -All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - - -### Available Operations - -* [create](#create) - Create workflow -* [delete](#delete) - Delete workflow -* [list](#list) - Get workflows -* [retrieve](#retrieve) - Get workflow -* [update](#update) - Update workflow - -## create - -Workflow was previously named notification template - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflows.create({ - name: "", - notificationGroupId: "", - steps: [ - - ], - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowsCreate } from "@novu/api/funcs/workflowsCreate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowsCreate(novu, { - name: "", - notificationGroupId: "", - steps: [ - - ], - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.CreateWorkflowRequestDto](../../models/components/createworkflowrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.WorkflowResponse](../../models/components/workflowresponse.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## delete - -Workflow was previously named notification template - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflows.delete(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowsDelete } from "@novu/api/funcs/workflowsDelete.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowsDelete(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.DataBooleanDto](../../models/components/databooleandto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## list - -Workflows were previously named notification templates - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflows.list({}); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowsList } from "@novu/api/funcs/workflowsList.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowsList(novu, {}); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [operations.WorkflowControllerListWorkflowsRequest](../../models/operations/workflowcontrollerlistworkflowsrequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.WorkflowsResponseDto](../../models/components/workflowsresponsedto.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## retrieve - -Workflow was previously named notification template - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflows.retrieve(""); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowsRetrieve } from "@novu/api/funcs/workflowsRetrieve.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowsRetrieve(novu, ""); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.WorkflowResponse](../../models/components/workflowresponse.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | - - -## update - -Workflow was previously named notification template - -### Example Usage - -```typescript -import { Novu } from "@novu/api"; - -const novu = new Novu({ - apiKey: "", -}); - -async function run() { - const result = await novu.workflows.update("", { - name: "", - notificationGroupId: "", - }); - - // Handle the result - console.log(result) -} - -run(); -``` - -### Standalone function - -The standalone function version of this method: - -```typescript -import { NovuCore } from "@novu/api/core.js"; -import { workflowsUpdate } from "@novu/api/funcs/workflowsUpdate.js"; - -// Use `NovuCore` for best tree-shaking performance. -// You can create one instance of it to use across an application. -const novu = new NovuCore({ - apiKey: "", -}); - -async function run() { - const res = await workflowsUpdate(novu, "", { - name: "", - notificationGroupId: "", - }); - - if (!res.ok) { - throw res.error; - } - - const { value: result } = res; - - // Handle the result - console.log(result) -} - -run(); -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `workflowId` | *string* | :heavy_check_mark: | N/A | -| `updateWorkflowRequestDto` | [components.UpdateWorkflowRequestDto](../../models/components/updateworkflowrequestdto.md) | :heavy_check_mark: | N/A | -| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | -| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | -| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | - -### Response - -**Promise\<[components.WorkflowResponse](../../models/components/workflowresponse.md)\>** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------- | --------------- | --------------- | -| errors.SDKError | 4xx-5xx | */* | diff --git a/src/core.ts b/src/core.ts deleted file mode 100644 index 8e7a79d7..00000000 --- a/src/core.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { ClientSDK } from "./lib/sdks.js"; - -/** - * A minimal client to use when calling standalone SDK functions. Typically, an - * instance of this class would be instantiated once at the start of an - * application and passed around through some dependency injection mechanism to - * parts of an application that need to make SDK calls. - */ -export class NovuCore extends ClientSDK {} diff --git a/src/funcs/cancelByTransactionId.ts b/src/funcs/cancelByTransactionId.ts deleted file mode 100644 index 6198c6de..00000000 --- a/src/funcs/cancelByTransactionId.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Cancel triggered event - * - * @remarks - * - * Using a previously generated transactionId during the event trigger, - * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - */ -export async function cancelByTransactionId( - client: NovuCore, - transactionId: string, - options?: RequestOptions, -): Promise< - Result< - operations.EventsControllerCancelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.EventsControllerCancelRequest = { - transactionId: transactionId, - }; - - const parsed = safeParse( - input, - (value) => - operations.EventsControllerCancelRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - transactionId: encodeSimple("transactionId", payload.transactionId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EventsController_cancel", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EventsControllerCancelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(200, operations.EventsControllerCancelResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/changesApply.ts b/src/funcs/changesApply.ts deleted file mode 100644 index f30b617c..00000000 --- a/src/funcs/changesApply.ts +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Apply change - */ -export async function changesApply( - client$: NovuCore, - changeId: string, - options?: RequestOptions, -): Promise< - Result< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.ChangesControllerApplyDiffRequest = { - changeId: changeId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.ChangesControllerApplyDiffRequest$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - changeId: encodeSimple$("changeId", payload$.changeId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/changes/{changeId}/apply")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "ChangesController_applyDiff", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(201, z.array(components.ChangeResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/changesApplyBulk.ts b/src/funcs/changesApplyBulk.ts deleted file mode 100644 index 9ddabb21..00000000 --- a/src/funcs/changesApplyBulk.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Apply changes - */ -export async function changesApplyBulk( - client$: NovuCore, - request: components.BulkApplyChangeDto, - options?: RequestOptions, -): Promise< - Result< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.BulkApplyChangeDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/changes/bulk/apply")(); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "ChangesController_bulkApplyDiff", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(201, z.array(components.ChangeResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/changesCount.ts b/src/funcs/changesCount.ts deleted file mode 100644 index 1d9569b6..00000000 --- a/src/funcs/changesCount.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Get changes count - */ -export async function changesCount( - client$: NovuCore, - options?: RequestOptions, -): Promise< - Result< - components.DataNumberDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path$ = pathToFunc("/v1/changes/count")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "ChangesController_getChangesCount", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.DataNumberDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.DataNumberDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/changesRetrieve.ts b/src/funcs/changesRetrieve.ts deleted file mode 100644 index a7d6e940..00000000 --- a/src/funcs/changesRetrieve.ts +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get changes - */ -export async function changesRetrieve( - client$: NovuCore, - request: operations.ChangesControllerGetChangesRequest, - options?: RequestOptions, -): Promise< - Result< - components.ChangesResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.ChangesControllerGetChangesRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const path$ = pathToFunc("/v1/changes")(); - - const query$ = encodeFormQuery$({ - "limit": payload$.limit, - "page": payload$.page, - "promoted": payload$.promoted, - }); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "ChangesController_getChanges", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.ChangesResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.ChangesResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/environmentsApiKeysList.ts b/src/funcs/environmentsApiKeysList.ts deleted file mode 100644 index 834bb9a3..00000000 --- a/src/funcs/environmentsApiKeysList.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get api keys - */ -export async function environmentsApiKeysList( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/environments/api-keys")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EnvironmentsControllerV1_listOrganizationApiKeys", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/environmentsList.ts b/src/funcs/environmentsList.ts deleted file mode 100644 index a89ef071..00000000 --- a/src/funcs/environmentsList.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get environments - */ -export async function environmentsList( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/environments")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EnvironmentsControllerV1_listMyEnvironments", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/environmentsRetrieve.ts b/src/funcs/environmentsRetrieve.ts deleted file mode 100644 index dfbd74df..00000000 --- a/src/funcs/environmentsRetrieve.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get current environment - */ -export async function environmentsRetrieve( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/environments/me")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EnvironmentsControllerV1_getCurrentEnvironment", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/executionDetailsRetrieve.ts b/src/funcs/executionDetailsRetrieve.ts deleted file mode 100644 index 75a9bd93..00000000 --- a/src/funcs/executionDetailsRetrieve.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get execution details - */ -export async function executionDetailsRetrieve( - client: NovuCore, - notificationId: string, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = - { - notificationId: notificationId, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/execution-details")(); - - const query = encodeFormQuery({ - "notificationId": payload.notificationId, - "subscriberId": payload.subscriberId, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: - "ExecutionDetailsController_getExecutionDetailsForNotification", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/feedsCreate.ts b/src/funcs/feedsCreate.ts deleted file mode 100644 index 7a72681c..00000000 --- a/src/funcs/feedsCreate.ts +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Create feed - */ -export async function feedsCreate( - client$: NovuCore, - request: components.CreateFeedRequestDto, - options?: RequestOptions, -): Promise< - Result< - components.FeedResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.CreateFeedRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/feeds")(); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "FeedsController_createFeed", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.FeedResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(201, components.FeedResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/feedsDelete.ts b/src/funcs/feedsDelete.ts deleted file mode 100644 index 4fb59744..00000000 --- a/src/funcs/feedsDelete.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete feed - */ -export async function feedsDelete( - client$: NovuCore, - feedId: string, - options?: RequestOptions, -): Promise< - Result< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.FeedsControllerDeleteFeedByIdRequest = { - feedId: feedId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.FeedsControllerDeleteFeedByIdRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - feedId: encodeSimple$("feedId", payload$.feedId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/feeds/{feedId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "FeedsController_deleteFeedById", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, z.array(components.FeedResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/feedsRetrieve.ts b/src/funcs/feedsRetrieve.ts deleted file mode 100644 index 8ee75fe9..00000000 --- a/src/funcs/feedsRetrieve.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Get feeds - */ -export async function feedsRetrieve( - client$: NovuCore, - options?: RequestOptions, -): Promise< - Result< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path$ = pathToFunc("/v1/feeds")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "FeedsController_getFeeds", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - Array, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, z.array(components.FeedResponseDto$inboundSchema)), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/integrationsCreate.ts b/src/funcs/integrationsCreate.ts deleted file mode 100644 index 85abc07a..00000000 --- a/src/funcs/integrationsCreate.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Create integration - * - * @remarks - * Create an integration for the current environment the user is based on the API key provided - */ -export async function integrationsCreate( - client: NovuCore, - request: components.CreateIntegrationRequestDto, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerCreateIntegrationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - components.CreateIntegrationRequestDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/integrations")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_createIntegration", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerCreateIntegrationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 201, - operations.IntegrationsControllerCreateIntegrationResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsDelete.ts b/src/funcs/integrationsDelete.ts deleted file mode 100644 index 564e1e4d..00000000 --- a/src/funcs/integrationsDelete.ts +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete integration - */ -export async function integrationsDelete( - client: NovuCore, - integrationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerRemoveIntegrationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.IntegrationsControllerRemoveIntegrationRequest = { - integrationId: integrationId, - }; - - const parsed = safeParse( - input, - (value) => - operations.IntegrationsControllerRemoveIntegrationRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - integrationId: encodeSimple("integrationId", payload.integrationId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_removeIntegration", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerRemoveIntegrationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.IntegrationsControllerRemoveIntegrationResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsList.ts b/src/funcs/integrationsList.ts deleted file mode 100644 index bf621189..00000000 --- a/src/funcs/integrationsList.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get integrations - * - * @remarks - * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - */ -export async function integrationsList( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerListIntegrationsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/integrations")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_listIntegrations", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerListIntegrationsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.IntegrationsControllerListIntegrationsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsListActive.ts b/src/funcs/integrationsListActive.ts deleted file mode 100644 index aaeba337..00000000 --- a/src/funcs/integrationsListActive.ts +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get active integrations - * - * @remarks - * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - */ -export async function integrationsListActive( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerGetActiveIntegrationsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/integrations/active")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_getActiveIntegrations", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerGetActiveIntegrationsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsSetAsPrimary.ts b/src/funcs/integrationsSetAsPrimary.ts deleted file mode 100644 index e3baf90e..00000000 --- a/src/funcs/integrationsSetAsPrimary.ts +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Set integration as primary - */ -export async function integrationsSetAsPrimary( - client: NovuCore, - integrationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.IntegrationsControllerSetIntegrationAsPrimaryRequest = - { - integrationId: integrationId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - integrationId: encodeSimple("integrationId", payload.integrationId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/integrations/{integrationId}/set-primary")( - pathParams, - ); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_setIntegrationAsPrimary", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([404, 409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsUpdate.ts b/src/funcs/integrationsUpdate.ts deleted file mode 100644 index 75764de9..00000000 --- a/src/funcs/integrationsUpdate.ts +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update integration - */ -export async function integrationsUpdate( - client: NovuCore, - updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, - integrationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerUpdateIntegrationByIdResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.IntegrationsControllerUpdateIntegrationByIdRequest = { - updateIntegrationRequestDto: updateIntegrationRequestDto, - integrationId: integrationId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.UpdateIntegrationRequestDto, { - explode: true, - }); - - const pathParams = { - integrationId: encodeSimple("integrationId", payload.integrationId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_updateIntegrationById", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PUT", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerUpdateIntegrationByIdResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([404, 409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/integrationsWebhooksRetrieve.ts b/src/funcs/integrationsWebhooksRetrieve.ts deleted file mode 100644 index 2f11ee97..00000000 --- a/src/funcs/integrationsWebhooksRetrieve.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get webhook support status for provider - * - * @remarks - * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - */ -export async function integrationsWebhooksRetrieve( - client: NovuCore, - providerOrIntegrationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.IntegrationsControllerGetWebhookSupportStatusResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.IntegrationsControllerGetWebhookSupportStatusRequest = - { - providerOrIntegrationId: providerOrIntegrationId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - providerOrIntegrationId: encodeSimple( - "providerOrIntegrationId", - payload.providerOrIntegrationId, - { explode: false, charEncoding: "percent" }, - ), - }; - - const path = pathToFunc( - "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status", - )(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "IntegrationsController_getWebhookSupportStatus", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.IntegrationsControllerGetWebhookSupportStatusResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/layoutsCreate.ts b/src/funcs/layoutsCreate.ts deleted file mode 100644 index 16783977..00000000 --- a/src/funcs/layoutsCreate.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Layout creation - * - * @remarks - * Create a layout - */ -export async function layoutsCreate( - client$: NovuCore, - options?: RequestOptions, -): Promise< - Result< - components.CreateLayoutResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path$ = pathToFunc("/v1/layouts")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "LayoutsController_PropertyDescriptor", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.CreateLayoutResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(201, components.CreateLayoutResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/layoutsDelete.ts b/src/funcs/layoutsDelete.ts deleted file mode 100644 index 1cf04f2b..00000000 --- a/src/funcs/layoutsDelete.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete layout - * - * @remarks - * Execute a soft delete of a layout given a certain ID. - */ -export async function layoutsDelete( - client$: NovuCore, - layoutId: string, - options?: RequestOptions, -): Promise< - Result< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.LayoutsControllerDeleteLayoutRequest = { - layoutId: layoutId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.LayoutsControllerDeleteLayoutRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - layoutId: encodeSimple$("layoutId", payload$.layoutId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/layouts/{layoutId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "*/*", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "LayoutsController_deleteLayout", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.nil(204, z.void()), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/layoutsList.ts b/src/funcs/layoutsList.ts deleted file mode 100644 index 5e373cd4..00000000 --- a/src/funcs/layoutsList.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Filter layouts - * - * @remarks - * Returns a list of layouts that can be paginated using the `page` query parameter and filtered by the environment where it is executed from the organization the user belongs to. - */ -export async function layoutsList( - client$: NovuCore, - request: operations.LayoutsControllerListLayoutsRequest, - options?: RequestOptions, -): Promise< - Result< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.LayoutsControllerListLayoutsRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const path$ = pathToFunc("/v1/layouts")(); - - const query$ = encodeFormQuery$({ - "orderBy": payload$.orderBy, - "page": payload$.page, - "pageSize": payload$.pageSize, - "sortBy": payload$.sortBy, - }); - - const headers$ = new Headers({ - Accept: "*/*", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "LayoutsController_listLayouts", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["400", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.nil(200, z.void()), - m$.fail([400, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/layoutsRetrieve.ts b/src/funcs/layoutsRetrieve.ts deleted file mode 100644 index ece864d4..00000000 --- a/src/funcs/layoutsRetrieve.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get layout - * - * @remarks - * Get a layout by its ID - */ -export async function layoutsRetrieve( - client$: NovuCore, - layoutId: string, - options?: RequestOptions, -): Promise< - Result< - components.GetLayoutResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.LayoutsControllerGetLayoutRequest = { - layoutId: layoutId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.LayoutsControllerGetLayoutRequest$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - layoutId: encodeSimple$("layoutId", payload$.layoutId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/layouts/{layoutId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "LayoutsController_getLayout", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.GetLayoutResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.GetLayoutResponseDto$inboundSchema), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/layoutsSetAsDefault.ts b/src/funcs/layoutsSetAsDefault.ts deleted file mode 100644 index 0db331fe..00000000 --- a/src/funcs/layoutsSetAsDefault.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Set default layout - * - * @remarks - * Sets the default layout for the environment and updates to non default to the existing default layout (if any). - */ -export async function layoutsSetAsDefault( - client$: NovuCore, - layoutId: string, - options?: RequestOptions, -): Promise< - Result< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.LayoutsControllerSetDefaultLayoutRequest = { - layoutId: layoutId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.LayoutsControllerSetDefaultLayoutRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - layoutId: encodeSimple$("layoutId", payload$.layoutId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/layouts/{layoutId}/default")(pathParams$); - - const headers$ = new Headers({ - Accept: "*/*", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "LayoutsController_setDefaultLayout", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.nil(204, z.void()), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/layoutsUpdate.ts b/src/funcs/layoutsUpdate.ts deleted file mode 100644 index a5015fd0..00000000 --- a/src/funcs/layoutsUpdate.ts +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update a layout - * - * @remarks - * Update the name, content and variables of a layout. Also change it to be default or no. - */ -export async function layoutsUpdate( - client$: NovuCore, - layoutId: string, - updateLayoutRequestDto: components.UpdateLayoutRequestDto, - options?: RequestOptions, -): Promise< - Result< - components.UpdateLayoutResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.LayoutsControllerUpdateLayoutRequest = { - layoutId: layoutId, - updateLayoutRequestDto: updateLayoutRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.LayoutsControllerUpdateLayoutRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.UpdateLayoutRequestDto, { - explode: true, - }); - - const pathParams$ = { - layoutId: encodeSimple$("layoutId", payload$.layoutId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/layouts/{layoutId}")(pathParams$); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "LayoutsController_updateLayout", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["400", "404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.UpdateLayoutResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.UpdateLayoutResponseDto$inboundSchema), - m$.fail([400, 404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/messagesDelete.ts b/src/funcs/messagesDelete.ts deleted file mode 100644 index b7a5121a..00000000 --- a/src/funcs/messagesDelete.ts +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete message - * - * @remarks - * Deletes a message entity from the Novu platform - */ -export async function messagesDelete( - client: NovuCore, - messageId: string, - options?: RequestOptions, -): Promise< - Result< - operations.MessagesControllerDeleteMessageResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.MessagesControllerDeleteMessageRequest = { - messageId: messageId, - }; - - const parsed = safeParse( - input, - (value) => - operations.MessagesControllerDeleteMessageRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - messageId: encodeSimple("messageId", payload.messageId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/messages/{messageId}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "MessagesController_deleteMessage", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.MessagesControllerDeleteMessageResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.MessagesControllerDeleteMessageResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/messagesDeleteByTransactionId.ts b/src/funcs/messagesDeleteByTransactionId.ts deleted file mode 100644 index 74617b66..00000000 --- a/src/funcs/messagesDeleteByTransactionId.ts +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete messages by transactionId - * - * @remarks - * Deletes messages entity from the Novu platform using TransactionId of message - */ -export async function messagesDeleteByTransactionId( - client: NovuCore, - transactionId: string, - channel?: operations.QueryParamChannel | undefined, - options?: RequestOptions, -): Promise< - Result< - | operations.MessagesControllerDeleteMessagesByTransactionIdResponse - | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.MessagesControllerDeleteMessagesByTransactionIdRequest = { - transactionId: transactionId, - channel: channel, - }; - - const parsed = safeParse( - input, - (value) => - operations - .MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - transactionId: encodeSimple("transactionId", payload.transactionId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/messages/transaction/{transactionId}")( - pathParams, - ); - - const query = encodeFormQuery({ - "channel": payload.channel, - }); - - const headers = new Headers({ - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "MessagesController_deleteMessagesByTransactionId", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - | operations.MessagesControllerDeleteMessagesByTransactionIdResponse - | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 204, - operations - .MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema - .optional(), - { hdrs: true }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/messagesRetrieve.ts b/src/funcs/messagesRetrieve.ts deleted file mode 100644 index a6c96530..00000000 --- a/src/funcs/messagesRetrieve.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get messages - * - * @remarks - * Returns a list of messages, could paginate using the `page` query parameter - */ -export async function messagesRetrieve( - client: NovuCore, - request: operations.MessagesControllerGetMessagesRequest, - options?: RequestOptions, -): Promise< - Result< - operations.MessagesControllerGetMessagesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.MessagesControllerGetMessagesRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/messages")(); - - const query = encodeFormQuery({ - "channel": payload.channel, - "limit": payload.limit, - "page": payload.page, - "subscriberId": payload.subscriberId, - "transactionId": payload.transactionId, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "MessagesController_getMessages", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.MessagesControllerGetMessagesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.MessagesControllerGetMessagesResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/notificationsList.ts b/src/funcs/notificationsList.ts deleted file mode 100644 index b81a75be..00000000 --- a/src/funcs/notificationsList.ts +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get notifications - */ -export async function notificationsList( - client: NovuCore, - request: operations.NotificationsControllerListNotificationsRequest, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationsControllerListNotificationsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.NotificationsControllerListNotificationsRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/notifications")(); - - const query = encodeFormQuery({ - "channels": payload.channels, - "emails": payload.emails, - "page": payload.page, - "search": payload.search, - "subscriberIds": payload.subscriberIds, - "templates": payload.templates, - "transactionId": payload.transactionId, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationsController_listNotifications", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationsControllerListNotificationsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.NotificationsControllerListNotificationsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/notificationsRetrieve.ts b/src/funcs/notificationsRetrieve.ts deleted file mode 100644 index c18ce6a2..00000000 --- a/src/funcs/notificationsRetrieve.ts +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get notification - */ -export async function notificationsRetrieve( - client: NovuCore, - notificationId: string, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationsControllerGetNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.NotificationsControllerGetNotificationRequest = { - notificationId: notificationId, - }; - - const parsed = safeParse( - input, - (value) => - operations.NotificationsControllerGetNotificationRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - notificationId: encodeSimple("notificationId", payload.notificationId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/notifications/{notificationId}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationsController_getNotification", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationsControllerGetNotificationResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.NotificationsControllerGetNotificationResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/notificationsStatsGraph.ts b/src/funcs/notificationsStatsGraph.ts deleted file mode 100644 index 518bac45..00000000 --- a/src/funcs/notificationsStatsGraph.ts +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get notification graph statistics - */ -export async function notificationsStatsGraph( - client: NovuCore, - days?: number | undefined, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationsControllerGetActivityGraphStatsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.NotificationsControllerGetActivityGraphStatsRequest = - { - days: days, - }; - - const parsed = safeParse( - input, - (value) => - operations - .NotificationsControllerGetActivityGraphStatsRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/notifications/graph/stats")(); - - const query = encodeFormQuery({ - "days": payload.days, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationsController_getActivityGraphStats", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationsControllerGetActivityGraphStatsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .NotificationsControllerGetActivityGraphStatsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/notificationsStatsRetrieve.ts b/src/funcs/notificationsStatsRetrieve.ts deleted file mode 100644 index d90ece34..00000000 --- a/src/funcs/notificationsStatsRetrieve.ts +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get notification statistics - */ -export async function notificationsStatsRetrieve( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationsControllerGetActivityStatsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/notifications/stats")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationsController_getActivityStats", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationsControllerGetActivityStatsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.NotificationsControllerGetActivityStatsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/organizationsEEOrganizationControllerRenameOrganization.ts b/src/funcs/organizationsEEOrganizationControllerRenameOrganization.ts deleted file mode 100644 index a5a583de..00000000 --- a/src/funcs/organizationsEEOrganizationControllerRenameOrganization.ts +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Rename organization name - */ -export async function organizationsEEOrganizationControllerRenameOrganization( - client$: NovuCore, - request: components.RenameOrganizationDto, - options?: RequestOptions, -): Promise< - Result< - components.RenameOrganizationDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.RenameOrganizationDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/organizations")(); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EEOrganizationController_renameOrganization", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.RenameOrganizationDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.RenameOrganizationDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/organizationsRetrieve.ts b/src/funcs/organizationsRetrieve.ts deleted file mode 100644 index fcb079be..00000000 --- a/src/funcs/organizationsRetrieve.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Fetch current organization details - */ -export async function organizationsRetrieve( - client$: NovuCore, - options?: RequestOptions, -): Promise< - Result< - components.OrganizationResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path$ = pathToFunc("/v1/organizations/me")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EEOrganizationController_getMyOrganization", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.OrganizationResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.OrganizationResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/organizationsUpdate.ts b/src/funcs/organizationsUpdate.ts deleted file mode 100644 index be4f456f..00000000 --- a/src/funcs/organizationsUpdate.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Update organization branding details - */ -export async function organizationsUpdate( - client$: NovuCore, - request: components.UpdateBrandingDetailsDto, - options?: RequestOptions, -): Promise< - Result< - components.OrganizationBrandingResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - components.UpdateBrandingDetailsDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/organizations/branding")(); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "EEOrganizationController_updateBrandingDetails", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PUT", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.OrganizationBrandingResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.OrganizationBrandingResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/subscribersAuthenticationChatAccessOauth.ts b/src/funcs/subscribersAuthenticationChatAccessOauth.ts deleted file mode 100644 index 08684004..00000000 --- a/src/funcs/subscribersAuthenticationChatAccessOauth.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Handle chat oauth - */ -export async function subscribersAuthenticationChatAccessOauth( - client: NovuCore, - request: operations.SubscribersControllerChatAccessOauthRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerChatAccessOauthResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerChatAccessOauthRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - providerId: encodeSimple("providerId", payload.providerId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth", - )(pathParams); - - const query = encodeFormQuery({ - "environmentId": payload.environmentId, - "hmacHash": payload.hmacHash, - "integrationIdentifier": payload.integrationIdentifier, - }); - - const headers = new Headers({ - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_chatAccessOauth", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerChatAccessOauthResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 200, - operations.SubscribersControllerChatAccessOauthResponse$inboundSchema - .optional(), - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts b/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts deleted file mode 100644 index f4d70e72..00000000 --- a/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Handle providers oauth redirect - */ -export async function subscribersAuthenticationChatAccessOauthCallBack( - client: NovuCore, - request: operations.SubscribersControllerChatOauthCallbackRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerChatOauthCallbackResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerChatOauthCallbackRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - providerId: encodeSimple("providerId", payload.providerId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback", - )(pathParams); - - const query = encodeFormQuery({ - "code": payload.code, - "environmentId": payload.environmentId, - "hmacHash": payload.hmacHash, - "integrationIdentifier": payload.integrationIdentifier, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_chatOauthCallback", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerChatOauthCallbackResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerChatOauthCallbackResponse$inboundSchema, - { key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersCreate.ts b/src/funcs/subscribersCreate.ts deleted file mode 100644 index 3b5f1f56..00000000 --- a/src/funcs/subscribersCreate.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Create subscriber - * - * @remarks - * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - */ -export async function subscribersCreate( - client: NovuCore, - request: components.CreateSubscriberRequestDto, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerCreateSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - components.CreateSubscriberRequestDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/subscribers")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_createSubscriber", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerCreateSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 201, - operations.SubscribersControllerCreateSubscriberResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersCreateBulk.ts b/src/funcs/subscribersCreateBulk.ts deleted file mode 100644 index 009682f8..00000000 --- a/src/funcs/subscribersCreateBulk.ts +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Bulk create subscribers - * - * @remarks - * - * Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - * The bulk API is limited to 500 subscribers per request. - */ -export async function subscribersCreateBulk( - client: NovuCore, - request: components.BulkSubscriberCreateDto, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerBulkCreateSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => components.BulkSubscriberCreateDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/subscribers/bulk")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_bulkCreateSubscribers", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerBulkCreateSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 201, - operations - .SubscribersControllerBulkCreateSubscribersResponse$inboundSchema - .optional(), - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersCredentialsAppend.ts b/src/funcs/subscribersCredentialsAppend.ts deleted file mode 100644 index f5674ecf..00000000 --- a/src/funcs/subscribersCredentialsAppend.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Modify subscriber credentials - * - * @remarks - * Subscriber credentials associated to the delivery methods such as slack and push tokens. - * - * This endpoint appends provided credentials and deviceTokens to the existing ones. - */ -export async function subscribersCredentialsAppend( - client: NovuCore, - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerModifySubscriberChannelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerModifySubscriberChannelRequest = - { - updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerModifySubscriberChannelRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.UpdateSubscriberChannelRequestDto, { - explode: true, - }); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_modifySubscriberChannel", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PATCH", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerModifySubscriberChannelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerModifySubscriberChannelResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersCredentialsDelete.ts b/src/funcs/subscribersCredentialsDelete.ts deleted file mode 100644 index ed006cbf..00000000 --- a/src/funcs/subscribersCredentialsDelete.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete subscriber credentials by providerId - * - * @remarks - * Delete subscriber credentials such as slack and expo tokens. - */ -export async function subscribersCredentialsDelete( - client: NovuCore, - subscriberId: string, - providerId: string, - options?: RequestOptions, -): Promise< - Result< - | operations.SubscribersControllerDeleteSubscriberCredentialsResponse - | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.SubscribersControllerDeleteSubscriberCredentialsRequest = { - subscriberId: subscriberId, - providerId: providerId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - providerId: encodeSimple("providerId", payload.providerId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/credentials/{providerId}", - )(pathParams); - - const headers = new Headers({ - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_deleteSubscriberCredentials", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - | operations.SubscribersControllerDeleteSubscriberCredentialsResponse - | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 204, - operations - .SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema - .optional(), - { hdrs: true }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersCredentialsUpdate.ts b/src/funcs/subscribersCredentialsUpdate.ts deleted file mode 100644 index f5f507f1..00000000 --- a/src/funcs/subscribersCredentialsUpdate.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update subscriber credentials - * - * @remarks - * Subscriber credentials associated to the delivery methods such as slack and push tokens. - */ -export async function subscribersCredentialsUpdate( - client: NovuCore, - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerUpdateSubscriberChannelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerUpdateSubscriberChannelRequest = - { - updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.UpdateSubscriberChannelRequestDto, { - explode: true, - }); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_updateSubscriberChannel", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PUT", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerUpdateSubscriberChannelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersDelete.ts b/src/funcs/subscribersDelete.ts deleted file mode 100644 index 09d9f88b..00000000 --- a/src/funcs/subscribersDelete.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete subscriber - * - * @remarks - * Deletes a subscriber entity from the Novu platform - */ -export async function subscribersDelete( - client: NovuCore, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerRemoveSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerRemoveSubscriberRequest = { - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerRemoveSubscriberRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_removeSubscriber", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerRemoveSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerRemoveSubscriberResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersList.ts b/src/funcs/subscribersList.ts deleted file mode 100644 index edad860b..00000000 --- a/src/funcs/subscribersList.ts +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { dlv } from "../lib/dlv.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; -import { - createPageIterator, - haltIterator, - PageIterator, - Paginator, -} from "../types/operations.js"; - -/** - * Get subscribers - * - * @remarks - * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - */ -export async function subscribersList( - client: NovuCore, - page?: number | undefined, - limit?: number | undefined, - options?: RequestOptions, -): Promise< - PageIterator< - Result< - operations.SubscribersControllerListSubscribersResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > - > -> { - const input: operations.SubscribersControllerListSubscribersRequest = { - page: page, - limit: limit, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerListSubscribersRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return haltIterator(parsed); - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/subscribers")(); - - const query = encodeFormQuery({ - "limit": payload.limit, - "page": payload.page, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_listSubscribers", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return haltIterator(requestRes); - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return haltIterator(doResult); - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result, raw] = await M.match< - operations.SubscribersControllerListSubscribersResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerListSubscribersResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return haltIterator(result); - } - - const nextFunc = ( - responseData: unknown, - ): Paginator< - Result< - operations.SubscribersControllerListSubscribersResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > - > => { - const page = input?.page || 0; - const nextPage = page + 1; - - if (!responseData) { - return () => null; - } - const results = dlv(responseData, "data.resultArray"); - if (!Array.isArray(results) || !results.length) { - return () => null; - } - const limit = input?.limit || 0; - if (results.length < limit) { - return () => null; - } - - return () => - subscribersList( - client, - nextPage, - limit, - options, - ); - }; - - const page$ = { ...result, next: nextFunc(raw) }; - return { ...page$, ...createPageIterator(page$, (v) => !v.ok) }; -} diff --git a/src/funcs/subscribersMessagesMarkAll.ts b/src/funcs/subscribersMessagesMarkAll.ts deleted file mode 100644 index 4d5df079..00000000 --- a/src/funcs/subscribersMessagesMarkAll.ts +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - */ -export async function subscribersMessagesMarkAll( - client: NovuCore, - markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerMarkAllUnreadAsReadResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerMarkAllUnreadAsReadRequest = { - markAllMessageAsRequestDto: markAllMessageAsRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.MarkAllMessageAsRequestDto, { - explode: true, - }); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-all")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_markAllUnreadAsRead", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerMarkAllUnreadAsReadResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 201, - operations.SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema, - { key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersMessagesMarkAllAs.ts b/src/funcs/subscribersMessagesMarkAllAs.ts deleted file mode 100644 index 30029091..00000000 --- a/src/funcs/subscribersMessagesMarkAllAs.ts +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Mark a subscriber messages as seen, read, unseen or unread - */ -export async function subscribersMessagesMarkAllAs( - client: NovuCore, - messageMarkAsRequestDto: components.MessageMarkAsRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerMarkMessagesAsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerMarkMessagesAsRequest = { - messageMarkAsRequestDto: messageMarkAsRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerMarkMessagesAsRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.MessageMarkAsRequestDto, { - explode: true, - }); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-as")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_markMessagesAs", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerMarkMessagesAsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 201, - operations.SubscribersControllerMarkMessagesAsResponse$inboundSchema, - { key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersMessagesUpdateAsSeen.ts b/src/funcs/subscribersMessagesUpdateAsSeen.ts deleted file mode 100644 index 0fc8ece6..00000000 --- a/src/funcs/subscribersMessagesUpdateAsSeen.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Mark message action as seen - */ -export async function subscribersMessagesUpdateAsSeen( - client: NovuCore, - request: operations.SubscribersControllerMarkActionAsSeenRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerMarkActionAsSeenResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerMarkActionAsSeenRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.MarkMessageActionAsSeenDto, { - explode: true, - }); - - const pathParams = { - messageId: encodeSimple("messageId", payload.messageId, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - type: encodeSimple("type", payload.type, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}", - )(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_markActionAsSeen", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerMarkActionAsSeenResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 201, - operations.SubscribersControllerMarkActionAsSeenResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersNotificationsRetrieve.ts b/src/funcs/subscribersNotificationsRetrieve.ts deleted file mode 100644 index 8c3615ff..00000000 --- a/src/funcs/subscribersNotificationsRetrieve.ts +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get in-app notification feed for a particular subscriber - */ -export async function subscribersNotificationsRetrieve( - client: NovuCore, - request: operations.SubscribersControllerGetNotificationsFeedRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetNotificationsFeedResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerGetNotificationsFeedRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/notifications/feed")( - pathParams, - ); - - const query = encodeFormQuery({ - "limit": payload.limit, - "page": payload.page, - "payload": payload.payload, - "read": payload.read, - "seen": payload.seen, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getNotificationsFeed", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetNotificationsFeedResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerGetNotificationsFeedResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersNotificationsUnseenCount.ts b/src/funcs/subscribersNotificationsUnseenCount.ts deleted file mode 100644 index 0589d80e..00000000 --- a/src/funcs/subscribersNotificationsUnseenCount.ts +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get the unseen in-app notifications count for subscribers feed - */ -export async function subscribersNotificationsUnseenCount( - client: NovuCore, - request: operations.SubscribersControllerGetUnseenCountRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetUnseenCountResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.SubscribersControllerGetUnseenCountRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/notifications/unseen", - )(pathParams); - - const query = encodeFormQuery({ - "limit": payload.limit, - "seen": payload.seen, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getUnseenCount", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetUnseenCountResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerGetUnseenCountResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersPreferencesList.ts b/src/funcs/subscribersPreferencesList.ts deleted file mode 100644 index 0207dcfd..00000000 --- a/src/funcs/subscribersPreferencesList.ts +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get subscriber preferences - */ -export async function subscribersPreferencesList( - client: NovuCore, - subscriberId: string, - includeInactiveChannels?: boolean | undefined, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerListSubscriberPreferencesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.SubscribersControllerListSubscriberPreferencesRequest = { - subscriberId: subscriberId, - includeInactiveChannels: includeInactiveChannels, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerListSubscriberPreferencesRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( - pathParams, - ); - - const query = encodeFormQuery({ - "includeInactiveChannels": payload.includeInactiveChannels, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_listSubscriberPreferences", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerListSubscriberPreferencesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerListSubscriberPreferencesResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersPreferencesRetrieveByLevel.ts b/src/funcs/subscribersPreferencesRetrieveByLevel.ts deleted file mode 100644 index 351067b7..00000000 --- a/src/funcs/subscribersPreferencesRetrieveByLevel.ts +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get subscriber preferences by level - */ -export async function subscribersPreferencesRetrieveByLevel( - client: NovuCore, - request: - operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations - .SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - parameter: encodeSimple("parameter", payload.parameter, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/preferences/{parameter}", - )(pathParams); - - const query = encodeFormQuery({ - "includeInactiveChannels": payload.includeInactiveChannels, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getSubscriberPreferenceByLevel", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersPreferencesUpdate.ts b/src/funcs/subscribersPreferencesUpdate.ts deleted file mode 100644 index 67682342..00000000 --- a/src/funcs/subscribersPreferencesUpdate.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update subscriber preference - */ -export async function subscribersPreferencesUpdate( - client: NovuCore, - request: operations.SubscribersControllerUpdateSubscriberPreferenceRequest, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerUpdateSubscriberPreferenceResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations - .SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON( - "body", - payload.UpdateSubscriberPreferenceRequestDto, - { explode: true }, - ); - - const pathParams = { - parameter: encodeSimple("parameter", payload.parameter, { - explode: false, - charEncoding: "percent", - }), - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/subscribers/{subscriberId}/preferences/{parameter}", - )(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_updateSubscriberPreference", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PATCH", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerUpdateSubscriberPreferenceResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersPreferencesUpdateGlobal.ts b/src/funcs/subscribersPreferencesUpdateGlobal.ts deleted file mode 100644 index 8d22e367..00000000 --- a/src/funcs/subscribersPreferencesUpdateGlobal.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update subscriber global preferences - */ -export async function subscribersPreferencesUpdateGlobal( - client: NovuCore, - updateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { - updateSubscriberGlobalPreferencesRequestDto: - updateSubscriberGlobalPreferencesRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON( - "body", - payload.UpdateSubscriberGlobalPreferencesRequestDto, - { explode: true }, - ); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_updateSubscriberGlobalPreferences", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PATCH", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts b/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts deleted file mode 100644 index 309edbbd..00000000 --- a/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update subscriber online status - * - * @remarks - * Used to update the subscriber isOnline flag. - */ -export async function subscribersPropertiesUpdateOnlineFlag( - client: NovuCore, - updateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.SubscribersControllerUpdateSubscriberOnlineFlagRequest = { - updateSubscriberOnlineFlagRequestDto: - updateSubscriberOnlineFlagRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations - .SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON( - "body", - payload.UpdateSubscriberOnlineFlagRequestDto, - { explode: true }, - ); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}/online-status")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_updateSubscriberOnlineFlag", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PATCH", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersRetrieve.ts b/src/funcs/subscribersRetrieve.ts deleted file mode 100644 index c53191ce..00000000 --- a/src/funcs/subscribersRetrieve.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get subscriber - * - * @remarks - * Get subscriber by your internal id used to identify the subscriber - */ -export async function subscribersRetrieve( - client: NovuCore, - subscriberId: string, - includeTopics?: string | undefined, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerGetSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerGetSubscriberRequest = { - subscriberId: subscriberId, - includeTopics: includeTopics, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerGetSubscriberRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); - - const query = encodeFormQuery({ - "includeTopics": payload.includeTopics, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_getSubscriber", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerGetSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerGetSubscriberResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/subscribersUpdate.ts b/src/funcs/subscribersUpdate.ts deleted file mode 100644 index 77f405e3..00000000 --- a/src/funcs/subscribersUpdate.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update subscriber - * - * @remarks - * Used to update the subscriber entity with new information - */ -export async function subscribersUpdate( - client: NovuCore, - updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, - subscriberId: string, - options?: RequestOptions, -): Promise< - Result< - operations.SubscribersControllerUpdateSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.SubscribersControllerUpdateSubscriberRequest = { - updateSubscriberRequestDto: updateSubscriberRequestDto, - subscriberId: subscriberId, - }; - - const parsed = safeParse( - input, - (value) => - operations.SubscribersControllerUpdateSubscriberRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.UpdateSubscriberRequestDto, { - explode: true, - }); - - const pathParams = { - subscriberId: encodeSimple("subscriberId", payload.subscriberId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "SubscribersController_updateSubscriber", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PUT", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.SubscribersControllerUpdateSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.SubscribersControllerUpdateSubscriberResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/tenantsCreate.ts b/src/funcs/tenantsCreate.ts deleted file mode 100644 index b1c7c55b..00000000 --- a/src/funcs/tenantsCreate.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Create tenant - * - * @remarks - * Create tenant under the current environment Tenants is not supported in code first version of the API. - */ -export async function tenantsCreate( - client$: NovuCore, - request: components.CreateTenantRequestDto, - options?: RequestOptions, -): Promise< - Result< - components.CreateTenantResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => components.CreateTenantRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/tenants")(); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TenantController_createTenant", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.CreateTenantResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.CreateTenantResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/tenantsDelete.ts b/src/funcs/tenantsDelete.ts deleted file mode 100644 index ad5bdbe7..00000000 --- a/src/funcs/tenantsDelete.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete tenant - * - * @remarks - * Deletes a tenant entity from the Novu platform. Tenants is not supported in code first version of the API. - */ -export async function tenantsDelete( - client$: NovuCore, - identifier: string, - options?: RequestOptions, -): Promise< - Result< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.TenantControllerRemoveTenantRequest = { - identifier: identifier, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TenantControllerRemoveTenantRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - identifier: encodeSimple$("identifier", payload$.identifier, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/tenants/{identifier}")(pathParams$); - - const headers$ = new Headers({ - Accept: "*/*", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TenantController_removeTenant", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - void, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.nil(204, z.void()), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/tenantsList.ts b/src/funcs/tenantsList.ts deleted file mode 100644 index b86246c2..00000000 --- a/src/funcs/tenantsList.ts +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { dlv } from "../lib/dlv.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; -import { - createPageIterator, - haltIterator, - PageIterator, - Paginator, -} from "../types/operations.js"; - -/** - * Get tenants - * - * @remarks - * Returns a list of tenants, could paginated using the `page` and `limit` query parameter. Tenants is not supported in code first version of the API. - */ -export async function tenantsList( - client$: NovuCore, - page?: number | undefined, - limit?: number | undefined, - options?: RequestOptions, -): Promise< - PageIterator< - Result< - operations.TenantControllerListTenantsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > - > -> { - const input$: operations.TenantControllerListTenantsRequest = { - page: page, - limit: limit, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TenantControllerListTenantsRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return haltIterator(parsed$); - } - const payload$ = parsed$.value; - const body$ = null; - - const path$ = pathToFunc("/v1/tenants")(); - - const query$ = encodeFormQuery$({ - "limit": payload$.limit, - "page": payload$.page, - }); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TenantController_listTenants", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return haltIterator(requestRes); - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return haltIterator(doResult); - } - const response = doResult.value; - - const responseFields$ = { - HttpMeta: { Response: response, Request: request$ }, - }; - - const [result$, raw$] = await m$.match< - operations.TenantControllerListTenantsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, operations.TenantControllerListTenantsResponse$inboundSchema, { - key: "Result", - }), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response, { extraFields: responseFields$ }); - if (!result$.ok) { - return haltIterator(result$); - } - - const nextFunc = ( - responseData: unknown, - ): Paginator< - Result< - operations.TenantControllerListTenantsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > - > => { - const page = input$?.page || 0; - const nextPage = page + 1; - - if (!responseData) { - return () => null; - } - const results = dlv(responseData, "data.resultArray"); - if (!Array.isArray(results) || !results.length) { - return () => null; - } - const limit = input$?.limit || 0; - if (results.length < limit) { - return () => null; - } - - return () => - tenantsList( - client$, - nextPage, - limit, - options, - ); - }; - - const page$ = { ...result$, next: nextFunc(raw$) }; - return { ...page$, ...createPageIterator(page$, (v) => !v.ok) }; -} diff --git a/src/funcs/tenantsRetrieve.ts b/src/funcs/tenantsRetrieve.ts deleted file mode 100644 index 38b5d8b4..00000000 --- a/src/funcs/tenantsRetrieve.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get tenant - * - * @remarks - * Get tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API. - */ -export async function tenantsRetrieve( - client$: NovuCore, - identifier: string, - options?: RequestOptions, -): Promise< - Result< - components.GetTenantResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.TenantControllerGetTenantByIdRequest = { - identifier: identifier, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TenantControllerGetTenantByIdRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - identifier: encodeSimple$("identifier", payload$.identifier, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/tenants/{identifier}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TenantController_getTenantById", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.GetTenantResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.GetTenantResponseDto$inboundSchema), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/tenantsUpdate.ts b/src/funcs/tenantsUpdate.ts deleted file mode 100644 index 51eb7f5e..00000000 --- a/src/funcs/tenantsUpdate.ts +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update tenant - * - * @remarks - * Update tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API. - */ -export async function tenantsUpdate( - client$: NovuCore, - identifier: string, - updateTenantRequestDto: components.UpdateTenantRequestDto, - options?: RequestOptions, -): Promise< - Result< - components.UpdateTenantResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.TenantControllerUpdateTenantRequest = { - identifier: identifier, - updateTenantRequestDto: updateTenantRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.TenantControllerUpdateTenantRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.UpdateTenantRequestDto, { - explode: true, - }); - - const pathParams$ = { - identifier: encodeSimple$("identifier", payload$.identifier, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/tenants/{identifier}")(pathParams$); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "TenantController_updateTenant", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PATCH", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.UpdateTenantResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.UpdateTenantResponseDto$inboundSchema), - m$.fail([404, 409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/topicsCreate.ts b/src/funcs/topicsCreate.ts deleted file mode 100644 index e2f8b70d..00000000 --- a/src/funcs/topicsCreate.ts +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Topic creation - * - * @remarks - * Create a topic - */ -export async function topicsCreate( - client: NovuCore, - request: components.CreateTopicRequestDto, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerCreateTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => components.CreateTopicRequestDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/topics")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_createTopic", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerCreateTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(201, operations.TopicsControllerCreateTopicResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsDelete.ts b/src/funcs/topicsDelete.ts deleted file mode 100644 index cf295ba2..00000000 --- a/src/funcs/topicsDelete.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete topic - * - * @remarks - * Delete a topic by its topic key if it has no subscribers - */ -export async function topicsDelete( - client: NovuCore, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerDeleteTopicResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerDeleteTopicRequest = { - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerDeleteTopicRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); - - const headers = new Headers({ - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_deleteTopic", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerDeleteTopicResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 204, - operations.TopicsControllerDeleteTopicResponse$inboundSchema.optional(), - { hdrs: true }, - ), - M.fail([404, 409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsList.ts b/src/funcs/topicsList.ts deleted file mode 100644 index f545ecc1..00000000 --- a/src/funcs/topicsList.ts +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Filter topics - * - * @remarks - * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - */ -export async function topicsList( - client: NovuCore, - request: operations.TopicsControllerListTopicsRequest, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerListTopicsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - operations.TopicsControllerListTopicsRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const path = pathToFunc("/v1/topics")(); - - const query = encodeFormQuery({ - "key": payload.key, - "page": payload.page, - "pageSize": payload.pageSize, - }); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_listTopics", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - query: query, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerListTopicsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(200, operations.TopicsControllerListTopicsResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsRename.ts b/src/funcs/topicsRename.ts deleted file mode 100644 index 79f89ce9..00000000 --- a/src/funcs/topicsRename.ts +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Rename a topic - * - * @remarks - * Rename a topic by providing a new name - */ -export async function topicsRename( - client: NovuCore, - renameTopicRequestDto: components.RenameTopicRequestDto, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerRenameTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerRenameTopicRequest = { - renameTopicRequestDto: renameTopicRequestDto, - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerRenameTopicRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.RenameTopicRequestDto, { - explode: true, - }); - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_renameTopic", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PATCH", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerRenameTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(200, operations.TopicsControllerRenameTopicResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsRetrieve.ts b/src/funcs/topicsRetrieve.ts deleted file mode 100644 index 8f4b71a0..00000000 --- a/src/funcs/topicsRetrieve.ts +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get topic - * - * @remarks - * Get a topic by its topic key - */ -export async function topicsRetrieve( - client: NovuCore, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerGetTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerGetTopicRequest = { - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerGetTopicRequest$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_getTopic", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerGetTopicResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(200, operations.TopicsControllerGetTopicResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsSubscribersAssign.ts b/src/funcs/topicsSubscribersAssign.ts deleted file mode 100644 index e868c7bd..00000000 --- a/src/funcs/topicsSubscribersAssign.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Subscribers addition - * - * @remarks - * Add subscribers to a topic by key - */ -export async function topicsSubscribersAssign( - client: NovuCore, - addSubscribersRequestDto: components.AddSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerAddSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerAddSubscribersRequest = { - addSubscribersRequestDto: addSubscribersRequestDto, - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerAddSubscribersRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.AddSubscribersRequestDto, { - explode: true, - }); - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}/subscribers")(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_addSubscribers", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerAddSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 204, - operations.TopicsControllerAddSubscribersResponse$inboundSchema - .optional(), - { hdrs: true }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsSubscribersDelete.ts b/src/funcs/topicsSubscribersDelete.ts deleted file mode 100644 index f3059e17..00000000 --- a/src/funcs/topicsSubscribersDelete.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Subscribers removal - * - * @remarks - * Remove subscribers from a topic - */ -export async function topicsSubscribersDelete( - client: NovuCore, - removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerRemoveSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerRemoveSubscribersRequest = { - removeSubscribersRequestDto: removeSubscribersRequestDto, - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.RemoveSubscribersRequestDto, { - explode: true, - }); - - const pathParams = { - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/topics/{topicKey}/subscribers/removal")( - pathParams, - ); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "*/*", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_removeSubscribers", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerRemoveSubscribersResponse | undefined, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.nil( - 204, - operations.TopicsControllerRemoveSubscribersResponse$inboundSchema - .optional(), - { hdrs: true }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/topicsSubscribersRetrieve.ts b/src/funcs/topicsSubscribersRetrieve.ts deleted file mode 100644 index d4b068ae..00000000 --- a/src/funcs/topicsSubscribersRetrieve.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Check topic subscriber - * - * @remarks - * Check if a subscriber belongs to a certain topic - */ -export async function topicsSubscribersRetrieve( - client: NovuCore, - externalSubscriberId: string, - topicKey: string, - options?: RequestOptions, -): Promise< - Result< - operations.TopicsControllerGetTopicSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: operations.TopicsControllerGetTopicSubscriberRequest = { - externalSubscriberId: externalSubscriberId, - topicKey: topicKey, - }; - - const parsed = safeParse( - input, - (value) => - operations.TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( - value, - ), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - externalSubscriberId: encodeSimple( - "externalSubscriberId", - payload.externalSubscriberId, - { explode: false, charEncoding: "percent" }, - ), - topicKey: encodeSimple("topicKey", payload.topicKey, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc( - "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}", - )(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "TopicsController_getTopicSubscriber", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.TopicsControllerGetTopicSubscriberResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.TopicsControllerGetTopicSubscriberResponse$inboundSchema, - { key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/trigger.ts b/src/funcs/trigger.ts deleted file mode 100644 index 1c976f9b..00000000 --- a/src/funcs/trigger.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Trigger event - * - * @remarks - * - * Trigger event is the main (and only) way to send notifications to subscribers. - * The trigger identifier is used to match the particular workflow associated with it. - * Additional information can be passed according the body interface below. - */ -export async function trigger( - client: NovuCore, - request: components.TriggerEventRequestDto, - options?: RequestOptions, -): Promise< - Result< - operations.EventsControllerTriggerResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => components.TriggerEventRequestDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/events/trigger")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EventsController_trigger", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EventsControllerTriggerResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(201, operations.EventsControllerTriggerResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/triggerBroadcast.ts b/src/funcs/triggerBroadcast.ts deleted file mode 100644 index beabf47b..00000000 --- a/src/funcs/triggerBroadcast.ts +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Broadcast event to all - * - * @remarks - * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - * - * In the future could be used to trigger events to a subset of subscribers based on defined filters. - */ -export async function triggerBroadcast( - client: NovuCore, - request: components.TriggerEventToAllRequestDto, - options?: RequestOptions, -): Promise< - Result< - operations.EventsControllerBroadcastEventToAllResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - components.TriggerEventToAllRequestDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/events/trigger/broadcast")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EventsController_broadcastEventToAll", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EventsControllerBroadcastEventToAllResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations.EventsControllerBroadcastEventToAllResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/triggerBulk.ts b/src/funcs/triggerBulk.ts deleted file mode 100644 index b96c8557..00000000 --- a/src/funcs/triggerBulk.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Bulk trigger event - * - * @remarks - * - * Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - * The bulk API is limited to 100 events per request. - */ -export async function triggerBulk( - client: NovuCore, - request: components.BulkTriggerEventDto, - options?: RequestOptions, -): Promise< - Result< - operations.EventsControllerTriggerBulkResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => components.BulkTriggerEventDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/events/trigger/bulk")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "EventsController_triggerBulk", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.EventsControllerTriggerBulkResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json(201, operations.EventsControllerTriggerBulkResponse$inboundSchema, { - hdrs: true, - key: "Result", - }), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/workflowGroupsCreate.ts b/src/funcs/workflowGroupsCreate.ts deleted file mode 100644 index a9a3fa1a..00000000 --- a/src/funcs/workflowGroupsCreate.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Create workflow group - * - * @remarks - * workflow group was previously named notification group - */ -export async function workflowGroupsCreate( - client: NovuCore, - request: components.CreateNotificationGroupRequestDto, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationGroupsControllerCreateNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const parsed = safeParse( - request, - (value) => - components.CreateNotificationGroupRequestDto$outboundSchema.parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload, { explode: true }); - - const path = pathToFunc("/v1/notification-groups")(); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationGroupsController_createNotificationGroup", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "POST", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationGroupsControllerCreateNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 201, - operations - .NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/workflowGroupsDelete.ts b/src/funcs/workflowGroupsDelete.ts deleted file mode 100644 index 2828ea51..00000000 --- a/src/funcs/workflowGroupsDelete.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete workflow group - * - * @remarks - * workflow group was previously named notification group - */ -export async function workflowGroupsDelete( - client: NovuCore, - id: string, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationGroupsControllerDeleteNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.NotificationGroupsControllerDeleteNotificationGroupRequest = { - id: id, - }; - - const parsed = safeParse( - input, - (value) => - operations - .NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - id: encodeSimple("id", payload.id, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationGroupsController_deleteNotificationGroup", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "DELETE", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationGroupsControllerDeleteNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/workflowGroupsList.ts b/src/funcs/workflowGroupsList.ts deleted file mode 100644 index a10cfeab..00000000 --- a/src/funcs/workflowGroupsList.ts +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as M from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get workflow groups - * - * @remarks - * workflow group was previously named notification group - */ -export async function workflowGroupsList( - client: NovuCore, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationGroupsControllerListNotificationGroupsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path = pathToFunc("/v1/notification-groups")(); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationGroupsController_listNotificationGroups", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationGroupsControllerListNotificationGroupsResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/workflowGroupsRetrieve.ts b/src/funcs/workflowGroupsRetrieve.ts deleted file mode 100644 index b79ebb53..00000000 --- a/src/funcs/workflowGroupsRetrieve.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get workflow group - * - * @remarks - * workflow group was previously named notification group - */ -export async function workflowGroupsRetrieve( - client: NovuCore, - id: string, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationGroupsControllerGetNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.NotificationGroupsControllerGetNotificationGroupRequest = { - id: id, - }; - - const parsed = safeParse( - input, - (value) => - operations - .NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = null; - - const pathParams = { - id: encodeSimple("id", payload.id, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); - - const headers = new Headers({ - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationGroupsController_getNotificationGroup", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "GET", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationGroupsControllerGetNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/workflowGroupsUpdate.ts b/src/funcs/workflowGroupsUpdate.ts deleted file mode 100644 index 9737567e..00000000 --- a/src/funcs/workflowGroupsUpdate.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON, encodeSimple } from "../lib/encodings.js"; -import * as M from "../lib/matchers.js"; -import { safeParse } from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update workflow group - * - * @remarks - * workflow group was previously named notification group - */ -export async function workflowGroupsUpdate( - client: NovuCore, - createNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto, - id: string, - options?: RequestOptions, -): Promise< - Result< - operations.NotificationGroupsControllerUpdateNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input: - operations.NotificationGroupsControllerUpdateNotificationGroupRequest = { - createNotificationGroupRequestDto: createNotificationGroupRequestDto, - id: id, - }; - - const parsed = safeParse( - input, - (value) => - operations - .NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema - .parse(value), - "Input validation failed", - ); - if (!parsed.ok) { - return parsed; - } - const payload = parsed.value; - const body = encodeJSON("body", payload.CreateNotificationGroupRequestDto, { - explode: true, - }); - - const pathParams = { - id: encodeSimple("id", payload.id, { - explode: false, - charEncoding: "percent", - }), - }; - - const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); - - const headers = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const secConfig = await extractSecurity(client._options.apiKey); - const securityInput = secConfig == null ? {} : { apiKey: secConfig }; - const requestSecurity = resolveGlobalSecurity(securityInput); - - const context = { - operationID: "NotificationGroupsController_updateNotificationGroup", - oAuth2Scopes: [], - - resolvedSecurity: requestSecurity, - - securitySource: client._options.apiKey, - retryConfig: options?.retries - || client._options.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - } - || { strategy: "none" }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }; - - const requestRes = client._createRequest(context, { - security: requestSecurity, - method: "PATCH", - path: path, - headers: headers, - body: body, - timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const req = requestRes.value; - - const doResult = await client._do(req, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: context.retryConfig, - retryCodes: context.retryCodes, - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const responseFields = { - HttpMeta: { Response: response, Request: req }, - }; - - const [result] = await M.match< - operations.NotificationGroupsControllerUpdateNotificationGroupResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - M.json( - 200, - operations - .NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema, - { hdrs: true, key: "Result" }, - ), - M.fail([409, 429, 503]), - M.fail(["4XX", "5XX"]), - )(response, { extraFields: responseFields }); - if (!result.ok) { - return result; - } - - return result; -} diff --git a/src/funcs/workflowsCreate.ts b/src/funcs/workflowsCreate.ts deleted file mode 100644 index be87fc98..00000000 --- a/src/funcs/workflowsCreate.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeJSON as encodeJSON$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Create workflow - * - * @remarks - * Workflow was previously named notification template - */ -export async function workflowsCreate( - client$: NovuCore, - request: components.CreateWorkflowRequestDto, - options?: RequestOptions, -): Promise< - Result< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - components.CreateWorkflowRequestDto$outboundSchema.parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$, { explode: true }); - - const path$ = pathToFunc("/v1/workflows")(); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "WorkflowController_create", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "POST", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(201, components.WorkflowResponse$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/workflowsDelete.ts b/src/funcs/workflowsDelete.ts deleted file mode 100644 index 936ecf50..00000000 --- a/src/funcs/workflowsDelete.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Delete workflow - * - * @remarks - * Workflow was previously named notification template - */ -export async function workflowsDelete( - client$: NovuCore, - workflowId: string, - options?: RequestOptions, -): Promise< - Result< - components.DataBooleanDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.WorkflowControllerDeleteWorkflowByIdRequest = { - workflowId: workflowId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.WorkflowControllerDeleteWorkflowByIdRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - workflowId: encodeSimple$("workflowId", payload$.workflowId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/workflows/{workflowId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "WorkflowController_deleteWorkflowById", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "DELETE", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.DataBooleanDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.DataBooleanDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/workflowsList.ts b/src/funcs/workflowsList.ts deleted file mode 100644 index 039ecb7d..00000000 --- a/src/funcs/workflowsList.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeFormQuery as encodeFormQuery$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get workflows - * - * @remarks - * Workflows were previously named notification templates - */ -export async function workflowsList( - client$: NovuCore, - request: operations.WorkflowControllerListWorkflowsRequest, - options?: RequestOptions, -): Promise< - Result< - components.WorkflowsResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$ = request; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.WorkflowControllerListWorkflowsRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const path$ = pathToFunc("/v1/workflows")(); - - const query$ = encodeFormQuery$({ - "limit": payload$.limit, - "page": payload$.page, - "query": payload$.query, - }); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "WorkflowController_listWorkflows", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - query: query$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.WorkflowsResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.WorkflowsResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/workflowsRetrieve.ts b/src/funcs/workflowsRetrieve.ts deleted file mode 100644 index 38cf326a..00000000 --- a/src/funcs/workflowsRetrieve.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { encodeSimple as encodeSimple$ } from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Get workflow - * - * @remarks - * Workflow was previously named notification template - */ -export async function workflowsRetrieve( - client$: NovuCore, - workflowId: string, - options?: RequestOptions, -): Promise< - Result< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.WorkflowControllerGetWorkflowByIdRequest = { - workflowId: workflowId, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.WorkflowControllerGetWorkflowByIdRequest$outboundSchema.parse( - value$, - ), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = null; - - const pathParams$ = { - workflowId: encodeSimple$("workflowId", payload$.workflowId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/workflows/{workflowId}")(pathParams$); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "WorkflowController_getWorkflowById", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.WorkflowResponse$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/workflowsStatusUpdate.ts b/src/funcs/workflowsStatusUpdate.ts deleted file mode 100644 index 31e1d20a..00000000 --- a/src/funcs/workflowsStatusUpdate.ts +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update workflow status - * - * @remarks - * Workflow was previously named notification template - */ -export async function workflowsStatusUpdate( - client$: NovuCore, - workflowId: string, - changeWorkflowStatusRequestDto: components.ChangeWorkflowStatusRequestDto, - options?: RequestOptions, -): Promise< - Result< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.WorkflowControllerUpdateActiveStatusRequest = { - workflowId: workflowId, - changeWorkflowStatusRequestDto: changeWorkflowStatusRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.WorkflowControllerUpdateActiveStatusRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.ChangeWorkflowStatusRequestDto, { - explode: true, - }); - - const pathParams$ = { - workflowId: encodeSimple$("workflowId", payload$.workflowId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/workflows/{workflowId}/status")(pathParams$); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "WorkflowController_updateActiveStatus", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PUT", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.WorkflowResponse$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/workflowsUpdate.ts b/src/funcs/workflowsUpdate.ts deleted file mode 100644 index 7a0ba097..00000000 --- a/src/funcs/workflowsUpdate.ts +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import { - encodeJSON as encodeJSON$, - encodeSimple as encodeSimple$, -} from "../lib/encodings.js"; -import * as m$ from "../lib/matchers.js"; -import * as schemas$ from "../lib/schemas.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import * as operations from "../models/operations/index.js"; -import { Result } from "../types/fp.js"; - -/** - * Update workflow - * - * @remarks - * Workflow was previously named notification template - */ -export async function workflowsUpdate( - client$: NovuCore, - workflowId: string, - updateWorkflowRequestDto: components.UpdateWorkflowRequestDto, - options?: RequestOptions, -): Promise< - Result< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const input$: operations.WorkflowControllerUpdateWorkflowByIdRequest = { - workflowId: workflowId, - updateWorkflowRequestDto: updateWorkflowRequestDto, - }; - - const parsed$ = schemas$.safeParse( - input$, - (value$) => - operations.WorkflowControllerUpdateWorkflowByIdRequest$outboundSchema - .parse(value$), - "Input validation failed", - ); - if (!parsed$.ok) { - return parsed$; - } - const payload$ = parsed$.value; - const body$ = encodeJSON$("body", payload$.UpdateWorkflowRequestDto, { - explode: true, - }); - - const pathParams$ = { - workflowId: encodeSimple$("workflowId", payload$.workflowId, { - explode: false, - charEncoding: "percent", - }), - }; - - const path$ = pathToFunc("/v1/workflows/{workflowId}")(pathParams$); - - const headers$ = new Headers({ - "Content-Type": "application/json", - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "WorkflowController_updateWorkflowById", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "PUT", - path: path$, - headers: headers$, - body: body$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.WorkflowResponse, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.WorkflowResponse$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/funcs/workflowsVariablesRetrieve.ts b/src/funcs/workflowsVariablesRetrieve.ts deleted file mode 100644 index 1062f192..00000000 --- a/src/funcs/workflowsVariablesRetrieve.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { NovuCore } from "../core.js"; -import * as m$ from "../lib/matchers.js"; -import { RequestOptions } from "../lib/sdks.js"; -import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; -import { pathToFunc } from "../lib/url.js"; -import * as components from "../models/components/index.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; - -/** - * Get available variables - * - * @remarks - * Get the variables that can be used in the workflow - */ -export async function workflowsVariablesRetrieve( - client$: NovuCore, - options?: RequestOptions, -): Promise< - Result< - components.VariablesResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - > -> { - const path$ = pathToFunc("/v1/workflows/variables")(); - - const headers$ = new Headers({ - Accept: "application/json", - }); - - const apiKey$ = await extractSecurity(client$.options$.apiKey); - const security$ = apiKey$ == null ? {} : { apiKey: apiKey$ }; - const context = { - operationID: "WorkflowController_getWorkflowVariables", - oAuth2Scopes: [], - securitySource: client$.options$.apiKey, - }; - const securitySettings$ = resolveGlobalSecurity(security$); - - const requestRes = client$.createRequest$(context, { - security: securitySettings$, - method: "GET", - path: path$, - headers: headers$, - timeoutMs: options?.timeoutMs || client$.options$.timeoutMs || -1, - }, options); - if (!requestRes.ok) { - return requestRes; - } - const request$ = requestRes.value; - - const doResult = await client$.do$(request$, { - context, - errorCodes: ["409", "429", "4XX", "503", "5XX"], - retryConfig: options?.retries - || client$.options$.retryConfig - || { - strategy: "backoff", - backoff: { - initialInterval: 500, - maxInterval: 30000, - exponent: 1.5, - maxElapsedTime: 3600000, - }, - retryConnectionErrors: true, - }, - retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], - }); - if (!doResult.ok) { - return doResult; - } - const response = doResult.value; - - const [result$] = await m$.match< - components.VariablesResponseDto, - | SDKError - | SDKValidationError - | UnexpectedClientError - | InvalidRequestError - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - >( - m$.json(200, components.VariablesResponseDto$inboundSchema), - m$.fail([409, 429, "4XX", 503, "5XX"]), - )(response); - if (!result$.ok) { - return result$; - } - - return result$; -} diff --git a/src/hooks/hooks.ts b/src/hooks/hooks.ts deleted file mode 100644 index d1b3396f..00000000 --- a/src/hooks/hooks.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { RequestInput } from "../lib/http.js"; -import { - AfterErrorContext, - AfterErrorHook, - AfterSuccessContext, - AfterSuccessHook, - BeforeCreateRequestContext, - BeforeCreateRequestHook, - BeforeRequestContext, - BeforeRequestHook, - Hooks, - SDKInitHook, - SDKInitOptions, -} from "./types.js"; - -import { initHooks } from "./registration.js"; - -export class SDKHooks implements Hooks { - sdkInitHooks: SDKInitHook[] = []; - beforeCreateRequestHooks: BeforeCreateRequestHook[] = []; - beforeRequestHooks: BeforeRequestHook[] = []; - afterSuccessHooks: AfterSuccessHook[] = []; - afterErrorHooks: AfterErrorHook[] = []; - - constructor() { - initHooks(this); - } - - registerSDKInitHook(hook: SDKInitHook) { - this.sdkInitHooks.push(hook); - } - - registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook) { - this.beforeCreateRequestHooks.push(hook); - } - - registerBeforeRequestHook(hook: BeforeRequestHook) { - this.beforeRequestHooks.push(hook); - } - - registerAfterSuccessHook(hook: AfterSuccessHook) { - this.afterSuccessHooks.push(hook); - } - - registerAfterErrorHook(hook: AfterErrorHook) { - this.afterErrorHooks.push(hook); - } - - sdkInit(opts: SDKInitOptions): SDKInitOptions { - return this.sdkInitHooks.reduce((opts, hook) => hook.sdkInit(opts), opts); - } - - beforeCreateRequest( - hookCtx: BeforeCreateRequestContext, - input: RequestInput, - ): RequestInput { - let inp = input; - - for (const hook of this.beforeCreateRequestHooks) { - inp = hook.beforeCreateRequest(hookCtx, inp); - } - - return inp; - } - - async beforeRequest( - hookCtx: BeforeRequestContext, - request: Request, - ): Promise { - let req = request; - - for (const hook of this.beforeRequestHooks) { - req = await hook.beforeRequest(hookCtx, req); - } - - return req; - } - - async afterSuccess( - hookCtx: AfterSuccessContext, - response: Response, - ): Promise { - let res = response; - - for (const hook of this.afterSuccessHooks) { - res = await hook.afterSuccess(hookCtx, res); - } - - return res; - } - - async afterError( - hookCtx: AfterErrorContext, - response: Response | null, - error: unknown, - ): Promise<{ response: Response | null; error: unknown }> { - let res = response; - let err = error; - - for (const hook of this.afterErrorHooks) { - const result = await hook.afterError(hookCtx, res, err); - res = result.response; - err = result.error; - } - - return { response: res, error: err }; - } -} diff --git a/src/hooks/index.ts b/src/hooks/index.ts deleted file mode 100644 index f60ec7ac..00000000 --- a/src/hooks/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export * from "./hooks.js"; -export * from "./types.js"; diff --git a/src/hooks/registration.ts b/src/hooks/registration.ts deleted file mode 100644 index b6872b43..00000000 --- a/src/hooks/registration.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { isPlainObject } from "../lib/is-plain-object"; -import {AfterSuccessContext, AfterSuccessHook, Hooks} from "./types"; - -export function initHooks(hooks: Hooks) { - hooks.registerAfterSuccessHook(new TransformResponse()); -} - -function isResponseEnveloped(body: unknown): body is { data: unknown } { - return isPlainObject(body) && "data" in body && Object.keys(body).every(key => key === "data") && isPlainObject(body.data); -} - -class TransformResponse implements AfterSuccessHook { - - async afterSuccess(_context: AfterSuccessContext, response: Response) { - if (!response.ok) { - return response; - } - - const body: unknown = await response.json(); - const validBody = - isResponseEnveloped(body); - if (!validBody) { - return new Response(JSON.stringify(body), response); - } - return new Response(JSON.stringify(body.data), response); - } - -} \ No newline at end of file diff --git a/src/hooks/types.ts b/src/hooks/types.ts deleted file mode 100644 index df5237dc..00000000 --- a/src/hooks/types.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { HTTPClient, RequestInput } from "../lib/http.js"; -import { RetryConfig } from "../lib/retries.js"; -import { SecurityState } from "../lib/security.js"; - -export type HookContext = { - operationID: string; - oAuth2Scopes?: string[]; - securitySource?: any | (() => Promise); - retryConfig: RetryConfig; - resolvedSecurity: SecurityState | null; -}; - -export type Awaitable = T | Promise; - -export type SDKInitOptions = { - baseURL: URL | null; - client: HTTPClient; -}; - -export type BeforeCreateRequestContext = HookContext & {}; -export type BeforeRequestContext = HookContext & {}; -export type AfterSuccessContext = HookContext & {}; -export type AfterErrorContext = HookContext & {}; - -/** - * SDKInitHook is called when the SDK is initializing. The - * hook can return a new baseURL and HTTP client to be used by the SDK. - */ -export interface SDKInitHook { - sdkInit: (opts: SDKInitOptions) => SDKInitOptions; -} - -export interface BeforeCreateRequestHook { - /** - * A hook that is called before the SDK creates a `Request` object. The hook - * can modify how a request is constructed since certain modifications, like - * changing the request URL, cannot be done on a request object directly. - */ - beforeCreateRequest: ( - hookCtx: BeforeCreateRequestContext, - input: RequestInput, - ) => RequestInput; -} - -export interface BeforeRequestHook { - /** - * A hook that is called before the SDK sends a request. The hook can - * introduce instrumentation code such as logging, tracing and metrics or - * replace the request before it is sent or throw an error to stop the - * request from being sent. - */ - beforeRequest: ( - hookCtx: BeforeRequestContext, - request: Request, - ) => Awaitable; -} - -export interface AfterSuccessHook { - /** - * A hook that is called after the SDK receives a response. The hook can - * introduce instrumentation code such as logging, tracing and metrics or - * modify the response before it is handled or throw an error to stop the - * response from being handled. - */ - afterSuccess: ( - hookCtx: AfterSuccessContext, - response: Response, - ) => Awaitable; -} - -export interface AfterErrorHook { - /** - * A hook that is called after the SDK encounters an error, or a - * non-successful response. The hook can introduce instrumentation code such - * as logging, tracing and metrics or modify the response or error values. - */ - afterError: ( - hookCtx: AfterErrorContext, - response: Response | null, - error: unknown, - ) => Awaitable<{ - response: Response | null; - error: unknown; - }>; -} - -export interface Hooks { - /** Registers a hook to be used by the SDK for initialization event. */ - registerSDKInitHook(hook: SDKInitHook): void; - /** Registers a hook to be used by the SDK for to modify `Request` construction. */ - registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook): void; - /** Registers a hook to be used by the SDK for the before request event. */ - registerBeforeRequestHook(hook: BeforeRequestHook): void; - /** Registers a hook to be used by the SDK for the after success event. */ - registerAfterSuccessHook(hook: AfterSuccessHook): void; - /** Registers a hook to be used by the SDK for the after error event. */ - registerAfterErrorHook(hook: AfterErrorHook): void; -} diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 5ddc765e..00000000 --- a/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export * from "./lib/config.js"; -export * as files from "./lib/files.js"; -export * from "./sdk/sdk.js"; diff --git a/src/lib/base64.ts b/src/lib/base64.ts deleted file mode 100644 index c2d5b389..00000000 --- a/src/lib/base64.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export function bytesToBase64(u8arr: Uint8Array): string { - return btoa(String.fromCodePoint(...u8arr)); -} - -export function bytesFromBase64(encoded: string): Uint8Array { - return Uint8Array.from(atob(encoded), (c) => c.charCodeAt(0)); -} - -export function stringToBytes(str: string): Uint8Array { - return new TextEncoder().encode(str); -} - -export function stringFromBytes(u8arr: Uint8Array): string { - return new TextDecoder().decode(u8arr); -} - -export function stringToBase64(str: string): string { - return bytesToBase64(stringToBytes(str)); -} - -export function stringFromBase64(b64str: string): string { - return stringFromBytes(bytesFromBase64(b64str)); -} - -export const zodOutbound = z - .instanceof(Uint8Array) - .or(z.string().transform(stringToBytes)); - -export const zodInbound = z - .instanceof(Uint8Array) - .or(z.string().transform(bytesFromBase64)); diff --git a/src/lib/config.ts b/src/lib/config.ts deleted file mode 100644 index 1eb16eff..00000000 --- a/src/lib/config.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { HTTPClient } from "./http.js"; -import { Logger } from "./logger.js"; -import { RetryConfig } from "./retries.js"; -import { Params, pathToFunc } from "./url.js"; - -/** - * Contains the list of servers available to the SDK - */ -export const ServerList = [ - "https://api.novu.co", - "https://eu.api.novu.co", -] as const; - -export type SDKOptions = { - apiKey?: string | (() => Promise); - - httpClient?: HTTPClient; - /** - * Allows overriding the default server used by the SDK - */ - serverIdx?: number; - /** - * Allows overriding the default server URL used by the SDK - */ - serverURL?: string; - /** - * Allows overriding the default retry config used by the SDK - */ - retryConfig?: RetryConfig; - timeoutMs?: number; - debugLogger?: Logger; -}; - -export function serverURLFromOptions(options: SDKOptions): URL | null { - let serverURL = options.serverURL; - - const params: Params = {}; - - if (!serverURL) { - const serverIdx = options.serverIdx ?? 0; - if (serverIdx < 0 || serverIdx >= ServerList.length) { - throw new Error(`Invalid server index ${serverIdx}`); - } - serverURL = ServerList[serverIdx] || ""; - } - - const u = pathToFunc(serverURL)(params); - return new URL(u); -} - -export const SDK_METADATA = { - language: "typescript", - openapiDocVersion: "1.0", - sdkVersion: "0.0.1-alpha.20", - genVersion: "2.461.4", - userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.20 2.461.4 1.0 @novu/api", -} as const; diff --git a/src/lib/dlv.ts b/src/lib/dlv.ts deleted file mode 100644 index e81091f5..00000000 --- a/src/lib/dlv.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -/* -MIT License - -Copyright (c) 2024 Jason Miller (http://jasonformat.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @param obj The object to walk - * @param key The key path to walk the object with - * @param def A default value to return if the result is undefined - * - * @example - * dlv(obj, "a.b.c.d") - * @example - * dlv(object, ["a", "b", "c", "d"]) - * @example - * dlv(object, "foo.bar.baz", "Hello, default value!") - */ -export function dlv( - obj: any, - key: string | string[], - def?: T, - p?: number, - undef?: never, -): T | undefined { - key = Array.isArray(key) ? key : key.split("."); - for (p = 0; p < key.length; p++) { - const k = key[p]; - obj = k != null && obj ? obj[k] : undef; - } - return obj === undef ? def : obj; -} diff --git a/src/lib/encodings.ts b/src/lib/encodings.ts deleted file mode 100644 index 44fa7284..00000000 --- a/src/lib/encodings.ts +++ /dev/null @@ -1,449 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { bytesToBase64 } from "./base64.js"; -import { isPlainObject } from "./is-plain-object.js"; - -export class EncodingError extends Error { - constructor(message: string) { - super(message); - this.name = "EncodingError"; - } -} - -export function encodeMatrix( - key: string, - value: unknown, - options?: { explode?: boolean; charEncoding?: "percent" | "none" }, -): string { - let out = ""; - const pairs: [string, unknown][] = options?.explode - ? explode(key, value) - : [[key, value]]; - - const encodeString = (v: string) => { - return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; - }; - const encodeValue = (v: unknown) => encodeString(serializeValue(v)); - - pairs.forEach(([pk, pv]) => { - let tmp = ""; - let encValue = ""; - - if (pv === undefined) { - return; - } else if (Array.isArray(pv)) { - encValue = mapDefined(pv, (v) => `${encodeValue(v)}`).join(","); - } else if (isPlainObject(pv)) { - encValue = mapDefinedEntries(Object.entries(pv), ([k, v]) => { - return `,${encodeString(k)},${encodeValue(v)}`; - }).join(""); - encValue = encValue.slice(1); - } else { - encValue = `${encodeValue(pv)}`; - } - - const keyPrefix = encodeString(pk); - tmp = `${keyPrefix}=${encValue}`; - // trim trailing '=' if value was empty - if (tmp === `${keyPrefix}=`) { - tmp = tmp.slice(0, -1); - } - - // If we end up with the nothing then skip forward - if (!tmp) { - return; - } - - out += `;${tmp}`; - }); - - return out; -} - -export function encodeLabel( - key: string, - value: unknown, - options?: { explode?: boolean; charEncoding?: "percent" | "none" }, -): string { - let out = ""; - const pairs: [string, unknown][] = options?.explode - ? explode(key, value) - : [[key, value]]; - - const encodeString = (v: string) => { - return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; - }; - const encodeValue = (v: unknown) => encodeString(serializeValue(v)); - - pairs.forEach(([pk, pv]) => { - let encValue = ""; - - if (pv === undefined) { - return; - } else if (Array.isArray(pv)) { - encValue = mapDefined(pv, (v) => `${encodeValue(v)}`).join("."); - } else if (isPlainObject(pv)) { - encValue = mapDefinedEntries(Object.entries(pv), ([k, v]) => { - return `.${encodeString(k)}.${encodeValue(v)}`; - }).join(""); - encValue = encValue.slice(1); - } else { - const k = - options?.explode && isPlainObject(value) ? `${encodeString(pk)}=` : ""; - encValue = `${k}${encodeValue(pv)}`; - } - - out += `.${encValue}`; - }); - - return out; -} - -type FormEncoder = ( - key: string, - value: unknown, - options?: { explode?: boolean; charEncoding?: "percent" | "none" }, -) => string; - -function formEncoder(sep: string): FormEncoder { - return ( - key: string, - value: unknown, - options?: { explode?: boolean; charEncoding?: "percent" | "none" }, - ) => { - let out = ""; - const pairs: [string, unknown][] = options?.explode - ? explode(key, value) - : [[key, value]]; - - const encodeString = (v: string) => { - return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; - }; - - const encodeValue = (v: unknown) => encodeString(serializeValue(v)); - - const encodedSep = encodeString(sep); - - pairs.forEach(([pk, pv]) => { - let tmp = ""; - let encValue = ""; - - if (pv === undefined) { - return; - } else if (Array.isArray(pv)) { - encValue = mapDefined(pv, (v) => `${encodeValue(v)}`).join(encodedSep); - } else if (isPlainObject(pv)) { - encValue = mapDefinedEntries(Object.entries(pv), ([k, v]) => { - return `${encodeString(k)}${encodedSep}${encodeValue(v)}`; - }).join(encodedSep); - } else { - encValue = `${encodeValue(pv)}`; - } - - tmp = `${encodeString(pk)}=${encValue}`; - - // If we end up with the nothing then skip forward - if (!tmp || tmp === "=") { - return; - } - - out += `&${tmp}`; - }); - - return out.slice(1); - }; -} - -export const encodeForm = formEncoder(","); -export const encodeSpaceDelimited = formEncoder(" "); -export const encodePipeDelimited = formEncoder("|"); - -export function encodeBodyForm( - key: string, - value: unknown, - options?: { explode?: boolean; charEncoding?: "percent" | "none" }, -): string { - let out = ""; - const pairs: [string, unknown][] = options?.explode - ? explode(key, value) - : [[key, value]]; - - const encodeString = (v: string) => { - return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; - }; - - const encodeValue = (v: unknown) => encodeString(serializeValue(v)); - - pairs.forEach(([pk, pv]) => { - let tmp = ""; - let encValue = ""; - - if (pv === undefined) { - return; - } else if (Array.isArray(pv)) { - encValue = JSON.stringify(pv, jsonReplacer); - } else if (isPlainObject(pv)) { - encValue = JSON.stringify(pv, jsonReplacer); - } else { - encValue = `${encodeValue(pv)}`; - } - - tmp = `${encodeString(pk)}=${encValue}`; - - // If we end up with the nothing then skip forward - if (!tmp || tmp === "=") { - return; - } - - out += `&${tmp}`; - }); - - return out.slice(1); -} - -export function encodeDeepObject( - key: string, - value: unknown, - options?: { charEncoding?: "percent" | "none" }, -): string { - if (value == null) { - return ""; - } - - if (!isPlainObject(value)) { - throw new EncodingError( - `Value of parameter '${key}' which uses deepObject encoding must be an object`, - ); - } - - return encodeDeepObjectObject(key, value, options); -} - -export function encodeDeepObjectObject( - key: string, - value: unknown, - options?: { charEncoding?: "percent" | "none" }, -): string { - if (value == null) { - return ""; - } - - let out = ""; - - const encodeString = (v: string) => { - return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; - }; - - if (!isPlainObject(value)) { - throw new EncodingError(`Expected parameter '${key}' to be an object.`); - } - - Object.entries(value).forEach(([ck, cv]) => { - if (cv === undefined) { - return; - } - - const pk = `${key}[${ck}]`; - - if (isPlainObject(cv)) { - const objOut = encodeDeepObjectObject(pk, cv, options); - - out += `&${objOut}`; - - return; - } - - const pairs: unknown[] = Array.isArray(cv) ? cv : [cv]; - let encoded = ""; - - encoded = mapDefined(pairs, (v) => { - return `${encodeString(pk)}=${encodeString(serializeValue(v))}`; - }).join("&"); - - out += `&${encoded}`; - }); - - return out.slice(1); -} - -export function encodeJSON( - key: string, - value: unknown, - options?: { explode?: boolean; charEncoding?: "percent" | "none" }, -): string { - if (typeof value === "undefined") { - return ""; - } - - const encodeString = (v: string) => { - return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; - }; - - const encVal = encodeString(JSON.stringify(value, jsonReplacer)); - - return options?.explode ? encVal : `${encodeString(key)}=${encVal}`; -} - -export const encodeSimple = ( - key: string, - value: unknown, - options?: { explode?: boolean; charEncoding?: "percent" | "none" }, -): string => { - let out = ""; - const pairs: [string, unknown][] = options?.explode - ? explode(key, value) - : [[key, value]]; - - const encodeString = (v: string) => { - return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; - }; - const encodeValue = (v: unknown) => encodeString(serializeValue(v)); - - pairs.forEach(([pk, pv]) => { - let tmp = ""; - - if (pv === undefined) { - return; - } else if (Array.isArray(pv)) { - tmp = mapDefined(pv, (v) => `${encodeValue(v)}`).join(","); - } else if (isPlainObject(pv)) { - tmp = mapDefinedEntries(Object.entries(pv), ([k, v]) => { - return `,${encodeString(k)},${encodeValue(v)}`; - }).join(""); - tmp = tmp.slice(1); - } else { - const k = options?.explode && isPlainObject(value) ? `${pk}=` : ""; - tmp = `${k}${encodeValue(pv)}`; - } - - // If we end up with the nothing then skip forward - if (!tmp) { - return; - } - - out += `,${tmp}`; - }); - - return out.slice(1); -}; - -function explode(key: string, value: unknown): [string, unknown][] { - if (Array.isArray(value)) { - return value.map((v) => [key, v]); - } else if (isPlainObject(value)) { - const o = value ?? {}; - return Object.entries(o).map(([k, v]) => [k, v]); - } else { - return [[key, value]]; - } -} - -function serializeValue(value: unknown): string { - if (value === null) { - return "null"; - } else if (typeof value === "undefined") { - return ""; - } else if (value instanceof Date) { - return value.toISOString(); - } else if (value instanceof Uint8Array) { - return bytesToBase64(value); - } else if (typeof value === "object") { - return JSON.stringify(value, jsonReplacer); - } - - return `${value}`; -} - -function jsonReplacer(_: string, value: unknown): unknown { - if (value instanceof Uint8Array) { - return bytesToBase64(value); - } else { - return value; - } -} - -function mapDefined(inp: T[], mapper: (v: T) => R): R[] { - return inp.reduce((acc, v) => { - if (v === undefined) { - return acc; - } - - const m = mapper(v); - if (m === undefined) { - return acc; - } - - acc.push(m); - - return acc; - }, []); -} - -function mapDefinedEntries( - inp: Iterable<[K, V]>, - mapper: (v: [K, V]) => R, -): R[] { - const acc: R[] = []; - for (const [k, v] of inp) { - if (v === undefined) { - continue; - } - - const m = mapper([k, v]); - if (m === undefined) { - continue; - } - - acc.push(m); - } - - return acc; -} - -export function queryJoin(...args: string[]): string { - return args.filter(Boolean).join("&"); -} - -type QueryEncoderOptions = { - explode?: boolean; - charEncoding?: "percent" | "none"; -}; - -type QueryEncoder = ( - key: string, - value: unknown, - options?: QueryEncoderOptions, -) => string; - -type BulkQueryEncoder = ( - values: Record, - options?: QueryEncoderOptions, -) => string; - -export function queryEncoder(f: QueryEncoder): BulkQueryEncoder { - const bulkEncode = function ( - values: Record, - options?: QueryEncoderOptions, - ): string { - const opts: QueryEncoderOptions = { - ...options, - explode: options?.explode ?? true, - charEncoding: options?.charEncoding ?? "percent", - }; - - const encoded = Object.entries(values).map(([key, value]) => { - return f(key, value, opts); - }); - return queryJoin(...encoded); - }; - - return bulkEncode; -} - -export const encodeJSONQuery = queryEncoder(encodeJSON); -export const encodeFormQuery = queryEncoder(encodeForm); -export const encodeSpaceDelimitedQuery = queryEncoder(encodeSpaceDelimited); -export const encodePipeDelimitedQuery = queryEncoder(encodePipeDelimited); -export const encodeDeepObjectQuery = queryEncoder(encodeDeepObject); diff --git a/src/lib/files.ts b/src/lib/files.ts deleted file mode 100644 index 19e08041..00000000 --- a/src/lib/files.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -/** - * Consumes a stream and returns a concatenated array buffer. Useful in - * situations where we need to read the whole file because it forms part of a - * larger payload containing other fields, and we can't modify the underlying - * request structure. - */ -export async function readableStreamToArrayBuffer( - readable: ReadableStream, -): Promise { - const reader = readable.getReader(); - const chunks: Uint8Array[] = []; - - let totalLength = 0; - let done = false; - - while (!done) { - const { value, done: doneReading } = await reader.read(); - - if (doneReading) { - done = true; - } else { - chunks.push(value); - totalLength += value.length; - } - } - - const concatenatedChunks = new Uint8Array(totalLength); - let offset = 0; - - for (const chunk of chunks) { - concatenatedChunks.set(chunk, offset); - offset += chunk.length; - } - - return concatenatedChunks.buffer; -} diff --git a/src/lib/http.ts b/src/lib/http.ts deleted file mode 100644 index 13cf1fd7..00000000 --- a/src/lib/http.ts +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export type Fetcher = ( - input: RequestInfo | URL, - init?: RequestInit, -) => Promise; - -export type Awaitable = T | Promise; - -const DEFAULT_FETCHER: Fetcher = (input, init) => { - // If input is a Request and init is undefined, Bun will discard the method, - // headers, body and other options that were set on the request object. - // Node.js and browers would ignore an undefined init value. This check is - // therefore needed for interop with Bun. - if (init == null) { - return fetch(input); - } else { - return fetch(input, init); - } -}; - -export type RequestInput = { - /** - * The URL the request will use. - */ - url: URL; - /** - * Options used to create a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request). - */ - options?: RequestInit | undefined; -}; - -export interface HTTPClientOptions { - fetcher?: Fetcher; -} - -export type BeforeRequestHook = (req: Request) => Awaitable; -export type RequestErrorHook = (err: unknown, req: Request) => Awaitable; -export type ResponseHook = (res: Response, req: Request) => Awaitable; - -export class HTTPClient { - private fetcher: Fetcher; - private requestHooks: BeforeRequestHook[] = []; - private requestErrorHooks: RequestErrorHook[] = []; - private responseHooks: ResponseHook[] = []; - - constructor(private options: HTTPClientOptions = {}) { - this.fetcher = options.fetcher || DEFAULT_FETCHER; - } - - async request(request: Request): Promise { - let req = request; - for (const hook of this.requestHooks) { - const nextRequest = await hook(req); - if (nextRequest) { - req = nextRequest; - } - } - - try { - const res = await this.fetcher(req); - - for (const hook of this.responseHooks) { - await hook(res, req); - } - - return res; - } catch (err) { - for (const hook of this.requestErrorHooks) { - await hook(err, req); - } - - throw err; - } - } - - /** - * Registers a hook that is called before a request is made. The hook function - * can mutate the request or return a new request. This may be useful to add - * additional information to request such as request IDs and tracing headers. - */ - addHook(hook: "beforeRequest", fn: BeforeRequestHook): this; - /** - * Registers a hook that is called when a request cannot be made due to a - * network error. - */ - addHook(hook: "requestError", fn: RequestErrorHook): this; - /** - * Registers a hook that is called when a response has been received from the - * server. - */ - addHook(hook: "response", fn: ResponseHook): this; - addHook( - ...args: - | [hook: "beforeRequest", fn: BeforeRequestHook] - | [hook: "requestError", fn: RequestErrorHook] - | [hook: "response", fn: ResponseHook] - ) { - if (args[0] === "beforeRequest") { - this.requestHooks.push(args[1]); - } else if (args[0] === "requestError") { - this.requestErrorHooks.push(args[1]); - } else if (args[0] === "response") { - this.responseHooks.push(args[1]); - } else { - throw new Error(`Invalid hook type: ${args[0]}`); - } - return this; - } - - /** Removes a hook that was previously registered with `addHook`. */ - removeHook(hook: "beforeRequest", fn: BeforeRequestHook): this; - /** Removes a hook that was previously registered with `addHook`. */ - removeHook(hook: "requestError", fn: RequestErrorHook): this; - /** Removes a hook that was previously registered with `addHook`. */ - removeHook(hook: "response", fn: ResponseHook): this; - removeHook( - ...args: - | [hook: "beforeRequest", fn: BeforeRequestHook] - | [hook: "requestError", fn: RequestErrorHook] - | [hook: "response", fn: ResponseHook] - ): this { - let target: unknown[]; - if (args[0] === "beforeRequest") { - target = this.requestHooks; - } else if (args[0] === "requestError") { - target = this.requestErrorHooks; - } else if (args[0] === "response") { - target = this.responseHooks; - } else { - throw new Error(`Invalid hook type: ${args[0]}`); - } - - const index = target.findIndex((v) => v === args[1]); - if (index >= 0) { - target.splice(index, 1); - } - - return this; - } - - clone(): HTTPClient { - const child = new HTTPClient(this.options); - child.requestHooks = this.requestHooks.slice(); - child.requestErrorHooks = this.requestErrorHooks.slice(); - child.responseHooks = this.responseHooks.slice(); - - return child; - } -} - -export type StatusCodePredicate = number | string | (number | string)[]; - -// A semicolon surrounded by optional whitespace characters is used to separate -// segments in a media type string. -const mediaParamSeparator = /\s*;\s*/g; - -export function matchContentType(response: Response, pattern: string): boolean { - // `*` is a special case which means anything is acceptable. - if (pattern === "*") { - return true; - } - - let contentType = - response.headers.get("content-type")?.trim() || "application/octet-stream"; - contentType = contentType.toLowerCase(); - - const wantParts = pattern.toLowerCase().trim().split(mediaParamSeparator); - const [wantType = "", ...wantParams] = wantParts; - - if (wantType.split("/").length !== 2) { - return false; - } - - const gotParts = contentType.split(mediaParamSeparator); - const [gotType = "", ...gotParams] = gotParts; - - const [type = "", subtype = ""] = gotType.split("/"); - if (!type || !subtype) { - return false; - } - - if ( - wantType !== "*/*" && - gotType !== wantType && - `${type}/*` !== wantType && - `*/${subtype}` !== wantType - ) { - return false; - } - - if (gotParams.length < wantParams.length) { - return false; - } - - const params = new Set(gotParams); - for (const wantParam of wantParams) { - if (!params.has(wantParam)) { - return false; - } - } - - return true; -} - -const codeRangeRE = new RegExp("^[0-9]xx$", "i"); - -export function matchStatusCode( - response: Response, - codes: StatusCodePredicate, -): boolean { - const actual = `${response.status}`; - const expectedCodes = Array.isArray(codes) ? codes : [codes]; - if (!expectedCodes.length) { - return false; - } - - return expectedCodes.some((ec) => { - const code = `${ec}`; - - if (code === "default") { - return true; - } - - if (!codeRangeRE.test(`${code}`)) { - return code === actual; - } - - const expectFamily = code.charAt(0); - if (!expectFamily) { - throw new Error("Invalid status code range"); - } - - const actualFamily = actual.charAt(0); - if (!actualFamily) { - throw new Error(`Invalid response status code: ${actual}`); - } - - return actualFamily === expectFamily; - }); -} - -export function matchResponse( - response: Response, - code: StatusCodePredicate, - contentTypePattern: string, -): boolean { - return ( - matchStatusCode(response, code) && - matchContentType(response, contentTypePattern) - ); -} - -/** - * Uses various heurisitics to determine if an error is a connection error. - */ -export function isConnectionError(err: unknown): boolean { - if (typeof err !== "object" || err == null) { - return false; - } - - // Covers fetch in Deno as well - const isBrowserErr = - err instanceof TypeError && - err.message.toLowerCase().startsWith("failed to fetch"); - - const isNodeErr = - err instanceof TypeError && - err.message.toLowerCase().startsWith("fetch failed"); - - const isBunErr = "name" in err && err.name === "ConnectionError"; - - const isGenericErr = - "code" in err && - typeof err.code === "string" && - err.code.toLowerCase() === "econnreset"; - - return isBrowserErr || isNodeErr || isGenericErr || isBunErr; -} - -/** - * Uses various heurisitics to determine if an error is a timeout error. - */ -export function isTimeoutError(err: unknown): boolean { - if (typeof err !== "object" || err == null) { - return false; - } - - // Fetch in browser, Node.js, Bun, Deno - const isNative = "name" in err && err.name === "TimeoutError"; - const isLegacyNative = "code" in err && err.code === 23; - - // Node.js HTTP client and Axios - const isGenericErr = - "code" in err && - typeof err.code === "string" && - err.code.toLowerCase() === "econnaborted"; - - return isNative || isLegacyNative || isGenericErr; -} - -/** - * Uses various heurisitics to determine if an error is a abort error. - */ -export function isAbortError(err: unknown): boolean { - if (typeof err !== "object" || err == null) { - return false; - } - - // Fetch in browser, Node.js, Bun, Deno - const isNative = "name" in err && err.name === "AbortError"; - const isLegacyNative = "code" in err && err.code === 20; - - // Node.js HTTP client and Axios - const isGenericErr = - "code" in err && - typeof err.code === "string" && - err.code.toLowerCase() === "econnaborted"; - - return isNative || isLegacyNative || isGenericErr; -} diff --git a/src/lib/is-plain-object.ts b/src/lib/is-plain-object.ts deleted file mode 100644 index 61070d3d..00000000 --- a/src/lib/is-plain-object.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -/* -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -// Taken from https://github.com/sindresorhus/is-plain-obj/blob/97f38e8836f86a642cce98fc6ab3058bc36df181/index.js - -export function isPlainObject(value: unknown): value is object { - if (typeof value !== "object" || value === null) { - return false; - } - - const prototype = Object.getPrototypeOf(value); - return ( - (prototype === null || - prototype === Object.prototype || - Object.getPrototypeOf(prototype) === null) && - !(Symbol.toStringTag in value) && - !(Symbol.iterator in value) - ); -} diff --git a/src/lib/logger.ts b/src/lib/logger.ts deleted file mode 100644 index d181f293..00000000 --- a/src/lib/logger.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export interface Logger { - group(label?: string): void; - groupEnd(): void; - log(message: any, ...args: any[]): void; -} diff --git a/src/lib/matchers.ts b/src/lib/matchers.ts deleted file mode 100644 index 19b46b33..00000000 --- a/src/lib/matchers.ts +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { SDKError } from "../models/errors/sdkerror.js"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { Result } from "../types/fp.js"; -import { matchResponse, matchStatusCode, StatusCodePredicate } from "./http.js"; -import { isPlainObject } from "./is-plain-object.js"; -import { safeParse } from "./schemas.js"; - -export type Encoding = - | "json" - | "text" - | "bytes" - | "stream" - | "sse" - | "nil" - | "fail"; - -const DEFAULT_CONTENT_TYPES: Record = { - json: "application/json", - text: "text/plain", - bytes: "application/octet-stream", - stream: "application/octet-stream", - sse: "text/event-stream", - nil: "*", - fail: "*", -}; - -type Schema = { parse(raw: unknown): T }; - -type MatchOptions = { - ctype?: string; - hdrs?: boolean; - key?: string; - sseSentinel?: string; -}; - -export type ValueMatcher = MatchOptions & { - enc: Encoding; - codes: StatusCodePredicate; - schema: Schema; -}; - -export type ErrorMatcher = MatchOptions & { - enc: Encoding; - codes: StatusCodePredicate; - schema: Schema; - err: true; -}; - -export type FailMatcher = { - enc: "fail"; - codes: StatusCodePredicate; -}; - -export type Matcher = ValueMatcher | ErrorMatcher | FailMatcher; - -export function jsonErr( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ErrorMatcher { - return { ...options, err: true, enc: "json", codes, schema }; -} -export function json( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ValueMatcher { - return { ...options, enc: "json", codes, schema }; -} - -export function textErr( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ErrorMatcher { - return { ...options, err: true, enc: "text", codes, schema }; -} -export function text( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ValueMatcher { - return { ...options, enc: "text", codes, schema }; -} - -export function bytesErr( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ErrorMatcher { - return { ...options, err: true, enc: "bytes", codes, schema }; -} -export function bytes( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ValueMatcher { - return { ...options, enc: "bytes", codes, schema }; -} - -export function streamErr( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ErrorMatcher { - return { ...options, err: true, enc: "stream", codes, schema }; -} -export function stream( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ValueMatcher { - return { ...options, enc: "stream", codes, schema }; -} - -export function sseErr( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ErrorMatcher { - return { ...options, err: true, enc: "sse", codes, schema }; -} -export function sse( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ValueMatcher { - return { ...options, enc: "sse", codes, schema }; -} - -export function nilErr( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ErrorMatcher { - return { ...options, err: true, enc: "nil", codes, schema }; -} -export function nil( - codes: StatusCodePredicate, - schema: Schema, - options?: MatchOptions, -): ValueMatcher { - return { ...options, enc: "nil", codes, schema }; -} - -export function fail(codes: StatusCodePredicate): FailMatcher { - return { enc: "fail", codes }; -} - -export type MatchedValue = Matchers extends Matcher[] - ? T - : never; -export type MatchedError = Matchers extends Matcher[] - ? E - : never; -export type MatchFunc = ( - response: Response, - options?: { resultKey?: string; extraFields?: Record }, -) => Promise<[result: Result, raw: unknown]>; - -export function match( - ...matchers: Array> -): MatchFunc { - return async function matchFunc( - response: Response, - options?: { resultKey?: string; extraFields?: Record }, - ): Promise< - [result: Result, raw: unknown] - > { - let raw: unknown; - let matcher: Matcher | undefined; - for (const match of matchers) { - const { codes } = match; - const ctpattern = "ctype" in match - ? match.ctype - : DEFAULT_CONTENT_TYPES[match.enc]; - if (ctpattern && matchResponse(response, codes, ctpattern)) { - matcher = match; - break; - } else if (!ctpattern && matchStatusCode(response, codes)) { - matcher = match; - break; - } - } - - if (!matcher) { - const responseBody = await response.text(); - return [{ - ok: false, - error: new SDKError( - "Unexpected API response status or content-type", - response, - responseBody, - ), - }, responseBody]; - } - - const encoding = matcher.enc; - switch (encoding) { - case "json": - raw = await response.json(); - break; - case "bytes": - raw = new Uint8Array(await response.arrayBuffer()); - break; - case "stream": - raw = response.body; - break; - case "text": - raw = await response.text(); - break; - case "sse": - raw = response.body; - break; - case "nil": - raw = await discardResponseBody(response); - break; - case "fail": - raw = await response.text(); - break; - default: - encoding satisfies never; - throw new Error(`Unsupported response type: ${encoding}`); - } - - if (matcher.enc === "fail") { - return [{ - ok: false, - error: new SDKError( - "API error occurred", - response, - typeof raw === "string" ? raw : "", - ), - }, raw]; - } - - const resultKey = matcher.key || options?.resultKey; - let data: unknown; - - if ("err" in matcher) { - data = { - ...options?.extraFields, - ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null), - ...(isPlainObject(raw) ? raw : null), - }; - } else if (resultKey) { - data = { - ...options?.extraFields, - ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null), - [resultKey]: raw, - }; - } else if (matcher.hdrs) { - data = { - ...options?.extraFields, - ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null), - ...(isPlainObject(raw) ? raw : null), - }; - } else { - data = raw; - } - - if ("err" in matcher) { - const result = safeParse( - data, - (v: unknown) => matcher.schema.parse(v), - "Response validation failed", - ); - return [result.ok ? { ok: false, error: result.value } : result, raw]; - } else { - return [ - safeParse( - data, - (v: unknown) => matcher.schema.parse(v), - "Response validation failed", - ), - raw, - ]; - } - }; -} - -const headerValRE = /, */; -/** - * Iterates over a Headers object and returns an object with all the header - * entries. Values are represented as an array to account for repeated headers. - */ -export function unpackHeaders(headers: Headers): Record { - const out: Record = {}; - - for (const [k, v] of headers.entries()) { - out[k] = v.split(headerValRE); - } - - return out; -} - -/** - * Discards the response body to free up resources. - * - * To learn why this is need, see the undici docs: - * https://undici.nodejs.org/#/?id=garbage-collection - */ -export async function discardResponseBody(res: Response) { - const reader = res.body?.getReader(); - if (reader == null) { - return; - } - - try { - let done = false; - while (!done) { - const res = await reader.read(); - done = res.done; - } - } finally { - reader.releaseLock(); - } -} diff --git a/src/lib/primitives.ts b/src/lib/primitives.ts deleted file mode 100644 index 48b28674..00000000 --- a/src/lib/primitives.ts +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -class InvariantError extends Error { - constructor(message: string) { - super(message); - this.name = "InvariantError"; - } -} - -export function invariant( - condition: unknown, - message: string, -): asserts condition { - if (!condition) { - throw new InvariantError(message); - } -} - -export type ExactPartial = { - [P in keyof T]?: T[P] | undefined; -}; - -export type Remap = { - [k in keyof Inp as Mapping[k] extends string /* if we have a string mapping for this key then use it */ - ? Mapping[k] - : Mapping[k] extends null /* if the mapping is to `null` then drop the key */ - ? never - : k /* otherwise keep the key as-is */]: Inp[k]; -}; - -/** - * Converts or omits an object's keys according to a mapping. - * - * @param inp An object whose keys will be remapped - * @param mappings A mapping of original keys to new keys. If a key is not present in the mapping, it will be left as is. If a key is mapped to `null`, it will be removed in the resulting object. - * @returns A new object with keys remapped or omitted according to the mappings - */ -export function remap< - Inp extends Record, - const Mapping extends { [k in keyof Inp]?: string | null }, ->(inp: Inp, mappings: Mapping): Remap { - let out: any = {}; - - if (!Object.keys(mappings).length) { - out = inp; - return out; - } - - for (const [k, v] of Object.entries(inp)) { - const j = mappings[k]; - if (j === null) { - continue; - } - out[j ?? k] = v; - } - - return out; -} diff --git a/src/lib/retries.ts b/src/lib/retries.ts deleted file mode 100644 index 93ebc8de..00000000 --- a/src/lib/retries.ts +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { isConnectionError, isTimeoutError } from "./http.js"; - -export type BackoffStrategy = { - initialInterval: number; - maxInterval: number; - exponent: number; - maxElapsedTime: number; -}; - -const defaultBackoff: BackoffStrategy = { - initialInterval: 500, - maxInterval: 60000, - exponent: 1.5, - maxElapsedTime: 3600000, -}; - -export type RetryConfig = - | { strategy: "none" } - | { - strategy: "backoff"; - backoff?: BackoffStrategy; - retryConnectionErrors?: boolean; - }; - -/** - * PermanentError is an error that is not recoverable. Throwing this error will - * cause a retry loop to terminate. - */ -export class PermanentError extends Error { - /** The underlying cause of the error. */ - override readonly cause: unknown; - - constructor(message: string, options?: { cause?: unknown }) { - let msg = message; - if (options?.cause) { - msg += `: ${options.cause}`; - } - - super(msg, options); - this.name = "PermanentError"; - // In older runtimes, the cause field would not have been assigned through - // the super() call. - if (typeof this.cause === "undefined") { - this.cause = options?.cause; - } - - Object.setPrototypeOf(this, PermanentError.prototype); - } -} - -/** - * TemporaryError is an error is used to signal that an HTTP request can be - * retried as part of a retry loop. If retry attempts are exhausted and this - * error is thrown, the response will be returned to the caller. - */ -export class TemporaryError extends Error { - response: Response; - - constructor(message: string, response: Response) { - super(message); - this.response = response; - this.name = "TemporaryError"; - - Object.setPrototypeOf(this, TemporaryError.prototype); - } -} - -export async function retry( - fetchFn: () => Promise, - options: { - config: RetryConfig; - statusCodes: string[]; - }, -): Promise { - switch (options.config.strategy) { - case "backoff": - return retryBackoff( - wrapFetcher(fetchFn, { - statusCodes: options.statusCodes, - retryConnectionErrors: !!options.config.retryConnectionErrors, - }), - options.config.backoff ?? defaultBackoff, - ); - default: - return await fetchFn(); - } -} - -function wrapFetcher( - fn: () => Promise, - options: { - statusCodes: string[]; - retryConnectionErrors: boolean; - }, -): () => Promise { - return async () => { - try { - const res = await fn(); - if (isRetryableResponse(res, options.statusCodes)) { - throw new TemporaryError( - "Response failed with retryable status code", - res, - ); - } - - return res; - } catch (err: unknown) { - if (err instanceof TemporaryError) { - throw err; - } - - if ( - options.retryConnectionErrors && - (isTimeoutError(err) || isConnectionError(err)) - ) { - throw err; - } - - throw new PermanentError("Permanent error", { cause: err }); - } - }; -} - -const codeRangeRE = new RegExp("^[0-9]xx$", "i"); - -function isRetryableResponse(res: Response, statusCodes: string[]): boolean { - const actual = `${res.status}`; - - return statusCodes.some((code) => { - if (!codeRangeRE.test(code)) { - return code === actual; - } - - const expectFamily = code.charAt(0); - if (!expectFamily) { - throw new Error("Invalid status code range"); - } - - const actualFamily = actual.charAt(0); - if (!actualFamily) { - throw new Error(`Invalid response status code: ${actual}`); - } - - return actualFamily === expectFamily; - }); -} - -async function retryBackoff( - fn: () => Promise, - strategy: BackoffStrategy, -): Promise { - const { maxElapsedTime, initialInterval, exponent, maxInterval } = strategy; - - const start = Date.now(); - let x = 0; - - // eslint-disable-next-line no-constant-condition - while (true) { - try { - const res = await fn(); - return res; - } catch (err: unknown) { - if (err instanceof PermanentError) { - throw err.cause; - } - const elapsed = Date.now() - start; - if (elapsed > maxElapsedTime) { - if (err instanceof TemporaryError) { - return err.response; - } - - throw err; - } - - let retryInterval = 0; - if (err instanceof TemporaryError) { - retryInterval = retryIntervalFromResponse(err.response); - } - - if (retryInterval <= 0) { - retryInterval = - initialInterval * Math.pow(x, exponent) + Math.random() * 1000; - } - - const d = Math.min(retryInterval, maxInterval); - - await delay(d); - x++; - } - } -} - -function retryIntervalFromResponse(res: Response): number { - const retryVal = res.headers.get("retry-after") || ""; - if (!retryVal) { - return 0; - } - - const parsedNumber = Number(retryVal); - if (Number.isInteger(parsedNumber)) { - return parsedNumber * 1000; - } - - const parsedDate = Date.parse(retryVal); - if (Number.isInteger(parsedDate)) { - const deltaMS = parsedDate - Date.now(); - return deltaMS > 0 ? Math.ceil(deltaMS) : 0; - } - - return 0; -} - -async function delay(delay: number): Promise { - return new Promise((resolve) => setTimeout(resolve, delay)); -} diff --git a/src/lib/schemas.ts b/src/lib/schemas.ts deleted file mode 100644 index f3856dcb..00000000 --- a/src/lib/schemas.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { - output, - ZodEffects, - ZodError, - ZodObject, - ZodRawShape, - ZodTypeAny, -} from "zod"; -import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; -import { ERR, OK, Result } from "../types/fp.js"; - -/** - * Utility function that executes some code which may throw a ZodError. It - * intercepts this error and converts it to an SDKValidationError so as to not - * leak Zod implementation details to user code. - */ -export function parse( - rawValue: Inp, - fn: (value: Inp) => Out, - errorMessage: string, -): Out { - try { - return fn(rawValue); - } catch (err) { - if (err instanceof ZodError) { - throw new SDKValidationError(errorMessage, err, rawValue); - } - throw err; - } -} - -/** - * Utility function that executes some code which may result in a ZodError. It - * intercepts this error and converts it to an SDKValidationError so as to not - * leak Zod implementation details to user code. - */ -export function safeParse( - rawValue: Inp, - fn: (value: Inp) => Out, - errorMessage: string, -): Result { - try { - return OK(fn(rawValue)); - } catch (err) { - return ERR(new SDKValidationError(errorMessage, err, rawValue)); - } -} - -export function collectExtraKeys< - Shape extends ZodRawShape, - Catchall extends ZodTypeAny, - K extends string, ->( - obj: ZodObject, - extrasKey: K, -): ZodEffects< - typeof obj, - & output> - & { - [k in K]: Record>; - } -> { - return obj.transform((val) => { - const extras: Record> = {}; - const { shape } = obj; - for (const [key] of Object.entries(val)) { - if (key in shape) { - continue; - } - - const v = val[key]; - if (typeof v === "undefined") { - continue; - } - - extras[key] = v; - delete val[key]; - } - - return { ...val, [extrasKey]: extras }; - }); -} diff --git a/src/lib/sdks.ts b/src/lib/sdks.ts deleted file mode 100644 index 2ce720a9..00000000 --- a/src/lib/sdks.ts +++ /dev/null @@ -1,388 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { SDKHooks } from "../hooks/hooks.js"; -import { HookContext } from "../hooks/types.js"; -import { - ConnectionError, - InvalidRequestError, - RequestAbortedError, - RequestTimeoutError, - UnexpectedClientError, -} from "../models/errors/httpclienterrors.js"; -import { ERR, OK, Result } from "../types/fp.js"; -import { stringToBase64 } from "./base64.js"; -import { SDK_METADATA, SDKOptions, serverURLFromOptions } from "./config.js"; -import { encodeForm } from "./encodings.js"; -import { - HTTPClient, - isAbortError, - isConnectionError, - isTimeoutError, - matchContentType, - matchStatusCode, -} from "./http.js"; -import { Logger } from "./logger.js"; -import { retry, RetryConfig } from "./retries.js"; -import { SecurityState } from "./security.js"; - -export type RequestOptions = { - /** - * Sets a timeout, in milliseconds, on HTTP requests made by an SDK method. If - * `fetchOptions.signal` is set then it will take precedence over this option. - */ - timeoutMs?: number; - /** - * Set or override a retry policy on HTTP calls. - */ - retries?: RetryConfig; - /** - * Specifies the status codes which should be retried using the given retry policy. - */ - retryCodes?: string[]; - /** - * Sets various request options on the `fetch` call made by an SDK method. - * - * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options|Request} - */ - fetchOptions?: Omit; -}; - -type RequestConfig = { - method: string; - path: string; - baseURL?: string | URL; - query?: string; - body?: RequestInit["body"]; - headers?: HeadersInit; - security?: SecurityState | null; - uaHeader?: string; - timeoutMs?: number; -}; - -const gt: unknown = typeof globalThis === "undefined" ? null : globalThis; -const webWorkerLike = typeof gt === "object" - && gt != null - && "importScripts" in gt - && typeof gt["importScripts"] === "function"; -const isBrowserLike = webWorkerLike - || (typeof navigator !== "undefined" && "serviceWorker" in navigator) - || (typeof window === "object" && typeof window.document !== "undefined"); - -export class ClientSDK { - readonly #httpClient: HTTPClient; - readonly #hooks: SDKHooks; - readonly #logger?: Logger | undefined; - protected readonly _baseURL: URL | null; - public readonly _options: SDKOptions & { hooks?: SDKHooks }; - - constructor(options: SDKOptions = {}) { - const opt = options as unknown; - if ( - typeof opt === "object" - && opt != null - && "hooks" in opt - && opt.hooks instanceof SDKHooks - ) { - this.#hooks = opt.hooks; - } else { - this.#hooks = new SDKHooks(); - } - this._options = { ...options, hooks: this.#hooks }; - - const url = serverURLFromOptions(options); - if (url) { - url.pathname = url.pathname.replace(/\/+$/, "") + "/"; - } - const { baseURL, client } = this.#hooks.sdkInit({ - baseURL: url, - client: options.httpClient || new HTTPClient(), - }); - this._baseURL = baseURL; - this.#httpClient = client; - this.#logger = options.debugLogger; - } - - public _createRequest( - context: HookContext, - conf: RequestConfig, - options?: RequestOptions, - ): Result { - const { method, path, query, headers: opHeaders, security } = conf; - - const base = conf.baseURL ?? this._baseURL; - if (!base) { - return ERR(new InvalidRequestError("No base URL provided for operation")); - } - const reqURL = new URL(base); - const inputURL = new URL(path, reqURL); - - if (path) { - reqURL.pathname += inputURL.pathname.replace(/^\/+/, ""); - } - - let finalQuery = query || ""; - - const secQuery: string[] = []; - for (const [k, v] of Object.entries(security?.queryParams || {})) { - secQuery.push(encodeForm(k, v, { charEncoding: "percent" })); - } - if (secQuery.length) { - finalQuery += `&${secQuery.join("&")}`; - } - - if (finalQuery) { - const q = finalQuery.startsWith("&") ? finalQuery.slice(1) : finalQuery; - reqURL.search = `?${q}`; - } - - const headers = new Headers(opHeaders); - - const username = security?.basic.username; - const password = security?.basic.password; - if (username != null || password != null) { - const encoded = stringToBase64( - [username || "", password || ""].join(":"), - ); - headers.set("Authorization", `Basic ${encoded}`); - } - - const securityHeaders = new Headers(security?.headers || {}); - for (const [k, v] of securityHeaders) { - headers.set(k, v); - } - - let cookie = headers.get("cookie") || ""; - for (const [k, v] of Object.entries(security?.cookies || {})) { - cookie += `; ${k}=${v}`; - } - cookie = cookie.startsWith("; ") ? cookie.slice(2) : cookie; - headers.set("cookie", cookie); - - const userHeaders = new Headers(options?.fetchOptions?.headers); - for (const [k, v] of userHeaders) { - headers.set(k, v); - } - - // Only set user agent header in non-browser-like environments since CORS - // policy disallows setting it in browsers e.g. Chrome throws an error. - if (!isBrowserLike) { - headers.set(conf.uaHeader ?? "user-agent", SDK_METADATA.userAgent); - } - - let fetchOptions = options?.fetchOptions; - if (!fetchOptions?.signal && conf.timeoutMs && conf.timeoutMs > 0) { - const timeoutSignal = AbortSignal.timeout(conf.timeoutMs); - if (!fetchOptions) { - fetchOptions = { signal: timeoutSignal }; - } else { - fetchOptions.signal = timeoutSignal; - } - } - - if (conf.body instanceof ReadableStream) { - if (!fetchOptions) { - fetchOptions = { - // @ts-expect-error see https://github.com/node-fetch/node-fetch/issues/1769 - duplex: "half", - }; - } else { - // @ts-expect-error see https://github.com/node-fetch/node-fetch/issues/1769 - fetchOptions.duplex = "half"; - } - } - - let input; - try { - input = this.#hooks.beforeCreateRequest(context, { - url: reqURL, - options: { - ...fetchOptions, - body: conf.body ?? null, - headers, - method, - }, - }); - } catch (err: unknown) { - return ERR( - new UnexpectedClientError("Create request hook failed to execute", { - cause: err, - }), - ); - } - - return OK(new Request(input.url, input.options)); - } - - public async _do( - request: Request, - options: { - context: HookContext; - errorCodes: number | string | (number | string)[]; - retryConfig: RetryConfig; - retryCodes: string[]; - }, - ): Promise< - Result< - Response, - | RequestAbortedError - | RequestTimeoutError - | ConnectionError - | UnexpectedClientError - > - > { - const { context, errorCodes } = options; - - return retry( - async () => { - const req = await this.#hooks.beforeRequest(context, request.clone()); - await logRequest(this.#logger, req).catch((e) => - this.#logger?.log("Failed to log request:", e) - ); - - let response = await this.#httpClient.request(req); - - try { - if (matchStatusCode(response, errorCodes)) { - const result = await this.#hooks.afterError( - context, - response, - null, - ); - if (result.error) { - throw result.error; - } - response = result.response || response; - } else { - response = await this.#hooks.afterSuccess(context, response); - } - } finally { - await logResponse(this.#logger, response, req) - .catch(e => this.#logger?.log("Failed to log response:", e)); - } - - return response; - }, - { config: options.retryConfig, statusCodes: options.retryCodes }, - ).then( - (r) => OK(r), - (err) => { - switch (true) { - case isAbortError(err): - return ERR( - new RequestAbortedError("Request aborted by client", { - cause: err, - }), - ); - case isTimeoutError(err): - return ERR( - new RequestTimeoutError("Request timed out", { cause: err }), - ); - case isConnectionError(err): - return ERR( - new ConnectionError("Unable to make request", { cause: err }), - ); - default: - return ERR( - new UnexpectedClientError("Unexpected HTTP client error", { - cause: err, - }), - ); - } - }, - ); - } -} - -const jsonLikeContentTypeRE = /^application\/(?:.{0,100}\+)?json/; -async function logRequest(logger: Logger | undefined, req: Request) { - if (!logger) { - return; - } - - const contentType = req.headers.get("content-type"); - const ct = contentType?.split(";")[0] || ""; - - logger.group(`> Request: ${req.method} ${req.url}`); - - logger.group("Headers:"); - for (const [k, v] of req.headers.entries()) { - logger.log(`${k}: ${v}`); - } - logger.groupEnd(); - - logger.group("Body:"); - switch (true) { - case jsonLikeContentTypeRE.test(ct): - logger.log(await req.clone().json()); - break; - case ct.startsWith("text/"): - logger.log(await req.clone().text()); - break; - case ct === "multipart/form-data": { - const body = await req.clone().formData(); - for (const [k, v] of body) { - const vlabel = v instanceof Blob ? "" : v; - logger.log(`${k}: ${vlabel}`); - } - break; - } - default: - logger.log(`<${contentType}>`); - break; - } - logger.groupEnd(); - - logger.groupEnd(); -} - -async function logResponse( - logger: Logger | undefined, - res: Response, - req: Request, -) { - if (!logger) { - return; - } - - const contentType = res.headers.get("content-type"); - const ct = contentType?.split(";")[0] || ""; - - logger.group(`< Response: ${req.method} ${req.url}`); - logger.log("Status Code:", res.status, res.statusText); - - logger.group("Headers:"); - for (const [k, v] of res.headers.entries()) { - logger.log(`${k}: ${v}`); - } - logger.groupEnd(); - - logger.group("Body:"); - switch (true) { - case matchContentType(res, "application/json") - || jsonLikeContentTypeRE.test(ct): - logger.log(await res.clone().json()); - break; - case matchContentType(res, "text/event-stream"): - logger.log(`<${contentType}>`); - break; - case matchContentType(res, "text/*"): - logger.log(await res.clone().text()); - break; - case matchContentType(res, "multipart/form-data"): { - const body = await res.clone().formData(); - for (const [k, v] of body) { - const vlabel = v instanceof Blob ? "" : v; - logger.log(`${k}: ${vlabel}`); - } - break; - } - default: - logger.log(`<${contentType}>`); - break; - } - logger.groupEnd(); - - logger.groupEnd(); -} diff --git a/src/lib/security.ts b/src/lib/security.ts deleted file mode 100644 index 5a45e6d0..00000000 --- a/src/lib/security.ts +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as components from "../models/components/index.js"; - -type OAuth2PasswordFlow = { - username: string; - password?: string | undefined; - clientID: string; - clientSecret?: string | undefined; - tokenURL: string; -}; - -export enum SecurityErrorCode { - Incomplete = "incomplete", - UnrecognisedSecurityType = "unrecognized_security_type", -} - -export class SecurityError extends Error { - constructor( - public code: SecurityErrorCode, - message: string, - ) { - super(message); - this.name = "SecurityError"; - } - - static incomplete(): SecurityError { - return new SecurityError( - SecurityErrorCode.Incomplete, - "Security requirements not met in order to perform the operation", - ); - } - static unrecognizedType(type: string): SecurityError { - return new SecurityError( - SecurityErrorCode.UnrecognisedSecurityType, - `Unrecognised security type: ${type}`, - ); - } -} - -export type SecurityState = { - basic: { username?: string | undefined; password?: string | undefined }; - headers: Record; - queryParams: Record; - cookies: Record; - oauth2: ({ type: "password" } & OAuth2PasswordFlow) | { type: "none" }; -}; - -type SecurityInputBasic = { - type: "http:basic"; - value: - | { username?: string | undefined; password?: string | undefined } - | null - | undefined; -}; - -type SecurityInputBearer = { - type: "http:bearer"; - value: string | null | undefined; - fieldName: string; -}; - -type SecurityInputAPIKey = { - type: "apiKey:header" | "apiKey:query" | "apiKey:cookie"; - value: string | null | undefined; - fieldName: string; -}; - -type SecurityInputOIDC = { - type: "openIdConnect"; - value: string | null | undefined; - fieldName: string; -}; - -type SecurityInputOAuth2 = { - type: "oauth2"; - value: string | null | undefined; - fieldName: string; -}; - -type SecurityInputOAuth2ClientCredentials = { - type: "oauth2:client_credentials"; - value: - | { clientID?: string | undefined; clientSecret?: string | undefined } - | null - | undefined; -}; - -type SecurityInputOAuth2PasswordCredentials = { - type: "oauth2:password"; - value: - | string - | null - | undefined; - fieldName: string; -}; - -type SecurityInputCustom = { - type: "http:custom"; - value: any | null | undefined; - fieldName: string; -}; - -export type SecurityInput = - | SecurityInputBasic - | SecurityInputBearer - | SecurityInputAPIKey - | SecurityInputOAuth2 - | SecurityInputOAuth2ClientCredentials - | SecurityInputOAuth2PasswordCredentials - | SecurityInputOIDC - | SecurityInputCustom; - -export function resolveSecurity( - ...options: SecurityInput[][] -): SecurityState | null { - const state: SecurityState = { - basic: { username: "", password: "" }, - headers: {}, - queryParams: {}, - cookies: {}, - oauth2: { type: "none" }, - }; - - const option = options.find((opts) => { - return opts.every((o) => { - if (o.value == null) { - return false; - } else if (o.type === "http:basic") { - return o.value.username != null || o.value.password != null; - } else if (o.type === "http:custom") { - return null; - } else if (o.type === "oauth2:password") { - return ( - typeof o.value === "string" && !!o.value - ); - } else if (o.type === "oauth2:client_credentials") { - return o.value.clientID != null || o.value.clientSecret != null; - } else if (typeof o.value === "string") { - return !!o.value; - } else { - throw new Error( - `Unrecognized security type: ${o.type} (value type: ${typeof o - .value})`, - ); - } - }); - }); - if (option == null) { - return null; - } - - option.forEach((spec) => { - if (spec.value == null) { - return; - } - - const { type } = spec; - - switch (type) { - case "apiKey:header": - state.headers[spec.fieldName] = spec.value; - break; - case "apiKey:query": - state.queryParams[spec.fieldName] = spec.value; - break; - case "apiKey:cookie": - state.cookies[spec.fieldName] = spec.value; - break; - case "http:basic": - applyBasic(state, spec); - break; - case "http:custom": - break; - case "http:bearer": - applyBearer(state, spec); - break; - case "oauth2": - applyBearer(state, spec); - break; - case "oauth2:password": - applyBearer(state, spec); - break; - case "oauth2:client_credentials": - break; - case "openIdConnect": - applyBearer(state, spec); - break; - default: - spec satisfies never; - throw SecurityError.unrecognizedType(type); - } - }); - - return state; -} - -function applyBasic( - state: SecurityState, - spec: SecurityInputBasic, -) { - if (spec.value == null) { - return; - } - - state.basic = spec.value; -} - -function applyBearer( - state: SecurityState, - spec: - | SecurityInputBearer - | SecurityInputOAuth2 - | SecurityInputOIDC - | SecurityInputOAuth2PasswordCredentials, -) { - if (typeof spec.value !== "string" || !spec.value) { - return; - } - - let value = spec.value; - if (value.slice(0, 7).toLowerCase() !== "bearer ") { - value = `Bearer ${value}`; - } - - state.headers[spec.fieldName] = value; -} - -export function resolveGlobalSecurity( - security: Partial | null | undefined, -): SecurityState | null { - return resolveSecurity( - [ - { - fieldName: "Authorization", - type: "apiKey:header", - value: security?.apiKey, - }, - ], - ); -} - -export async function extractSecurity< - T extends string | Record, ->(sec: T | (() => Promise) | undefined): Promise { - if (sec == null) { - return; - } - - return typeof sec === "function" ? sec() : sec; -} diff --git a/src/lib/url.ts b/src/lib/url.ts deleted file mode 100644 index 6bc6356e..00000000 --- a/src/lib/url.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -const hasOwn = Object.prototype.hasOwnProperty; - -export type Params = Partial>; - -export function pathToFunc( - pathPattern: string, - options?: { charEncoding?: "percent" | "none" }, -): (params?: Params) => string { - const paramRE = /\{([a-zA-Z0-9_]+?)\}/g; - - return function buildURLPath(params: Record = {}): string { - return pathPattern.replace(paramRE, function (_, placeholder) { - if (!hasOwn.call(params, placeholder)) { - throw new Error(`Parameter '${placeholder}' is required`); - } - - const value = params[placeholder]; - if (typeof value !== "string" && typeof value !== "number") { - throw new Error( - `Parameter '${placeholder}' must be a string or number`, - ); - } - - return options?.charEncoding === "percent" - ? encodeURIComponent(`${value}`) - : `${value}`; - }); - }; -} diff --git a/src/models/components/activitiesresponsedto.ts b/src/models/components/activitiesresponsedto.ts deleted file mode 100644 index 43be2909..00000000 --- a/src/models/components/activitiesresponsedto.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type ActivitiesResponseDto = { - hasMore: boolean; - data: Array; - pageSize: number; - page: number; -}; - -/** @internal */ -export const ActivitiesResponseDto$inboundSchema: z.ZodType< - ActivitiesResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - hasMore: z.boolean(), - data: z.array(z.string()), - pageSize: z.number(), - page: z.number(), -}); - -/** @internal */ -export type ActivitiesResponseDto$Outbound = { - hasMore: boolean; - data: Array; - pageSize: number; - page: number; -}; - -/** @internal */ -export const ActivitiesResponseDto$outboundSchema: z.ZodType< - ActivitiesResponseDto$Outbound, - z.ZodTypeDef, - ActivitiesResponseDto -> = z.object({ - hasMore: z.boolean(), - data: z.array(z.string()), - pageSize: z.number(), - page: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ActivitiesResponseDto$ { - /** @deprecated use `ActivitiesResponseDto$inboundSchema` instead. */ - export const inboundSchema = ActivitiesResponseDto$inboundSchema; - /** @deprecated use `ActivitiesResponseDto$outboundSchema` instead. */ - export const outboundSchema = ActivitiesResponseDto$outboundSchema; - /** @deprecated use `ActivitiesResponseDto$Outbound` instead. */ - export type Outbound = ActivitiesResponseDto$Outbound; -} - -export function activitiesResponseDtoToJSON( - activitiesResponseDto: ActivitiesResponseDto, -): string { - return JSON.stringify( - ActivitiesResponseDto$outboundSchema.parse(activitiesResponseDto), - ); -} - -export function activitiesResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ActivitiesResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ActivitiesResponseDto' from JSON`, - ); -} diff --git a/src/models/components/activitygraphstatesresponse.ts b/src/models/components/activitygraphstatesresponse.ts deleted file mode 100644 index f2e00967..00000000 --- a/src/models/components/activitygraphstatesresponse.ts +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const Channels = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type Channels = ClosedEnum; - -export type ActivityGraphStatesResponse = { - id: string; - count: number; - templates: Array; - channels: Array; -}; - -/** @internal */ -export const Channels$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Channels); - -/** @internal */ -export const Channels$outboundSchema: z.ZodNativeEnum = - Channels$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Channels$ { - /** @deprecated use `Channels$inboundSchema` instead. */ - export const inboundSchema = Channels$inboundSchema; - /** @deprecated use `Channels$outboundSchema` instead. */ - export const outboundSchema = Channels$outboundSchema; -} - -/** @internal */ -export const ActivityGraphStatesResponse$inboundSchema: z.ZodType< - ActivityGraphStatesResponse, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string(), - count: z.number(), - templates: z.array(z.string()), - channels: z.array(Channels$inboundSchema), -}).transform((v) => { - return remap$(v, { - "_id": "id", - }); -}); - -/** @internal */ -export type ActivityGraphStatesResponse$Outbound = { - _id: string; - count: number; - templates: Array; - channels: Array; -}; - -/** @internal */ -export const ActivityGraphStatesResponse$outboundSchema: z.ZodType< - ActivityGraphStatesResponse$Outbound, - z.ZodTypeDef, - ActivityGraphStatesResponse -> = z.object({ - id: z.string(), - count: z.number(), - templates: z.array(z.string()), - channels: z.array(Channels$outboundSchema), -}).transform((v) => { - return remap$(v, { - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ActivityGraphStatesResponse$ { - /** @deprecated use `ActivityGraphStatesResponse$inboundSchema` instead. */ - export const inboundSchema = ActivityGraphStatesResponse$inboundSchema; - /** @deprecated use `ActivityGraphStatesResponse$outboundSchema` instead. */ - export const outboundSchema = ActivityGraphStatesResponse$outboundSchema; - /** @deprecated use `ActivityGraphStatesResponse$Outbound` instead. */ - export type Outbound = ActivityGraphStatesResponse$Outbound; -} - -export function activityGraphStatesResponseToJSON( - activityGraphStatesResponse: ActivityGraphStatesResponse, -): string { - return JSON.stringify( - ActivityGraphStatesResponse$outboundSchema.parse( - activityGraphStatesResponse, - ), - ); -} - -export function activityGraphStatesResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ActivityGraphStatesResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ActivityGraphStatesResponse' from JSON`, - ); -} diff --git a/src/models/components/activitynotificationresponsedto.ts b/src/models/components/activitynotificationresponsedto.ts deleted file mode 100644 index 522b0579..00000000 --- a/src/models/components/activitynotificationresponsedto.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - ActivityNotificationSubscriberResponseDto, - ActivityNotificationSubscriberResponseDto$inboundSchema, - ActivityNotificationSubscriberResponseDto$Outbound, - ActivityNotificationSubscriberResponseDto$outboundSchema, -} from "./activitynotificationsubscriberresponsedto.js"; -import { - ActivityNotificationTemplateResponseDto, - ActivityNotificationTemplateResponseDto$inboundSchema, - ActivityNotificationTemplateResponseDto$Outbound, - ActivityNotificationTemplateResponseDto$outboundSchema, -} from "./activitynotificationtemplateresponsedto.js"; - -export const ActivityNotificationResponseDtoChannels = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", - Digest: "digest", - Trigger: "trigger", - Delay: "delay", - Custom: "custom", -} as const; -export type ActivityNotificationResponseDtoChannels = ClosedEnum< - typeof ActivityNotificationResponseDtoChannels ->; - -export type ActivityNotificationResponseDto = { - id?: string | undefined; - environmentId: string; - organizationId: string; - transactionId: string; - createdAt?: string | undefined; - channels?: ActivityNotificationResponseDtoChannels | undefined; - subscriber?: ActivityNotificationSubscriberResponseDto | undefined; - template?: ActivityNotificationTemplateResponseDto | undefined; - jobs?: Array | undefined; -}; - -/** @internal */ -export const ActivityNotificationResponseDtoChannels$inboundSchema: - z.ZodNativeEnum = z - .nativeEnum(ActivityNotificationResponseDtoChannels); - -/** @internal */ -export const ActivityNotificationResponseDtoChannels$outboundSchema: - z.ZodNativeEnum = - ActivityNotificationResponseDtoChannels$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ActivityNotificationResponseDtoChannels$ { - /** @deprecated use `ActivityNotificationResponseDtoChannels$inboundSchema` instead. */ - export const inboundSchema = - ActivityNotificationResponseDtoChannels$inboundSchema; - /** @deprecated use `ActivityNotificationResponseDtoChannels$outboundSchema` instead. */ - export const outboundSchema = - ActivityNotificationResponseDtoChannels$outboundSchema; -} - -/** @internal */ -export const ActivityNotificationResponseDto$inboundSchema: z.ZodType< - ActivityNotificationResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - _environmentId: z.string(), - _organizationId: z.string(), - transactionId: z.string(), - createdAt: z.string().optional(), - channels: ActivityNotificationResponseDtoChannels$inboundSchema.optional(), - subscriber: ActivityNotificationSubscriberResponseDto$inboundSchema - .optional(), - template: ActivityNotificationTemplateResponseDto$inboundSchema.optional(), - jobs: z.array(z.string()).optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_environmentId": "environmentId", - "_organizationId": "organizationId", - }); -}); - -/** @internal */ -export type ActivityNotificationResponseDto$Outbound = { - _id?: string | undefined; - _environmentId: string; - _organizationId: string; - transactionId: string; - createdAt?: string | undefined; - channels?: string | undefined; - subscriber?: ActivityNotificationSubscriberResponseDto$Outbound | undefined; - template?: ActivityNotificationTemplateResponseDto$Outbound | undefined; - jobs?: Array | undefined; -}; - -/** @internal */ -export const ActivityNotificationResponseDto$outboundSchema: z.ZodType< - ActivityNotificationResponseDto$Outbound, - z.ZodTypeDef, - ActivityNotificationResponseDto -> = z.object({ - id: z.string().optional(), - environmentId: z.string(), - organizationId: z.string(), - transactionId: z.string(), - createdAt: z.string().optional(), - channels: ActivityNotificationResponseDtoChannels$outboundSchema.optional(), - subscriber: ActivityNotificationSubscriberResponseDto$outboundSchema - .optional(), - template: ActivityNotificationTemplateResponseDto$outboundSchema.optional(), - jobs: z.array(z.string()).optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - environmentId: "_environmentId", - organizationId: "_organizationId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ActivityNotificationResponseDto$ { - /** @deprecated use `ActivityNotificationResponseDto$inboundSchema` instead. */ - export const inboundSchema = ActivityNotificationResponseDto$inboundSchema; - /** @deprecated use `ActivityNotificationResponseDto$outboundSchema` instead. */ - export const outboundSchema = ActivityNotificationResponseDto$outboundSchema; - /** @deprecated use `ActivityNotificationResponseDto$Outbound` instead. */ - export type Outbound = ActivityNotificationResponseDto$Outbound; -} - -export function activityNotificationResponseDtoToJSON( - activityNotificationResponseDto: ActivityNotificationResponseDto, -): string { - return JSON.stringify( - ActivityNotificationResponseDto$outboundSchema.parse( - activityNotificationResponseDto, - ), - ); -} - -export function activityNotificationResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ActivityNotificationResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ActivityNotificationResponseDto' from JSON`, - ); -} diff --git a/src/models/components/activitynotificationsubscriberresponsedto.ts b/src/models/components/activitynotificationsubscriberresponsedto.ts deleted file mode 100644 index 33a6ca03..00000000 --- a/src/models/components/activitynotificationsubscriberresponsedto.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type ActivityNotificationSubscriberResponseDto = { - firstName?: string | undefined; - id: string; - lastName?: string | undefined; - email?: string | undefined; - phone?: string | undefined; -}; - -/** @internal */ -export const ActivityNotificationSubscriberResponseDto$inboundSchema: z.ZodType< - ActivityNotificationSubscriberResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - firstName: z.string().optional(), - _id: z.string(), - lastName: z.string().optional(), - email: z.string().optional(), - phone: z.string().optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - }); -}); - -/** @internal */ -export type ActivityNotificationSubscriberResponseDto$Outbound = { - firstName?: string | undefined; - _id: string; - lastName?: string | undefined; - email?: string | undefined; - phone?: string | undefined; -}; - -/** @internal */ -export const ActivityNotificationSubscriberResponseDto$outboundSchema: - z.ZodType< - ActivityNotificationSubscriberResponseDto$Outbound, - z.ZodTypeDef, - ActivityNotificationSubscriberResponseDto - > = z.object({ - firstName: z.string().optional(), - id: z.string(), - lastName: z.string().optional(), - email: z.string().optional(), - phone: z.string().optional(), - }).transform((v) => { - return remap$(v, { - id: "_id", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ActivityNotificationSubscriberResponseDto$ { - /** @deprecated use `ActivityNotificationSubscriberResponseDto$inboundSchema` instead. */ - export const inboundSchema = - ActivityNotificationSubscriberResponseDto$inboundSchema; - /** @deprecated use `ActivityNotificationSubscriberResponseDto$outboundSchema` instead. */ - export const outboundSchema = - ActivityNotificationSubscriberResponseDto$outboundSchema; - /** @deprecated use `ActivityNotificationSubscriberResponseDto$Outbound` instead. */ - export type Outbound = ActivityNotificationSubscriberResponseDto$Outbound; -} - -export function activityNotificationSubscriberResponseDtoToJSON( - activityNotificationSubscriberResponseDto: - ActivityNotificationSubscriberResponseDto, -): string { - return JSON.stringify( - ActivityNotificationSubscriberResponseDto$outboundSchema.parse( - activityNotificationSubscriberResponseDto, - ), - ); -} - -export function activityNotificationSubscriberResponseDtoFromJSON( - jsonString: string, -): SafeParseResult< - ActivityNotificationSubscriberResponseDto, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - ActivityNotificationSubscriberResponseDto$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'ActivityNotificationSubscriberResponseDto' from JSON`, - ); -} diff --git a/src/models/components/activitynotificationtemplateresponsedto.ts b/src/models/components/activitynotificationtemplateresponsedto.ts deleted file mode 100644 index 83bea08b..00000000 --- a/src/models/components/activitynotificationtemplateresponsedto.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type ActivityNotificationTemplateResponseDto = { - id?: string | undefined; - name: string; - triggers: Array; -}; - -/** @internal */ -export const ActivityNotificationTemplateResponseDto$inboundSchema: z.ZodType< - ActivityNotificationTemplateResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - name: z.string(), - triggers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - "_id": "id", - }); -}); - -/** @internal */ -export type ActivityNotificationTemplateResponseDto$Outbound = { - _id?: string | undefined; - name: string; - triggers: Array; -}; - -/** @internal */ -export const ActivityNotificationTemplateResponseDto$outboundSchema: z.ZodType< - ActivityNotificationTemplateResponseDto$Outbound, - z.ZodTypeDef, - ActivityNotificationTemplateResponseDto -> = z.object({ - id: z.string().optional(), - name: z.string(), - triggers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ActivityNotificationTemplateResponseDto$ { - /** @deprecated use `ActivityNotificationTemplateResponseDto$inboundSchema` instead. */ - export const inboundSchema = - ActivityNotificationTemplateResponseDto$inboundSchema; - /** @deprecated use `ActivityNotificationTemplateResponseDto$outboundSchema` instead. */ - export const outboundSchema = - ActivityNotificationTemplateResponseDto$outboundSchema; - /** @deprecated use `ActivityNotificationTemplateResponseDto$Outbound` instead. */ - export type Outbound = ActivityNotificationTemplateResponseDto$Outbound; -} - -export function activityNotificationTemplateResponseDtoToJSON( - activityNotificationTemplateResponseDto: - ActivityNotificationTemplateResponseDto, -): string { - return JSON.stringify( - ActivityNotificationTemplateResponseDto$outboundSchema.parse( - activityNotificationTemplateResponseDto, - ), - ); -} - -export function activityNotificationTemplateResponseDtoFromJSON( - jsonString: string, -): SafeParseResult< - ActivityNotificationTemplateResponseDto, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - ActivityNotificationTemplateResponseDto$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'ActivityNotificationTemplateResponseDto' from JSON`, - ); -} diff --git a/src/models/components/activitystatsresponsedto.ts b/src/models/components/activitystatsresponsedto.ts deleted file mode 100644 index f0ce0e9c..00000000 --- a/src/models/components/activitystatsresponsedto.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type ActivityStatsResponseDto = { - weeklySent: number; - monthlySent: number; -}; - -/** @internal */ -export const ActivityStatsResponseDto$inboundSchema: z.ZodType< - ActivityStatsResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - weeklySent: z.number(), - monthlySent: z.number(), -}); - -/** @internal */ -export type ActivityStatsResponseDto$Outbound = { - weeklySent: number; - monthlySent: number; -}; - -/** @internal */ -export const ActivityStatsResponseDto$outboundSchema: z.ZodType< - ActivityStatsResponseDto$Outbound, - z.ZodTypeDef, - ActivityStatsResponseDto -> = z.object({ - weeklySent: z.number(), - monthlySent: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ActivityStatsResponseDto$ { - /** @deprecated use `ActivityStatsResponseDto$inboundSchema` instead. */ - export const inboundSchema = ActivityStatsResponseDto$inboundSchema; - /** @deprecated use `ActivityStatsResponseDto$outboundSchema` instead. */ - export const outboundSchema = ActivityStatsResponseDto$outboundSchema; - /** @deprecated use `ActivityStatsResponseDto$Outbound` instead. */ - export type Outbound = ActivityStatsResponseDto$Outbound; -} - -export function activityStatsResponseDtoToJSON( - activityStatsResponseDto: ActivityStatsResponseDto, -): string { - return JSON.stringify( - ActivityStatsResponseDto$outboundSchema.parse(activityStatsResponseDto), - ); -} - -export function activityStatsResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ActivityStatsResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ActivityStatsResponseDto' from JSON`, - ); -} diff --git a/src/models/components/addsubscribersrequestdto.ts b/src/models/components/addsubscribersrequestdto.ts deleted file mode 100644 index c03c0c39..00000000 --- a/src/models/components/addsubscribersrequestdto.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type AddSubscribersRequestDto = { - /** - * List of subscriber identifiers that will be associated to the topic - */ - subscribers: Array; -}; - -/** @internal */ -export const AddSubscribersRequestDto$inboundSchema: z.ZodType< - AddSubscribersRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - subscribers: z.array(z.string()), -}); - -/** @internal */ -export type AddSubscribersRequestDto$Outbound = { - subscribers: Array; -}; - -/** @internal */ -export const AddSubscribersRequestDto$outboundSchema: z.ZodType< - AddSubscribersRequestDto$Outbound, - z.ZodTypeDef, - AddSubscribersRequestDto -> = z.object({ - subscribers: z.array(z.string()), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace AddSubscribersRequestDto$ { - /** @deprecated use `AddSubscribersRequestDto$inboundSchema` instead. */ - export const inboundSchema = AddSubscribersRequestDto$inboundSchema; - /** @deprecated use `AddSubscribersRequestDto$outboundSchema` instead. */ - export const outboundSchema = AddSubscribersRequestDto$outboundSchema; - /** @deprecated use `AddSubscribersRequestDto$Outbound` instead. */ - export type Outbound = AddSubscribersRequestDto$Outbound; -} - -export function addSubscribersRequestDtoToJSON( - addSubscribersRequestDto: AddSubscribersRequestDto, -): string { - return JSON.stringify( - AddSubscribersRequestDto$outboundSchema.parse(addSubscribersRequestDto), - ); -} - -export function addSubscribersRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => AddSubscribersRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'AddSubscribersRequestDto' from JSON`, - ); -} diff --git a/src/models/components/apikey.ts b/src/models/components/apikey.ts deleted file mode 100644 index 2432c7a1..00000000 --- a/src/models/components/apikey.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type ApiKey = { - key: string; - userId: string; -}; - -/** @internal */ -export const ApiKey$inboundSchema: z.ZodType = z - .object({ - key: z.string(), - _userId: z.string(), - }).transform((v) => { - return remap$(v, { - "_userId": "userId", - }); - }); - -/** @internal */ -export type ApiKey$Outbound = { - key: string; - _userId: string; -}; - -/** @internal */ -export const ApiKey$outboundSchema: z.ZodType< - ApiKey$Outbound, - z.ZodTypeDef, - ApiKey -> = z.object({ - key: z.string(), - userId: z.string(), -}).transform((v) => { - return remap$(v, { - userId: "_userId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ApiKey$ { - /** @deprecated use `ApiKey$inboundSchema` instead. */ - export const inboundSchema = ApiKey$inboundSchema; - /** @deprecated use `ApiKey$outboundSchema` instead. */ - export const outboundSchema = ApiKey$outboundSchema; - /** @deprecated use `ApiKey$Outbound` instead. */ - export type Outbound = ApiKey$Outbound; -} - -export function apiKeyToJSON(apiKey: ApiKey): string { - return JSON.stringify(ApiKey$outboundSchema.parse(apiKey)); -} - -export function apiKeyFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ApiKey$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ApiKey' from JSON`, - ); -} diff --git a/src/models/components/bulkapplychangedto.ts b/src/models/components/bulkapplychangedto.ts deleted file mode 100644 index e13f15eb..00000000 --- a/src/models/components/bulkapplychangedto.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type BulkApplyChangeDto = { - changeIds: Array; -}; - -/** @internal */ -export const BulkApplyChangeDto$inboundSchema: z.ZodType< - BulkApplyChangeDto, - z.ZodTypeDef, - unknown -> = z.object({ - changeIds: z.array(z.string()), -}); - -/** @internal */ -export type BulkApplyChangeDto$Outbound = { - changeIds: Array; -}; - -/** @internal */ -export const BulkApplyChangeDto$outboundSchema: z.ZodType< - BulkApplyChangeDto$Outbound, - z.ZodTypeDef, - BulkApplyChangeDto -> = z.object({ - changeIds: z.array(z.string()), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace BulkApplyChangeDto$ { - /** @deprecated use `BulkApplyChangeDto$inboundSchema` instead. */ - export const inboundSchema = BulkApplyChangeDto$inboundSchema; - /** @deprecated use `BulkApplyChangeDto$outboundSchema` instead. */ - export const outboundSchema = BulkApplyChangeDto$outboundSchema; - /** @deprecated use `BulkApplyChangeDto$Outbound` instead. */ - export type Outbound = BulkApplyChangeDto$Outbound; -} diff --git a/src/models/components/bulksubscribercreatedto.ts b/src/models/components/bulksubscribercreatedto.ts deleted file mode 100644 index 16b49fb2..00000000 --- a/src/models/components/bulksubscribercreatedto.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type BulkSubscriberCreateDto = { - subscribers: Array; -}; - -/** @internal */ -export const BulkSubscriberCreateDto$inboundSchema: z.ZodType< - BulkSubscriberCreateDto, - z.ZodTypeDef, - unknown -> = z.object({ - subscribers: z.array(z.string()), -}); - -/** @internal */ -export type BulkSubscriberCreateDto$Outbound = { - subscribers: Array; -}; - -/** @internal */ -export const BulkSubscriberCreateDto$outboundSchema: z.ZodType< - BulkSubscriberCreateDto$Outbound, - z.ZodTypeDef, - BulkSubscriberCreateDto -> = z.object({ - subscribers: z.array(z.string()), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace BulkSubscriberCreateDto$ { - /** @deprecated use `BulkSubscriberCreateDto$inboundSchema` instead. */ - export const inboundSchema = BulkSubscriberCreateDto$inboundSchema; - /** @deprecated use `BulkSubscriberCreateDto$outboundSchema` instead. */ - export const outboundSchema = BulkSubscriberCreateDto$outboundSchema; - /** @deprecated use `BulkSubscriberCreateDto$Outbound` instead. */ - export type Outbound = BulkSubscriberCreateDto$Outbound; -} - -export function bulkSubscriberCreateDtoToJSON( - bulkSubscriberCreateDto: BulkSubscriberCreateDto, -): string { - return JSON.stringify( - BulkSubscriberCreateDto$outboundSchema.parse(bulkSubscriberCreateDto), - ); -} - -export function bulkSubscriberCreateDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => BulkSubscriberCreateDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'BulkSubscriberCreateDto' from JSON`, - ); -} diff --git a/src/models/components/bulktriggereventdto.ts b/src/models/components/bulktriggereventdto.ts deleted file mode 100644 index a668f98c..00000000 --- a/src/models/components/bulktriggereventdto.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - TriggerEventRequestDto, - TriggerEventRequestDto$inboundSchema, - TriggerEventRequestDto$Outbound, - TriggerEventRequestDto$outboundSchema, -} from "./triggereventrequestdto.js"; - -export type BulkTriggerEventDto = { - events: Array; -}; - -/** @internal */ -export const BulkTriggerEventDto$inboundSchema: z.ZodType< - BulkTriggerEventDto, - z.ZodTypeDef, - unknown -> = z.object({ - events: z.array(TriggerEventRequestDto$inboundSchema), -}); - -/** @internal */ -export type BulkTriggerEventDto$Outbound = { - events: Array; -}; - -/** @internal */ -export const BulkTriggerEventDto$outboundSchema: z.ZodType< - BulkTriggerEventDto$Outbound, - z.ZodTypeDef, - BulkTriggerEventDto -> = z.object({ - events: z.array(TriggerEventRequestDto$outboundSchema), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace BulkTriggerEventDto$ { - /** @deprecated use `BulkTriggerEventDto$inboundSchema` instead. */ - export const inboundSchema = BulkTriggerEventDto$inboundSchema; - /** @deprecated use `BulkTriggerEventDto$outboundSchema` instead. */ - export const outboundSchema = BulkTriggerEventDto$outboundSchema; - /** @deprecated use `BulkTriggerEventDto$Outbound` instead. */ - export type Outbound = BulkTriggerEventDto$Outbound; -} - -export function bulkTriggerEventDtoToJSON( - bulkTriggerEventDto: BulkTriggerEventDto, -): string { - return JSON.stringify( - BulkTriggerEventDto$outboundSchema.parse(bulkTriggerEventDto), - ); -} - -export function bulkTriggerEventDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => BulkTriggerEventDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'BulkTriggerEventDto' from JSON`, - ); -} diff --git a/src/models/components/changeresponsedto.ts b/src/models/components/changeresponsedto.ts deleted file mode 100644 index c30a32d9..00000000 --- a/src/models/components/changeresponsedto.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { ClosedEnum } from "../../types/enums.js"; - -export type Change = {}; - -export const Type = { - Feed: "Feed", - MessageTemplate: "MessageTemplate", - Layout: "Layout", - DefaultLayout: "DefaultLayout", - NotificationTemplate: "NotificationTemplate", - NotificationGroup: "NotificationGroup", - TranslationGroup: "TranslationGroup", - Translation: "Translation", -} as const; -export type Type = ClosedEnum; - -export type ChangeResponseDto = { - creatorId: string; - entityId: string; - environmentId: string; - id?: string | undefined; - organizationId: string; - parentId?: string | undefined; - change: Change; - createdAt: string; - enabled: boolean; - type: Type; -}; - -/** @internal */ -export const Change$inboundSchema: z.ZodType = z - .object({}); - -/** @internal */ -export type Change$Outbound = {}; - -/** @internal */ -export const Change$outboundSchema: z.ZodType< - Change$Outbound, - z.ZodTypeDef, - Change -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Change$ { - /** @deprecated use `Change$inboundSchema` instead. */ - export const inboundSchema = Change$inboundSchema; - /** @deprecated use `Change$outboundSchema` instead. */ - export const outboundSchema = Change$outboundSchema; - /** @deprecated use `Change$Outbound` instead. */ - export type Outbound = Change$Outbound; -} - -/** @internal */ -export const Type$inboundSchema: z.ZodNativeEnum = z.nativeEnum( - Type, -); - -/** @internal */ -export const Type$outboundSchema: z.ZodNativeEnum = - Type$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Type$ { - /** @deprecated use `Type$inboundSchema` instead. */ - export const inboundSchema = Type$inboundSchema; - /** @deprecated use `Type$outboundSchema` instead. */ - export const outboundSchema = Type$outboundSchema; -} - -/** @internal */ -export const ChangeResponseDto$inboundSchema: z.ZodType< - ChangeResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _creatorId: z.string(), - _entityId: z.string(), - _environmentId: z.string(), - _id: z.string().optional(), - _organizationId: z.string(), - _parentId: z.string().optional(), - change: z.lazy(() => Change$inboundSchema), - createdAt: z.string(), - enabled: z.boolean(), - type: Type$inboundSchema, -}).transform((v) => { - return remap$(v, { - "_creatorId": "creatorId", - "_entityId": "entityId", - "_environmentId": "environmentId", - "_id": "id", - "_organizationId": "organizationId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type ChangeResponseDto$Outbound = { - _creatorId: string; - _entityId: string; - _environmentId: string; - _id?: string | undefined; - _organizationId: string; - _parentId?: string | undefined; - change: Change$Outbound; - createdAt: string; - enabled: boolean; - type: string; -}; - -/** @internal */ -export const ChangeResponseDto$outboundSchema: z.ZodType< - ChangeResponseDto$Outbound, - z.ZodTypeDef, - ChangeResponseDto -> = z.object({ - creatorId: z.string(), - entityId: z.string(), - environmentId: z.string(), - id: z.string().optional(), - organizationId: z.string(), - parentId: z.string().optional(), - change: z.lazy(() => Change$outboundSchema), - createdAt: z.string(), - enabled: z.boolean(), - type: Type$outboundSchema, -}).transform((v) => { - return remap$(v, { - creatorId: "_creatorId", - entityId: "_entityId", - environmentId: "_environmentId", - id: "_id", - organizationId: "_organizationId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChangeResponseDto$ { - /** @deprecated use `ChangeResponseDto$inboundSchema` instead. */ - export const inboundSchema = ChangeResponseDto$inboundSchema; - /** @deprecated use `ChangeResponseDto$outboundSchema` instead. */ - export const outboundSchema = ChangeResponseDto$outboundSchema; - /** @deprecated use `ChangeResponseDto$Outbound` instead. */ - export type Outbound = ChangeResponseDto$Outbound; -} diff --git a/src/models/components/changesresponsedto.ts b/src/models/components/changesresponsedto.ts deleted file mode 100644 index d8b7ffaf..00000000 --- a/src/models/components/changesresponsedto.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type ChangesResponseDto = { - data: Array; - page: number; - pageSize: number; - totalCount: number; -}; - -/** @internal */ -export const ChangesResponseDto$inboundSchema: z.ZodType< - ChangesResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.array(z.string()), - page: z.number(), - pageSize: z.number(), - totalCount: z.number(), -}); - -/** @internal */ -export type ChangesResponseDto$Outbound = { - data: Array; - page: number; - pageSize: number; - totalCount: number; -}; - -/** @internal */ -export const ChangesResponseDto$outboundSchema: z.ZodType< - ChangesResponseDto$Outbound, - z.ZodTypeDef, - ChangesResponseDto -> = z.object({ - data: z.array(z.string()), - page: z.number(), - pageSize: z.number(), - totalCount: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChangesResponseDto$ { - /** @deprecated use `ChangesResponseDto$inboundSchema` instead. */ - export const inboundSchema = ChangesResponseDto$inboundSchema; - /** @deprecated use `ChangesResponseDto$outboundSchema` instead. */ - export const outboundSchema = ChangesResponseDto$outboundSchema; - /** @deprecated use `ChangesResponseDto$Outbound` instead. */ - export type Outbound = ChangesResponseDto$Outbound; -} diff --git a/src/models/components/changeworkflowstatusrequestdto.ts b/src/models/components/changeworkflowstatusrequestdto.ts deleted file mode 100644 index ee83a2d2..00000000 --- a/src/models/components/changeworkflowstatusrequestdto.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type ChangeWorkflowStatusRequestDto = { - active: boolean; -}; - -/** @internal */ -export const ChangeWorkflowStatusRequestDto$inboundSchema: z.ZodType< - ChangeWorkflowStatusRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - active: z.boolean(), -}); - -/** @internal */ -export type ChangeWorkflowStatusRequestDto$Outbound = { - active: boolean; -}; - -/** @internal */ -export const ChangeWorkflowStatusRequestDto$outboundSchema: z.ZodType< - ChangeWorkflowStatusRequestDto$Outbound, - z.ZodTypeDef, - ChangeWorkflowStatusRequestDto -> = z.object({ - active: z.boolean(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChangeWorkflowStatusRequestDto$ { - /** @deprecated use `ChangeWorkflowStatusRequestDto$inboundSchema` instead. */ - export const inboundSchema = ChangeWorkflowStatusRequestDto$inboundSchema; - /** @deprecated use `ChangeWorkflowStatusRequestDto$outboundSchema` instead. */ - export const outboundSchema = ChangeWorkflowStatusRequestDto$outboundSchema; - /** @deprecated use `ChangeWorkflowStatusRequestDto$Outbound` instead. */ - export type Outbound = ChangeWorkflowStatusRequestDto$Outbound; -} diff --git a/src/models/components/channelcredentials.ts b/src/models/components/channelcredentials.ts deleted file mode 100644 index 1428a907..00000000 --- a/src/models/components/channelcredentials.ts +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type ChannelCredentials = { - /** - * Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - */ - webhookUrl: string; - /** - * Channel specification for Mattermost chat notifications - */ - channel?: string | undefined; - /** - * Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - */ - deviceTokens?: Array | undefined; - /** - * alert_uid for grafana on-call webhook payload - */ - alertUid?: string | undefined; - /** - * title to be used with grafana on call webhook - */ - title?: string | undefined; - /** - * image_url property fo grafana on call webhook - */ - imageUrl?: string | undefined; - /** - * state property fo grafana on call webhook - */ - state?: string | undefined; - /** - * link_to_upstream_details property fo grafana on call webhook - */ - externalUrl?: string | undefined; -}; - -/** @internal */ -export const ChannelCredentials$inboundSchema: z.ZodType< - ChannelCredentials, - z.ZodTypeDef, - unknown -> = z.object({ - webhookUrl: z.string(), - channel: z.string().optional(), - deviceTokens: z.array(z.string()).optional(), - alertUid: z.string().optional(), - title: z.string().optional(), - imageUrl: z.string().optional(), - state: z.string().optional(), - externalUrl: z.string().optional(), -}); - -/** @internal */ -export type ChannelCredentials$Outbound = { - webhookUrl: string; - channel?: string | undefined; - deviceTokens?: Array | undefined; - alertUid?: string | undefined; - title?: string | undefined; - imageUrl?: string | undefined; - state?: string | undefined; - externalUrl?: string | undefined; -}; - -/** @internal */ -export const ChannelCredentials$outboundSchema: z.ZodType< - ChannelCredentials$Outbound, - z.ZodTypeDef, - ChannelCredentials -> = z.object({ - webhookUrl: z.string(), - channel: z.string().optional(), - deviceTokens: z.array(z.string()).optional(), - alertUid: z.string().optional(), - title: z.string().optional(), - imageUrl: z.string().optional(), - state: z.string().optional(), - externalUrl: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChannelCredentials$ { - /** @deprecated use `ChannelCredentials$inboundSchema` instead. */ - export const inboundSchema = ChannelCredentials$inboundSchema; - /** @deprecated use `ChannelCredentials$outboundSchema` instead. */ - export const outboundSchema = ChannelCredentials$outboundSchema; - /** @deprecated use `ChannelCredentials$Outbound` instead. */ - export type Outbound = ChannelCredentials$Outbound; -} - -export function channelCredentialsToJSON( - channelCredentials: ChannelCredentials, -): string { - return JSON.stringify( - ChannelCredentials$outboundSchema.parse(channelCredentials), - ); -} - -export function channelCredentialsFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ChannelCredentials$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ChannelCredentials' from JSON`, - ); -} diff --git a/src/models/components/channelpreference.ts b/src/models/components/channelpreference.ts deleted file mode 100644 index d637a376..00000000 --- a/src/models/components/channelpreference.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * The type of channel that is enabled or not - */ -export const ChannelPreferenceType = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -/** - * The type of channel that is enabled or not - */ -export type ChannelPreferenceType = ClosedEnum; - -export type ChannelPreference = { - /** - * The type of channel that is enabled or not - */ - type: ChannelPreferenceType; - /** - * If channel is enabled or not - */ - enabled: boolean; -}; - -/** @internal */ -export const ChannelPreferenceType$inboundSchema: z.ZodNativeEnum< - typeof ChannelPreferenceType -> = z.nativeEnum(ChannelPreferenceType); - -/** @internal */ -export const ChannelPreferenceType$outboundSchema: z.ZodNativeEnum< - typeof ChannelPreferenceType -> = ChannelPreferenceType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChannelPreferenceType$ { - /** @deprecated use `ChannelPreferenceType$inboundSchema` instead. */ - export const inboundSchema = ChannelPreferenceType$inboundSchema; - /** @deprecated use `ChannelPreferenceType$outboundSchema` instead. */ - export const outboundSchema = ChannelPreferenceType$outboundSchema; -} - -/** @internal */ -export const ChannelPreference$inboundSchema: z.ZodType< - ChannelPreference, - z.ZodTypeDef, - unknown -> = z.object({ - type: ChannelPreferenceType$inboundSchema, - enabled: z.boolean(), -}); - -/** @internal */ -export type ChannelPreference$Outbound = { - type: string; - enabled: boolean; -}; - -/** @internal */ -export const ChannelPreference$outboundSchema: z.ZodType< - ChannelPreference$Outbound, - z.ZodTypeDef, - ChannelPreference -> = z.object({ - type: ChannelPreferenceType$outboundSchema, - enabled: z.boolean(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChannelPreference$ { - /** @deprecated use `ChannelPreference$inboundSchema` instead. */ - export const inboundSchema = ChannelPreference$inboundSchema; - /** @deprecated use `ChannelPreference$outboundSchema` instead. */ - export const outboundSchema = ChannelPreference$outboundSchema; - /** @deprecated use `ChannelPreference$Outbound` instead. */ - export type Outbound = ChannelPreference$Outbound; -} - -export function channelPreferenceToJSON( - channelPreference: ChannelPreference, -): string { - return JSON.stringify( - ChannelPreference$outboundSchema.parse(channelPreference), - ); -} - -export function channelPreferenceFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ChannelPreference$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ChannelPreference' from JSON`, - ); -} diff --git a/src/models/components/channelsettings.ts b/src/models/components/channelsettings.ts deleted file mode 100644 index 5be94479..00000000 --- a/src/models/components/channelsettings.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - ChannelCredentials, - ChannelCredentials$inboundSchema, - ChannelCredentials$Outbound, - ChannelCredentials$outboundSchema, -} from "./channelcredentials.js"; - -/** - * The provider identifier for the credentials - */ -export const ProviderId = { - Slack: "slack", - Discord: "discord", - Msteams: "msteams", - Mattermost: "mattermost", - Ryver: "ryver", - Zulip: "zulip", - GrafanaOnCall: "grafana-on-call", - Getstream: "getstream", - RocketChat: "rocket-chat", - WhatsappBusiness: "whatsapp-business", - Fcm: "fcm", - Apns: "apns", - Expo: "expo", - OneSignal: "one-signal", - Pushpad: "pushpad", - PushWebhook: "push-webhook", - PusherBeams: "pusher-beams", -} as const; -/** - * The provider identifier for the credentials - */ -export type ProviderId = ClosedEnum; - -export type ChannelSettings = { - /** - * The provider identifier for the credentials - */ - providerId: ProviderId; - /** - * The integration identifier - */ - integrationIdentifier?: string | undefined; - /** - * Credentials payload for the specified provider - */ - credentials: ChannelCredentials; - /** - * Id of the integration that is used for this channel - */ - integrationId: string; -}; - -/** @internal */ -export const ProviderId$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(ProviderId); - -/** @internal */ -export const ProviderId$outboundSchema: z.ZodNativeEnum = - ProviderId$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ProviderId$ { - /** @deprecated use `ProviderId$inboundSchema` instead. */ - export const inboundSchema = ProviderId$inboundSchema; - /** @deprecated use `ProviderId$outboundSchema` instead. */ - export const outboundSchema = ProviderId$outboundSchema; -} - -/** @internal */ -export const ChannelSettings$inboundSchema: z.ZodType< - ChannelSettings, - z.ZodTypeDef, - unknown -> = z.object({ - providerId: ProviderId$inboundSchema, - integrationIdentifier: z.string().optional(), - credentials: ChannelCredentials$inboundSchema, - _integrationId: z.string(), -}).transform((v) => { - return remap$(v, { - "_integrationId": "integrationId", - }); -}); - -/** @internal */ -export type ChannelSettings$Outbound = { - providerId: string; - integrationIdentifier?: string | undefined; - credentials: ChannelCredentials$Outbound; - _integrationId: string; -}; - -/** @internal */ -export const ChannelSettings$outboundSchema: z.ZodType< - ChannelSettings$Outbound, - z.ZodTypeDef, - ChannelSettings -> = z.object({ - providerId: ProviderId$outboundSchema, - integrationIdentifier: z.string().optional(), - credentials: ChannelCredentials$outboundSchema, - integrationId: z.string(), -}).transform((v) => { - return remap$(v, { - integrationId: "_integrationId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChannelSettings$ { - /** @deprecated use `ChannelSettings$inboundSchema` instead. */ - export const inboundSchema = ChannelSettings$inboundSchema; - /** @deprecated use `ChannelSettings$outboundSchema` instead. */ - export const outboundSchema = ChannelSettings$outboundSchema; - /** @deprecated use `ChannelSettings$Outbound` instead. */ - export type Outbound = ChannelSettings$Outbound; -} - -export function channelSettingsToJSON( - channelSettings: ChannelSettings, -): string { - return JSON.stringify(ChannelSettings$outboundSchema.parse(channelSettings)); -} - -export function channelSettingsFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ChannelSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ChannelSettings' from JSON`, - ); -} diff --git a/src/models/components/createfeedrequestdto.ts b/src/models/components/createfeedrequestdto.ts deleted file mode 100644 index d5383714..00000000 --- a/src/models/components/createfeedrequestdto.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type CreateFeedRequestDto = { - name: string; -}; - -/** @internal */ -export const CreateFeedRequestDto$inboundSchema: z.ZodType< - CreateFeedRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string(), -}); - -/** @internal */ -export type CreateFeedRequestDto$Outbound = { - name: string; -}; - -/** @internal */ -export const CreateFeedRequestDto$outboundSchema: z.ZodType< - CreateFeedRequestDto$Outbound, - z.ZodTypeDef, - CreateFeedRequestDto -> = z.object({ - name: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateFeedRequestDto$ { - /** @deprecated use `CreateFeedRequestDto$inboundSchema` instead. */ - export const inboundSchema = CreateFeedRequestDto$inboundSchema; - /** @deprecated use `CreateFeedRequestDto$outboundSchema` instead. */ - export const outboundSchema = CreateFeedRequestDto$outboundSchema; - /** @deprecated use `CreateFeedRequestDto$Outbound` instead. */ - export type Outbound = CreateFeedRequestDto$Outbound; -} diff --git a/src/models/components/createintegrationrequestdto.ts b/src/models/components/createintegrationrequestdto.ts deleted file mode 100644 index f35347ca..00000000 --- a/src/models/components/createintegrationrequestdto.ts +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - CredentialsDto, - CredentialsDto$inboundSchema, - CredentialsDto$Outbound, - CredentialsDto$outboundSchema, -} from "./credentialsdto.js"; -import { - StepFilter, - StepFilter$inboundSchema, - StepFilter$Outbound, - StepFilter$outboundSchema, -} from "./stepfilter.js"; - -export const CreateIntegrationRequestDtoChannel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type CreateIntegrationRequestDtoChannel = ClosedEnum< - typeof CreateIntegrationRequestDtoChannel ->; - -export type CreateIntegrationRequestDto = { - name?: string | undefined; - identifier?: string | undefined; - environmentId?: string | undefined; - providerId: string; - channel: CreateIntegrationRequestDtoChannel; - credentials?: CredentialsDto | undefined; - /** - * If the integration is active the validation on the credentials field will run - */ - active?: boolean | undefined; - check?: boolean | undefined; - conditions?: Array | undefined; -}; - -/** @internal */ -export const CreateIntegrationRequestDtoChannel$inboundSchema: z.ZodNativeEnum< - typeof CreateIntegrationRequestDtoChannel -> = z.nativeEnum(CreateIntegrationRequestDtoChannel); - -/** @internal */ -export const CreateIntegrationRequestDtoChannel$outboundSchema: z.ZodNativeEnum< - typeof CreateIntegrationRequestDtoChannel -> = CreateIntegrationRequestDtoChannel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateIntegrationRequestDtoChannel$ { - /** @deprecated use `CreateIntegrationRequestDtoChannel$inboundSchema` instead. */ - export const inboundSchema = CreateIntegrationRequestDtoChannel$inboundSchema; - /** @deprecated use `CreateIntegrationRequestDtoChannel$outboundSchema` instead. */ - export const outboundSchema = - CreateIntegrationRequestDtoChannel$outboundSchema; -} - -/** @internal */ -export const CreateIntegrationRequestDto$inboundSchema: z.ZodType< - CreateIntegrationRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string().optional(), - identifier: z.string().optional(), - _environmentId: z.string().optional(), - providerId: z.string(), - channel: CreateIntegrationRequestDtoChannel$inboundSchema, - credentials: CredentialsDto$inboundSchema.optional(), - active: z.boolean().optional(), - check: z.boolean().optional(), - conditions: z.array(StepFilter$inboundSchema).optional(), -}).transform((v) => { - return remap$(v, { - "_environmentId": "environmentId", - }); -}); - -/** @internal */ -export type CreateIntegrationRequestDto$Outbound = { - name?: string | undefined; - identifier?: string | undefined; - _environmentId?: string | undefined; - providerId: string; - channel: string; - credentials?: CredentialsDto$Outbound | undefined; - active?: boolean | undefined; - check?: boolean | undefined; - conditions?: Array | undefined; -}; - -/** @internal */ -export const CreateIntegrationRequestDto$outboundSchema: z.ZodType< - CreateIntegrationRequestDto$Outbound, - z.ZodTypeDef, - CreateIntegrationRequestDto -> = z.object({ - name: z.string().optional(), - identifier: z.string().optional(), - environmentId: z.string().optional(), - providerId: z.string(), - channel: CreateIntegrationRequestDtoChannel$outboundSchema, - credentials: CredentialsDto$outboundSchema.optional(), - active: z.boolean().optional(), - check: z.boolean().optional(), - conditions: z.array(StepFilter$outboundSchema).optional(), -}).transform((v) => { - return remap$(v, { - environmentId: "_environmentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateIntegrationRequestDto$ { - /** @deprecated use `CreateIntegrationRequestDto$inboundSchema` instead. */ - export const inboundSchema = CreateIntegrationRequestDto$inboundSchema; - /** @deprecated use `CreateIntegrationRequestDto$outboundSchema` instead. */ - export const outboundSchema = CreateIntegrationRequestDto$outboundSchema; - /** @deprecated use `CreateIntegrationRequestDto$Outbound` instead. */ - export type Outbound = CreateIntegrationRequestDto$Outbound; -} - -export function createIntegrationRequestDtoToJSON( - createIntegrationRequestDto: CreateIntegrationRequestDto, -): string { - return JSON.stringify( - CreateIntegrationRequestDto$outboundSchema.parse( - createIntegrationRequestDto, - ), - ); -} - -export function createIntegrationRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => CreateIntegrationRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'CreateIntegrationRequestDto' from JSON`, - ); -} diff --git a/src/models/components/createlayoutresponsedto.ts b/src/models/components/createlayoutresponsedto.ts deleted file mode 100644 index b39c9283..00000000 --- a/src/models/components/createlayoutresponsedto.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; - -export type CreateLayoutResponseDto = { - /** - * The unique identifier for the Layout created. - */ - id: string; -}; - -/** @internal */ -export const CreateLayoutResponseDto$inboundSchema: z.ZodType< - CreateLayoutResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - }); -}); - -/** @internal */ -export type CreateLayoutResponseDto$Outbound = { - _id: string; -}; - -/** @internal */ -export const CreateLayoutResponseDto$outboundSchema: z.ZodType< - CreateLayoutResponseDto$Outbound, - z.ZodTypeDef, - CreateLayoutResponseDto -> = z.object({ - id: z.string(), -}).transform((v) => { - return remap$(v, { - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateLayoutResponseDto$ { - /** @deprecated use `CreateLayoutResponseDto$inboundSchema` instead. */ - export const inboundSchema = CreateLayoutResponseDto$inboundSchema; - /** @deprecated use `CreateLayoutResponseDto$outboundSchema` instead. */ - export const outboundSchema = CreateLayoutResponseDto$outboundSchema; - /** @deprecated use `CreateLayoutResponseDto$Outbound` instead. */ - export type Outbound = CreateLayoutResponseDto$Outbound; -} diff --git a/src/models/components/createnotificationgrouprequestdto.ts b/src/models/components/createnotificationgrouprequestdto.ts deleted file mode 100644 index 4deb78b9..00000000 --- a/src/models/components/createnotificationgrouprequestdto.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type CreateNotificationGroupRequestDto = { - name: string; -}; - -/** @internal */ -export const CreateNotificationGroupRequestDto$inboundSchema: z.ZodType< - CreateNotificationGroupRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string(), -}); - -/** @internal */ -export type CreateNotificationGroupRequestDto$Outbound = { - name: string; -}; - -/** @internal */ -export const CreateNotificationGroupRequestDto$outboundSchema: z.ZodType< - CreateNotificationGroupRequestDto$Outbound, - z.ZodTypeDef, - CreateNotificationGroupRequestDto -> = z.object({ - name: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateNotificationGroupRequestDto$ { - /** @deprecated use `CreateNotificationGroupRequestDto$inboundSchema` instead. */ - export const inboundSchema = CreateNotificationGroupRequestDto$inboundSchema; - /** @deprecated use `CreateNotificationGroupRequestDto$outboundSchema` instead. */ - export const outboundSchema = - CreateNotificationGroupRequestDto$outboundSchema; - /** @deprecated use `CreateNotificationGroupRequestDto$Outbound` instead. */ - export type Outbound = CreateNotificationGroupRequestDto$Outbound; -} - -export function createNotificationGroupRequestDtoToJSON( - createNotificationGroupRequestDto: CreateNotificationGroupRequestDto, -): string { - return JSON.stringify( - CreateNotificationGroupRequestDto$outboundSchema.parse( - createNotificationGroupRequestDto, - ), - ); -} - -export function createNotificationGroupRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => CreateNotificationGroupRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'CreateNotificationGroupRequestDto' from JSON`, - ); -} diff --git a/src/models/components/createsubscriberrequestdto.ts b/src/models/components/createsubscriberrequestdto.ts deleted file mode 100644 index 180eb6d1..00000000 --- a/src/models/components/createsubscriberrequestdto.ts +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type CreateSubscriberRequestDtoData = {}; - -export type CreateSubscriberRequestDto = { - /** - * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - */ - subscriberId: string; - email?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - phone?: string | undefined; - /** - * An http url to the profile image of your subscriber - */ - avatar?: string | undefined; - locale?: string | undefined; - data?: CreateSubscriberRequestDtoData | undefined; - channels?: Array | undefined; -}; - -/** @internal */ -export const CreateSubscriberRequestDtoData$inboundSchema: z.ZodType< - CreateSubscriberRequestDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type CreateSubscriberRequestDtoData$Outbound = {}; - -/** @internal */ -export const CreateSubscriberRequestDtoData$outboundSchema: z.ZodType< - CreateSubscriberRequestDtoData$Outbound, - z.ZodTypeDef, - CreateSubscriberRequestDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateSubscriberRequestDtoData$ { - /** @deprecated use `CreateSubscriberRequestDtoData$inboundSchema` instead. */ - export const inboundSchema = CreateSubscriberRequestDtoData$inboundSchema; - /** @deprecated use `CreateSubscriberRequestDtoData$outboundSchema` instead. */ - export const outboundSchema = CreateSubscriberRequestDtoData$outboundSchema; - /** @deprecated use `CreateSubscriberRequestDtoData$Outbound` instead. */ - export type Outbound = CreateSubscriberRequestDtoData$Outbound; -} - -export function createSubscriberRequestDtoDataToJSON( - createSubscriberRequestDtoData: CreateSubscriberRequestDtoData, -): string { - return JSON.stringify( - CreateSubscriberRequestDtoData$outboundSchema.parse( - createSubscriberRequestDtoData, - ), - ); -} - -export function createSubscriberRequestDtoDataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => CreateSubscriberRequestDtoData$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'CreateSubscriberRequestDtoData' from JSON`, - ); -} - -/** @internal */ -export const CreateSubscriberRequestDto$inboundSchema: z.ZodType< - CreateSubscriberRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - subscriberId: z.string(), - email: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - data: z.lazy(() => CreateSubscriberRequestDtoData$inboundSchema).optional(), - channels: z.array(z.string()).optional(), -}); - -/** @internal */ -export type CreateSubscriberRequestDto$Outbound = { - subscriberId: string; - email?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - phone?: string | undefined; - avatar?: string | undefined; - locale?: string | undefined; - data?: CreateSubscriberRequestDtoData$Outbound | undefined; - channels?: Array | undefined; -}; - -/** @internal */ -export const CreateSubscriberRequestDto$outboundSchema: z.ZodType< - CreateSubscriberRequestDto$Outbound, - z.ZodTypeDef, - CreateSubscriberRequestDto -> = z.object({ - subscriberId: z.string(), - email: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - data: z.lazy(() => CreateSubscriberRequestDtoData$outboundSchema).optional(), - channels: z.array(z.string()).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateSubscriberRequestDto$ { - /** @deprecated use `CreateSubscriberRequestDto$inboundSchema` instead. */ - export const inboundSchema = CreateSubscriberRequestDto$inboundSchema; - /** @deprecated use `CreateSubscriberRequestDto$outboundSchema` instead. */ - export const outboundSchema = CreateSubscriberRequestDto$outboundSchema; - /** @deprecated use `CreateSubscriberRequestDto$Outbound` instead. */ - export type Outbound = CreateSubscriberRequestDto$Outbound; -} - -export function createSubscriberRequestDtoToJSON( - createSubscriberRequestDto: CreateSubscriberRequestDto, -): string { - return JSON.stringify( - CreateSubscriberRequestDto$outboundSchema.parse(createSubscriberRequestDto), - ); -} - -export function createSubscriberRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => CreateSubscriberRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'CreateSubscriberRequestDto' from JSON`, - ); -} diff --git a/src/models/components/createtenantrequestdto.ts b/src/models/components/createtenantrequestdto.ts deleted file mode 100644 index 74654278..00000000 --- a/src/models/components/createtenantrequestdto.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type CreateTenantRequestDtoData = {}; - -export type CreateTenantRequestDto = { - data?: CreateTenantRequestDtoData | undefined; - identifier: string; - name: string; -}; - -/** @internal */ -export const CreateTenantRequestDtoData$inboundSchema: z.ZodType< - CreateTenantRequestDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type CreateTenantRequestDtoData$Outbound = {}; - -/** @internal */ -export const CreateTenantRequestDtoData$outboundSchema: z.ZodType< - CreateTenantRequestDtoData$Outbound, - z.ZodTypeDef, - CreateTenantRequestDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateTenantRequestDtoData$ { - /** @deprecated use `CreateTenantRequestDtoData$inboundSchema` instead. */ - export const inboundSchema = CreateTenantRequestDtoData$inboundSchema; - /** @deprecated use `CreateTenantRequestDtoData$outboundSchema` instead. */ - export const outboundSchema = CreateTenantRequestDtoData$outboundSchema; - /** @deprecated use `CreateTenantRequestDtoData$Outbound` instead. */ - export type Outbound = CreateTenantRequestDtoData$Outbound; -} - -/** @internal */ -export const CreateTenantRequestDto$inboundSchema: z.ZodType< - CreateTenantRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.lazy(() => CreateTenantRequestDtoData$inboundSchema).optional(), - identifier: z.string(), - name: z.string(), -}); - -/** @internal */ -export type CreateTenantRequestDto$Outbound = { - data?: CreateTenantRequestDtoData$Outbound | undefined; - identifier: string; - name: string; -}; - -/** @internal */ -export const CreateTenantRequestDto$outboundSchema: z.ZodType< - CreateTenantRequestDto$Outbound, - z.ZodTypeDef, - CreateTenantRequestDto -> = z.object({ - data: z.lazy(() => CreateTenantRequestDtoData$outboundSchema).optional(), - identifier: z.string(), - name: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateTenantRequestDto$ { - /** @deprecated use `CreateTenantRequestDto$inboundSchema` instead. */ - export const inboundSchema = CreateTenantRequestDto$inboundSchema; - /** @deprecated use `CreateTenantRequestDto$outboundSchema` instead. */ - export const outboundSchema = CreateTenantRequestDto$outboundSchema; - /** @deprecated use `CreateTenantRequestDto$Outbound` instead. */ - export type Outbound = CreateTenantRequestDto$Outbound; -} diff --git a/src/models/components/createtenantresponsedto.ts b/src/models/components/createtenantresponsedto.ts deleted file mode 100644 index 6c2a00de..00000000 --- a/src/models/components/createtenantresponsedto.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; - -export type CreateTenantResponseDtoData = {}; - -export type CreateTenantResponseDto = { - environmentId: string; - id: string; - createdAt: string; - data?: CreateTenantResponseDtoData | undefined; - identifier: string; - name?: string | undefined; - updatedAt: string; -}; - -/** @internal */ -export const CreateTenantResponseDtoData$inboundSchema: z.ZodType< - CreateTenantResponseDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type CreateTenantResponseDtoData$Outbound = {}; - -/** @internal */ -export const CreateTenantResponseDtoData$outboundSchema: z.ZodType< - CreateTenantResponseDtoData$Outbound, - z.ZodTypeDef, - CreateTenantResponseDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateTenantResponseDtoData$ { - /** @deprecated use `CreateTenantResponseDtoData$inboundSchema` instead. */ - export const inboundSchema = CreateTenantResponseDtoData$inboundSchema; - /** @deprecated use `CreateTenantResponseDtoData$outboundSchema` instead. */ - export const outboundSchema = CreateTenantResponseDtoData$outboundSchema; - /** @deprecated use `CreateTenantResponseDtoData$Outbound` instead. */ - export type Outbound = CreateTenantResponseDtoData$Outbound; -} - -/** @internal */ -export const CreateTenantResponseDto$inboundSchema: z.ZodType< - CreateTenantResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _environmentId: z.string(), - _id: z.string(), - createdAt: z.string(), - data: z.lazy(() => CreateTenantResponseDtoData$inboundSchema).optional(), - identifier: z.string(), - name: z.string().optional(), - updatedAt: z.string(), -}).transform((v) => { - return remap$(v, { - "_environmentId": "environmentId", - "_id": "id", - }); -}); - -/** @internal */ -export type CreateTenantResponseDto$Outbound = { - _environmentId: string; - _id: string; - createdAt: string; - data?: CreateTenantResponseDtoData$Outbound | undefined; - identifier: string; - name?: string | undefined; - updatedAt: string; -}; - -/** @internal */ -export const CreateTenantResponseDto$outboundSchema: z.ZodType< - CreateTenantResponseDto$Outbound, - z.ZodTypeDef, - CreateTenantResponseDto -> = z.object({ - environmentId: z.string(), - id: z.string(), - createdAt: z.string(), - data: z.lazy(() => CreateTenantResponseDtoData$outboundSchema).optional(), - identifier: z.string(), - name: z.string().optional(), - updatedAt: z.string(), -}).transform((v) => { - return remap$(v, { - environmentId: "_environmentId", - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateTenantResponseDto$ { - /** @deprecated use `CreateTenantResponseDto$inboundSchema` instead. */ - export const inboundSchema = CreateTenantResponseDto$inboundSchema; - /** @deprecated use `CreateTenantResponseDto$outboundSchema` instead. */ - export const outboundSchema = CreateTenantResponseDto$outboundSchema; - /** @deprecated use `CreateTenantResponseDto$Outbound` instead. */ - export type Outbound = CreateTenantResponseDto$Outbound; -} diff --git a/src/models/components/createtopicrequestdto.ts b/src/models/components/createtopicrequestdto.ts deleted file mode 100644 index 51e26840..00000000 --- a/src/models/components/createtopicrequestdto.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type CreateTopicRequestDto = { - /** - * User defined custom key and provided by the user that will be an unique identifier for the Topic created. - */ - key: string; - /** - * User defined custom name and provided by the user that will name the Topic created. - */ - name: string; -}; - -/** @internal */ -export const CreateTopicRequestDto$inboundSchema: z.ZodType< - CreateTopicRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - key: z.string(), - name: z.string(), -}); - -/** @internal */ -export type CreateTopicRequestDto$Outbound = { - key: string; - name: string; -}; - -/** @internal */ -export const CreateTopicRequestDto$outboundSchema: z.ZodType< - CreateTopicRequestDto$Outbound, - z.ZodTypeDef, - CreateTopicRequestDto -> = z.object({ - key: z.string(), - name: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateTopicRequestDto$ { - /** @deprecated use `CreateTopicRequestDto$inboundSchema` instead. */ - export const inboundSchema = CreateTopicRequestDto$inboundSchema; - /** @deprecated use `CreateTopicRequestDto$outboundSchema` instead. */ - export const outboundSchema = CreateTopicRequestDto$outboundSchema; - /** @deprecated use `CreateTopicRequestDto$Outbound` instead. */ - export type Outbound = CreateTopicRequestDto$Outbound; -} - -export function createTopicRequestDtoToJSON( - createTopicRequestDto: CreateTopicRequestDto, -): string { - return JSON.stringify( - CreateTopicRequestDto$outboundSchema.parse(createTopicRequestDto), - ); -} - -export function createTopicRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => CreateTopicRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'CreateTopicRequestDto' from JSON`, - ); -} diff --git a/src/models/components/createtopicresponsedto.ts b/src/models/components/createtopicresponsedto.ts deleted file mode 100644 index b02673c5..00000000 --- a/src/models/components/createtopicresponsedto.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type CreateTopicResponseDto = { - /** - * The unique identifier for the Topic created. - */ - id?: string | undefined; - /** - * User defined custom key and provided by the user that will be an unique identifier for the Topic created. - */ - key: string; -}; - -/** @internal */ -export const CreateTopicResponseDto$inboundSchema: z.ZodType< - CreateTopicResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - key: z.string(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - }); -}); - -/** @internal */ -export type CreateTopicResponseDto$Outbound = { - _id?: string | undefined; - key: string; -}; - -/** @internal */ -export const CreateTopicResponseDto$outboundSchema: z.ZodType< - CreateTopicResponseDto$Outbound, - z.ZodTypeDef, - CreateTopicResponseDto -> = z.object({ - id: z.string().optional(), - key: z.string(), -}).transform((v) => { - return remap$(v, { - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateTopicResponseDto$ { - /** @deprecated use `CreateTopicResponseDto$inboundSchema` instead. */ - export const inboundSchema = CreateTopicResponseDto$inboundSchema; - /** @deprecated use `CreateTopicResponseDto$outboundSchema` instead. */ - export const outboundSchema = CreateTopicResponseDto$outboundSchema; - /** @deprecated use `CreateTopicResponseDto$Outbound` instead. */ - export type Outbound = CreateTopicResponseDto$Outbound; -} - -export function createTopicResponseDtoToJSON( - createTopicResponseDto: CreateTopicResponseDto, -): string { - return JSON.stringify( - CreateTopicResponseDto$outboundSchema.parse(createTopicResponseDto), - ); -} - -export function createTopicResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => CreateTopicResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'CreateTopicResponseDto' from JSON`, - ); -} diff --git a/src/models/components/createworkflowrequestdto.ts b/src/models/components/createworkflowrequestdto.ts deleted file mode 100644 index cae2a3a2..00000000 --- a/src/models/components/createworkflowrequestdto.ts +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { - NotificationStep, - NotificationStep$inboundSchema, - NotificationStep$Outbound, - NotificationStep$outboundSchema, -} from "./notificationstep.js"; -import { - PreferenceChannels, - PreferenceChannels$inboundSchema, - PreferenceChannels$Outbound, - PreferenceChannels$outboundSchema, -} from "./preferencechannels.js"; - -export type CreateWorkflowRequestDtoData = {}; - -export type CreateWorkflowRequestDtoNotificationGroup = {}; - -export type CreateWorkflowRequestDto = { - active?: boolean | undefined; - blueprintId?: string | undefined; - critical?: boolean | undefined; - data?: CreateWorkflowRequestDtoData | undefined; - description?: string | undefined; - /** - * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. - */ - draft?: boolean | undefined; - name: string; - notificationGroup?: CreateWorkflowRequestDtoNotificationGroup | undefined; - notificationGroupId: string; - preferenceSettings?: PreferenceChannels | undefined; - steps: Array; - tags?: Array | undefined; -}; - -/** @internal */ -export const CreateWorkflowRequestDtoData$inboundSchema: z.ZodType< - CreateWorkflowRequestDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type CreateWorkflowRequestDtoData$Outbound = {}; - -/** @internal */ -export const CreateWorkflowRequestDtoData$outboundSchema: z.ZodType< - CreateWorkflowRequestDtoData$Outbound, - z.ZodTypeDef, - CreateWorkflowRequestDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateWorkflowRequestDtoData$ { - /** @deprecated use `CreateWorkflowRequestDtoData$inboundSchema` instead. */ - export const inboundSchema = CreateWorkflowRequestDtoData$inboundSchema; - /** @deprecated use `CreateWorkflowRequestDtoData$outboundSchema` instead. */ - export const outboundSchema = CreateWorkflowRequestDtoData$outboundSchema; - /** @deprecated use `CreateWorkflowRequestDtoData$Outbound` instead. */ - export type Outbound = CreateWorkflowRequestDtoData$Outbound; -} - -/** @internal */ -export const CreateWorkflowRequestDtoNotificationGroup$inboundSchema: z.ZodType< - CreateWorkflowRequestDtoNotificationGroup, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type CreateWorkflowRequestDtoNotificationGroup$Outbound = {}; - -/** @internal */ -export const CreateWorkflowRequestDtoNotificationGroup$outboundSchema: - z.ZodType< - CreateWorkflowRequestDtoNotificationGroup$Outbound, - z.ZodTypeDef, - CreateWorkflowRequestDtoNotificationGroup - > = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateWorkflowRequestDtoNotificationGroup$ { - /** @deprecated use `CreateWorkflowRequestDtoNotificationGroup$inboundSchema` instead. */ - export const inboundSchema = - CreateWorkflowRequestDtoNotificationGroup$inboundSchema; - /** @deprecated use `CreateWorkflowRequestDtoNotificationGroup$outboundSchema` instead. */ - export const outboundSchema = - CreateWorkflowRequestDtoNotificationGroup$outboundSchema; - /** @deprecated use `CreateWorkflowRequestDtoNotificationGroup$Outbound` instead. */ - export type Outbound = CreateWorkflowRequestDtoNotificationGroup$Outbound; -} - -/** @internal */ -export const CreateWorkflowRequestDto$inboundSchema: z.ZodType< - CreateWorkflowRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - active: z.boolean().optional(), - blueprintId: z.string().optional(), - critical: z.boolean().optional(), - data: z.lazy(() => CreateWorkflowRequestDtoData$inboundSchema).optional(), - description: z.string().optional(), - draft: z.boolean().optional(), - name: z.string(), - notificationGroup: z.lazy(() => - CreateWorkflowRequestDtoNotificationGroup$inboundSchema - ).optional(), - notificationGroupId: z.string(), - preferenceSettings: PreferenceChannels$inboundSchema.optional(), - steps: z.array(NotificationStep$inboundSchema), - tags: z.array(z.string()).optional(), -}); - -/** @internal */ -export type CreateWorkflowRequestDto$Outbound = { - active?: boolean | undefined; - blueprintId?: string | undefined; - critical?: boolean | undefined; - data?: CreateWorkflowRequestDtoData$Outbound | undefined; - description?: string | undefined; - draft?: boolean | undefined; - name: string; - notificationGroup?: - | CreateWorkflowRequestDtoNotificationGroup$Outbound - | undefined; - notificationGroupId: string; - preferenceSettings?: PreferenceChannels$Outbound | undefined; - steps: Array; - tags?: Array | undefined; -}; - -/** @internal */ -export const CreateWorkflowRequestDto$outboundSchema: z.ZodType< - CreateWorkflowRequestDto$Outbound, - z.ZodTypeDef, - CreateWorkflowRequestDto -> = z.object({ - active: z.boolean().optional(), - blueprintId: z.string().optional(), - critical: z.boolean().optional(), - data: z.lazy(() => CreateWorkflowRequestDtoData$outboundSchema).optional(), - description: z.string().optional(), - draft: z.boolean().optional(), - name: z.string(), - notificationGroup: z.lazy(() => - CreateWorkflowRequestDtoNotificationGroup$outboundSchema - ).optional(), - notificationGroupId: z.string(), - preferenceSettings: PreferenceChannels$outboundSchema.optional(), - steps: z.array(NotificationStep$outboundSchema), - tags: z.array(z.string()).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CreateWorkflowRequestDto$ { - /** @deprecated use `CreateWorkflowRequestDto$inboundSchema` instead. */ - export const inboundSchema = CreateWorkflowRequestDto$inboundSchema; - /** @deprecated use `CreateWorkflowRequestDto$outboundSchema` instead. */ - export const outboundSchema = CreateWorkflowRequestDto$outboundSchema; - /** @deprecated use `CreateWorkflowRequestDto$Outbound` instead. */ - export type Outbound = CreateWorkflowRequestDto$Outbound; -} diff --git a/src/models/components/credentialsdto.ts b/src/models/components/credentialsdto.ts deleted file mode 100644 index 2818b688..00000000 --- a/src/models/components/credentialsdto.ts +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TlsOptions = {}; - -export type CredentialsDto = { - apiKey?: string | undefined; - user?: string | undefined; - secretKey?: string | undefined; - domain?: string | undefined; - password?: string | undefined; - host?: string | undefined; - port?: string | undefined; - secure?: boolean | undefined; - region?: string | undefined; - accountSid?: string | undefined; - messageProfileId?: string | undefined; - token?: string | undefined; - from?: string | undefined; - senderName?: string | undefined; - projectName?: string | undefined; - applicationId?: string | undefined; - clientId?: string | undefined; - requireTls?: boolean | undefined; - ignoreTls?: boolean | undefined; - tlsOptions?: TlsOptions | undefined; - baseUrl?: string | undefined; - webhookUrl?: string | undefined; - redirectUrl?: string | undefined; - hmac?: boolean | undefined; - serviceAccount?: string | undefined; - ipPoolName?: string | undefined; - apiKeyRequestHeader?: string | undefined; - secretKeyRequestHeader?: string | undefined; - idPath?: string | undefined; - datePath?: string | undefined; - apiToken?: string | undefined; - authenticateByToken?: boolean | undefined; - authenticationTokenKey?: string | undefined; - instanceId?: string | undefined; - alertUid?: string | undefined; - title?: string | undefined; - imageUrl?: string | undefined; - state?: string | undefined; - externalLink?: string | undefined; - channelId?: string | undefined; - phoneNumberIdentification?: string | undefined; - accessKey?: string | undefined; -}; - -/** @internal */ -export const TlsOptions$inboundSchema: z.ZodType< - TlsOptions, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type TlsOptions$Outbound = {}; - -/** @internal */ -export const TlsOptions$outboundSchema: z.ZodType< - TlsOptions$Outbound, - z.ZodTypeDef, - TlsOptions -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TlsOptions$ { - /** @deprecated use `TlsOptions$inboundSchema` instead. */ - export const inboundSchema = TlsOptions$inboundSchema; - /** @deprecated use `TlsOptions$outboundSchema` instead. */ - export const outboundSchema = TlsOptions$outboundSchema; - /** @deprecated use `TlsOptions$Outbound` instead. */ - export type Outbound = TlsOptions$Outbound; -} - -export function tlsOptionsToJSON(tlsOptions: TlsOptions): string { - return JSON.stringify(TlsOptions$outboundSchema.parse(tlsOptions)); -} - -export function tlsOptionsFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TlsOptions$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TlsOptions' from JSON`, - ); -} - -/** @internal */ -export const CredentialsDto$inboundSchema: z.ZodType< - CredentialsDto, - z.ZodTypeDef, - unknown -> = z.object({ - apiKey: z.string().optional(), - user: z.string().optional(), - secretKey: z.string().optional(), - domain: z.string().optional(), - password: z.string().optional(), - host: z.string().optional(), - port: z.string().optional(), - secure: z.boolean().optional(), - region: z.string().optional(), - accountSid: z.string().optional(), - messageProfileId: z.string().optional(), - token: z.string().optional(), - from: z.string().optional(), - senderName: z.string().optional(), - projectName: z.string().optional(), - applicationId: z.string().optional(), - clientId: z.string().optional(), - requireTls: z.boolean().optional(), - ignoreTls: z.boolean().optional(), - tlsOptions: z.lazy(() => TlsOptions$inboundSchema).optional(), - baseUrl: z.string().optional(), - webhookUrl: z.string().optional(), - redirectUrl: z.string().optional(), - hmac: z.boolean().optional(), - serviceAccount: z.string().optional(), - ipPoolName: z.string().optional(), - apiKeyRequestHeader: z.string().optional(), - secretKeyRequestHeader: z.string().optional(), - idPath: z.string().optional(), - datePath: z.string().optional(), - apiToken: z.string().optional(), - authenticateByToken: z.boolean().optional(), - authenticationTokenKey: z.string().optional(), - instanceId: z.string().optional(), - alertUid: z.string().optional(), - title: z.string().optional(), - imageUrl: z.string().optional(), - state: z.string().optional(), - externalLink: z.string().optional(), - channelId: z.string().optional(), - phoneNumberIdentification: z.string().optional(), - accessKey: z.string().optional(), -}); - -/** @internal */ -export type CredentialsDto$Outbound = { - apiKey?: string | undefined; - user?: string | undefined; - secretKey?: string | undefined; - domain?: string | undefined; - password?: string | undefined; - host?: string | undefined; - port?: string | undefined; - secure?: boolean | undefined; - region?: string | undefined; - accountSid?: string | undefined; - messageProfileId?: string | undefined; - token?: string | undefined; - from?: string | undefined; - senderName?: string | undefined; - projectName?: string | undefined; - applicationId?: string | undefined; - clientId?: string | undefined; - requireTls?: boolean | undefined; - ignoreTls?: boolean | undefined; - tlsOptions?: TlsOptions$Outbound | undefined; - baseUrl?: string | undefined; - webhookUrl?: string | undefined; - redirectUrl?: string | undefined; - hmac?: boolean | undefined; - serviceAccount?: string | undefined; - ipPoolName?: string | undefined; - apiKeyRequestHeader?: string | undefined; - secretKeyRequestHeader?: string | undefined; - idPath?: string | undefined; - datePath?: string | undefined; - apiToken?: string | undefined; - authenticateByToken?: boolean | undefined; - authenticationTokenKey?: string | undefined; - instanceId?: string | undefined; - alertUid?: string | undefined; - title?: string | undefined; - imageUrl?: string | undefined; - state?: string | undefined; - externalLink?: string | undefined; - channelId?: string | undefined; - phoneNumberIdentification?: string | undefined; - accessKey?: string | undefined; -}; - -/** @internal */ -export const CredentialsDto$outboundSchema: z.ZodType< - CredentialsDto$Outbound, - z.ZodTypeDef, - CredentialsDto -> = z.object({ - apiKey: z.string().optional(), - user: z.string().optional(), - secretKey: z.string().optional(), - domain: z.string().optional(), - password: z.string().optional(), - host: z.string().optional(), - port: z.string().optional(), - secure: z.boolean().optional(), - region: z.string().optional(), - accountSid: z.string().optional(), - messageProfileId: z.string().optional(), - token: z.string().optional(), - from: z.string().optional(), - senderName: z.string().optional(), - projectName: z.string().optional(), - applicationId: z.string().optional(), - clientId: z.string().optional(), - requireTls: z.boolean().optional(), - ignoreTls: z.boolean().optional(), - tlsOptions: z.lazy(() => TlsOptions$outboundSchema).optional(), - baseUrl: z.string().optional(), - webhookUrl: z.string().optional(), - redirectUrl: z.string().optional(), - hmac: z.boolean().optional(), - serviceAccount: z.string().optional(), - ipPoolName: z.string().optional(), - apiKeyRequestHeader: z.string().optional(), - secretKeyRequestHeader: z.string().optional(), - idPath: z.string().optional(), - datePath: z.string().optional(), - apiToken: z.string().optional(), - authenticateByToken: z.boolean().optional(), - authenticationTokenKey: z.string().optional(), - instanceId: z.string().optional(), - alertUid: z.string().optional(), - title: z.string().optional(), - imageUrl: z.string().optional(), - state: z.string().optional(), - externalLink: z.string().optional(), - channelId: z.string().optional(), - phoneNumberIdentification: z.string().optional(), - accessKey: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace CredentialsDto$ { - /** @deprecated use `CredentialsDto$inboundSchema` instead. */ - export const inboundSchema = CredentialsDto$inboundSchema; - /** @deprecated use `CredentialsDto$outboundSchema` instead. */ - export const outboundSchema = CredentialsDto$outboundSchema; - /** @deprecated use `CredentialsDto$Outbound` instead. */ - export type Outbound = CredentialsDto$Outbound; -} - -export function credentialsDtoToJSON(credentialsDto: CredentialsDto): string { - return JSON.stringify(CredentialsDto$outboundSchema.parse(credentialsDto)); -} - -export function credentialsDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => CredentialsDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'CredentialsDto' from JSON`, - ); -} diff --git a/src/models/components/databooleandto.ts b/src/models/components/databooleandto.ts deleted file mode 100644 index 200fb5b0..00000000 --- a/src/models/components/databooleandto.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type DataBooleanDto = { - data: boolean; -}; - -/** @internal */ -export const DataBooleanDto$inboundSchema: z.ZodType< - DataBooleanDto, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.boolean(), -}); - -/** @internal */ -export type DataBooleanDto$Outbound = { - data: boolean; -}; - -/** @internal */ -export const DataBooleanDto$outboundSchema: z.ZodType< - DataBooleanDto$Outbound, - z.ZodTypeDef, - DataBooleanDto -> = z.object({ - data: z.boolean(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DataBooleanDto$ { - /** @deprecated use `DataBooleanDto$inboundSchema` instead. */ - export const inboundSchema = DataBooleanDto$inboundSchema; - /** @deprecated use `DataBooleanDto$outboundSchema` instead. */ - export const outboundSchema = DataBooleanDto$outboundSchema; - /** @deprecated use `DataBooleanDto$Outbound` instead. */ - export type Outbound = DataBooleanDto$Outbound; -} - -export function dataBooleanDtoToJSON(dataBooleanDto: DataBooleanDto): string { - return JSON.stringify(DataBooleanDto$outboundSchema.parse(dataBooleanDto)); -} - -export function dataBooleanDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DataBooleanDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataBooleanDto' from JSON`, - ); -} diff --git a/src/models/components/datanumberdto.ts b/src/models/components/datanumberdto.ts deleted file mode 100644 index 8fa574a0..00000000 --- a/src/models/components/datanumberdto.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type DataNumberDto = { - data: number; -}; - -/** @internal */ -export const DataNumberDto$inboundSchema: z.ZodType< - DataNumberDto, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.number(), -}); - -/** @internal */ -export type DataNumberDto$Outbound = { - data: number; -}; - -/** @internal */ -export const DataNumberDto$outboundSchema: z.ZodType< - DataNumberDto$Outbound, - z.ZodTypeDef, - DataNumberDto -> = z.object({ - data: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DataNumberDto$ { - /** @deprecated use `DataNumberDto$inboundSchema` instead. */ - export const inboundSchema = DataNumberDto$inboundSchema; - /** @deprecated use `DataNumberDto$outboundSchema` instead. */ - export const outboundSchema = DataNumberDto$outboundSchema; - /** @deprecated use `DataNumberDto$Outbound` instead. */ - export type Outbound = DataNumberDto$Outbound; -} diff --git a/src/models/components/delayregularmetadata.ts b/src/models/components/delayregularmetadata.ts deleted file mode 100644 index 7c8631f4..00000000 --- a/src/models/components/delayregularmetadata.ts +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const DelayRegularMetadataUnit = { - Seconds: "seconds", - Minutes: "minutes", - Hours: "hours", - Days: "days", - Weeks: "weeks", - Months: "months", -} as const; -export type DelayRegularMetadataUnit = ClosedEnum< - typeof DelayRegularMetadataUnit ->; - -export const DelayRegularMetadataType = { - Regular: "regular", -} as const; -export type DelayRegularMetadataType = ClosedEnum< - typeof DelayRegularMetadataType ->; - -export type DelayRegularMetadata = { - amount?: number | undefined; - unit?: DelayRegularMetadataUnit | undefined; - type: DelayRegularMetadataType; -}; - -/** @internal */ -export const DelayRegularMetadataUnit$inboundSchema: z.ZodNativeEnum< - typeof DelayRegularMetadataUnit -> = z.nativeEnum(DelayRegularMetadataUnit); - -/** @internal */ -export const DelayRegularMetadataUnit$outboundSchema: z.ZodNativeEnum< - typeof DelayRegularMetadataUnit -> = DelayRegularMetadataUnit$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DelayRegularMetadataUnit$ { - /** @deprecated use `DelayRegularMetadataUnit$inboundSchema` instead. */ - export const inboundSchema = DelayRegularMetadataUnit$inboundSchema; - /** @deprecated use `DelayRegularMetadataUnit$outboundSchema` instead. */ - export const outboundSchema = DelayRegularMetadataUnit$outboundSchema; -} - -/** @internal */ -export const DelayRegularMetadataType$inboundSchema: z.ZodNativeEnum< - typeof DelayRegularMetadataType -> = z.nativeEnum(DelayRegularMetadataType); - -/** @internal */ -export const DelayRegularMetadataType$outboundSchema: z.ZodNativeEnum< - typeof DelayRegularMetadataType -> = DelayRegularMetadataType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DelayRegularMetadataType$ { - /** @deprecated use `DelayRegularMetadataType$inboundSchema` instead. */ - export const inboundSchema = DelayRegularMetadataType$inboundSchema; - /** @deprecated use `DelayRegularMetadataType$outboundSchema` instead. */ - export const outboundSchema = DelayRegularMetadataType$outboundSchema; -} - -/** @internal */ -export const DelayRegularMetadata$inboundSchema: z.ZodType< - DelayRegularMetadata, - z.ZodTypeDef, - unknown -> = z.object({ - amount: z.number().optional(), - unit: DelayRegularMetadataUnit$inboundSchema.optional(), - type: DelayRegularMetadataType$inboundSchema, -}); - -/** @internal */ -export type DelayRegularMetadata$Outbound = { - amount?: number | undefined; - unit?: string | undefined; - type: string; -}; - -/** @internal */ -export const DelayRegularMetadata$outboundSchema: z.ZodType< - DelayRegularMetadata$Outbound, - z.ZodTypeDef, - DelayRegularMetadata -> = z.object({ - amount: z.number().optional(), - unit: DelayRegularMetadataUnit$outboundSchema.optional(), - type: DelayRegularMetadataType$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DelayRegularMetadata$ { - /** @deprecated use `DelayRegularMetadata$inboundSchema` instead. */ - export const inboundSchema = DelayRegularMetadata$inboundSchema; - /** @deprecated use `DelayRegularMetadata$outboundSchema` instead. */ - export const outboundSchema = DelayRegularMetadata$outboundSchema; - /** @deprecated use `DelayRegularMetadata$Outbound` instead. */ - export type Outbound = DelayRegularMetadata$Outbound; -} - -export function delayRegularMetadataToJSON( - delayRegularMetadata: DelayRegularMetadata, -): string { - return JSON.stringify( - DelayRegularMetadata$outboundSchema.parse(delayRegularMetadata), - ); -} - -export function delayRegularMetadataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DelayRegularMetadata$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DelayRegularMetadata' from JSON`, - ); -} diff --git a/src/models/components/delayscheduledmetadata.ts b/src/models/components/delayscheduledmetadata.ts deleted file mode 100644 index cd26f256..00000000 --- a/src/models/components/delayscheduledmetadata.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const DelayScheduledMetadataType = { - Scheduled: "scheduled", -} as const; -export type DelayScheduledMetadataType = ClosedEnum< - typeof DelayScheduledMetadataType ->; - -export type DelayScheduledMetadata = { - type: DelayScheduledMetadataType; - delayPath: string; -}; - -/** @internal */ -export const DelayScheduledMetadataType$inboundSchema: z.ZodNativeEnum< - typeof DelayScheduledMetadataType -> = z.nativeEnum(DelayScheduledMetadataType); - -/** @internal */ -export const DelayScheduledMetadataType$outboundSchema: z.ZodNativeEnum< - typeof DelayScheduledMetadataType -> = DelayScheduledMetadataType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DelayScheduledMetadataType$ { - /** @deprecated use `DelayScheduledMetadataType$inboundSchema` instead. */ - export const inboundSchema = DelayScheduledMetadataType$inboundSchema; - /** @deprecated use `DelayScheduledMetadataType$outboundSchema` instead. */ - export const outboundSchema = DelayScheduledMetadataType$outboundSchema; -} - -/** @internal */ -export const DelayScheduledMetadata$inboundSchema: z.ZodType< - DelayScheduledMetadata, - z.ZodTypeDef, - unknown -> = z.object({ - type: DelayScheduledMetadataType$inboundSchema, - delayPath: z.string(), -}); - -/** @internal */ -export type DelayScheduledMetadata$Outbound = { - type: string; - delayPath: string; -}; - -/** @internal */ -export const DelayScheduledMetadata$outboundSchema: z.ZodType< - DelayScheduledMetadata$Outbound, - z.ZodTypeDef, - DelayScheduledMetadata -> = z.object({ - type: DelayScheduledMetadataType$outboundSchema, - delayPath: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DelayScheduledMetadata$ { - /** @deprecated use `DelayScheduledMetadata$inboundSchema` instead. */ - export const inboundSchema = DelayScheduledMetadata$inboundSchema; - /** @deprecated use `DelayScheduledMetadata$outboundSchema` instead. */ - export const outboundSchema = DelayScheduledMetadata$outboundSchema; - /** @deprecated use `DelayScheduledMetadata$Outbound` instead. */ - export type Outbound = DelayScheduledMetadata$Outbound; -} - -export function delayScheduledMetadataToJSON( - delayScheduledMetadata: DelayScheduledMetadata, -): string { - return JSON.stringify( - DelayScheduledMetadata$outboundSchema.parse(delayScheduledMetadata), - ); -} - -export function delayScheduledMetadataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DelayScheduledMetadata$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DelayScheduledMetadata' from JSON`, - ); -} diff --git a/src/models/components/deletemessageresponsedto.ts b/src/models/components/deletemessageresponsedto.ts deleted file mode 100644 index 50e20aed..00000000 --- a/src/models/components/deletemessageresponsedto.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * The status enum for the performed action - */ -export const DeleteMessageResponseDtoStatus = { - Deleted: "deleted", -} as const; -/** - * The status enum for the performed action - */ -export type DeleteMessageResponseDtoStatus = ClosedEnum< - typeof DeleteMessageResponseDtoStatus ->; - -export type DeleteMessageResponseDto = { - /** - * A boolean stating the success of the action - */ - acknowledged: boolean; - /** - * The status enum for the performed action - */ - status: DeleteMessageResponseDtoStatus; -}; - -/** @internal */ -export const DeleteMessageResponseDtoStatus$inboundSchema: z.ZodNativeEnum< - typeof DeleteMessageResponseDtoStatus -> = z.nativeEnum(DeleteMessageResponseDtoStatus); - -/** @internal */ -export const DeleteMessageResponseDtoStatus$outboundSchema: z.ZodNativeEnum< - typeof DeleteMessageResponseDtoStatus -> = DeleteMessageResponseDtoStatus$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DeleteMessageResponseDtoStatus$ { - /** @deprecated use `DeleteMessageResponseDtoStatus$inboundSchema` instead. */ - export const inboundSchema = DeleteMessageResponseDtoStatus$inboundSchema; - /** @deprecated use `DeleteMessageResponseDtoStatus$outboundSchema` instead. */ - export const outboundSchema = DeleteMessageResponseDtoStatus$outboundSchema; -} - -/** @internal */ -export const DeleteMessageResponseDto$inboundSchema: z.ZodType< - DeleteMessageResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - acknowledged: z.boolean(), - status: DeleteMessageResponseDtoStatus$inboundSchema, -}); - -/** @internal */ -export type DeleteMessageResponseDto$Outbound = { - acknowledged: boolean; - status: string; -}; - -/** @internal */ -export const DeleteMessageResponseDto$outboundSchema: z.ZodType< - DeleteMessageResponseDto$Outbound, - z.ZodTypeDef, - DeleteMessageResponseDto -> = z.object({ - acknowledged: z.boolean(), - status: DeleteMessageResponseDtoStatus$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DeleteMessageResponseDto$ { - /** @deprecated use `DeleteMessageResponseDto$inboundSchema` instead. */ - export const inboundSchema = DeleteMessageResponseDto$inboundSchema; - /** @deprecated use `DeleteMessageResponseDto$outboundSchema` instead. */ - export const outboundSchema = DeleteMessageResponseDto$outboundSchema; - /** @deprecated use `DeleteMessageResponseDto$Outbound` instead. */ - export type Outbound = DeleteMessageResponseDto$Outbound; -} - -export function deleteMessageResponseDtoToJSON( - deleteMessageResponseDto: DeleteMessageResponseDto, -): string { - return JSON.stringify( - DeleteMessageResponseDto$outboundSchema.parse(deleteMessageResponseDto), - ); -} - -export function deleteMessageResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DeleteMessageResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeleteMessageResponseDto' from JSON`, - ); -} diff --git a/src/models/components/deletenotificationgroupresponsedto.ts b/src/models/components/deletenotificationgroupresponsedto.ts deleted file mode 100644 index b75b5c46..00000000 --- a/src/models/components/deletenotificationgroupresponsedto.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * The status enum for the performed action - */ -export const DeleteNotificationGroupResponseDtoStatus = { - Deleted: "deleted", -} as const; -/** - * The status enum for the performed action - */ -export type DeleteNotificationGroupResponseDtoStatus = ClosedEnum< - typeof DeleteNotificationGroupResponseDtoStatus ->; - -export type DeleteNotificationGroupResponseDto = { - /** - * A boolean stating the success of the action - */ - acknowledged: boolean; - /** - * The status enum for the performed action - */ - status: DeleteNotificationGroupResponseDtoStatus; -}; - -/** @internal */ -export const DeleteNotificationGroupResponseDtoStatus$inboundSchema: - z.ZodNativeEnum = z - .nativeEnum(DeleteNotificationGroupResponseDtoStatus); - -/** @internal */ -export const DeleteNotificationGroupResponseDtoStatus$outboundSchema: - z.ZodNativeEnum = - DeleteNotificationGroupResponseDtoStatus$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DeleteNotificationGroupResponseDtoStatus$ { - /** @deprecated use `DeleteNotificationGroupResponseDtoStatus$inboundSchema` instead. */ - export const inboundSchema = - DeleteNotificationGroupResponseDtoStatus$inboundSchema; - /** @deprecated use `DeleteNotificationGroupResponseDtoStatus$outboundSchema` instead. */ - export const outboundSchema = - DeleteNotificationGroupResponseDtoStatus$outboundSchema; -} - -/** @internal */ -export const DeleteNotificationGroupResponseDto$inboundSchema: z.ZodType< - DeleteNotificationGroupResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - acknowledged: z.boolean(), - status: DeleteNotificationGroupResponseDtoStatus$inboundSchema, -}); - -/** @internal */ -export type DeleteNotificationGroupResponseDto$Outbound = { - acknowledged: boolean; - status: string; -}; - -/** @internal */ -export const DeleteNotificationGroupResponseDto$outboundSchema: z.ZodType< - DeleteNotificationGroupResponseDto$Outbound, - z.ZodTypeDef, - DeleteNotificationGroupResponseDto -> = z.object({ - acknowledged: z.boolean(), - status: DeleteNotificationGroupResponseDtoStatus$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DeleteNotificationGroupResponseDto$ { - /** @deprecated use `DeleteNotificationGroupResponseDto$inboundSchema` instead. */ - export const inboundSchema = DeleteNotificationGroupResponseDto$inboundSchema; - /** @deprecated use `DeleteNotificationGroupResponseDto$outboundSchema` instead. */ - export const outboundSchema = - DeleteNotificationGroupResponseDto$outboundSchema; - /** @deprecated use `DeleteNotificationGroupResponseDto$Outbound` instead. */ - export type Outbound = DeleteNotificationGroupResponseDto$Outbound; -} - -export function deleteNotificationGroupResponseDtoToJSON( - deleteNotificationGroupResponseDto: DeleteNotificationGroupResponseDto, -): string { - return JSON.stringify( - DeleteNotificationGroupResponseDto$outboundSchema.parse( - deleteNotificationGroupResponseDto, - ), - ); -} - -export function deleteNotificationGroupResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - DeleteNotificationGroupResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeleteNotificationGroupResponseDto' from JSON`, - ); -} diff --git a/src/models/components/deletesubscriberresponsedto.ts b/src/models/components/deletesubscriberresponsedto.ts deleted file mode 100644 index c23af1a8..00000000 --- a/src/models/components/deletesubscriberresponsedto.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * The status enum for the performed action - */ -export const DeleteSubscriberResponseDtoStatus = { - Deleted: "deleted", -} as const; -/** - * The status enum for the performed action - */ -export type DeleteSubscriberResponseDtoStatus = ClosedEnum< - typeof DeleteSubscriberResponseDtoStatus ->; - -export type DeleteSubscriberResponseDto = { - /** - * A boolean stating the success of the action - */ - acknowledged: boolean; - /** - * The status enum for the performed action - */ - status: DeleteSubscriberResponseDtoStatus; -}; - -/** @internal */ -export const DeleteSubscriberResponseDtoStatus$inboundSchema: z.ZodNativeEnum< - typeof DeleteSubscriberResponseDtoStatus -> = z.nativeEnum(DeleteSubscriberResponseDtoStatus); - -/** @internal */ -export const DeleteSubscriberResponseDtoStatus$outboundSchema: z.ZodNativeEnum< - typeof DeleteSubscriberResponseDtoStatus -> = DeleteSubscriberResponseDtoStatus$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DeleteSubscriberResponseDtoStatus$ { - /** @deprecated use `DeleteSubscriberResponseDtoStatus$inboundSchema` instead. */ - export const inboundSchema = DeleteSubscriberResponseDtoStatus$inboundSchema; - /** @deprecated use `DeleteSubscriberResponseDtoStatus$outboundSchema` instead. */ - export const outboundSchema = - DeleteSubscriberResponseDtoStatus$outboundSchema; -} - -/** @internal */ -export const DeleteSubscriberResponseDto$inboundSchema: z.ZodType< - DeleteSubscriberResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - acknowledged: z.boolean(), - status: DeleteSubscriberResponseDtoStatus$inboundSchema, -}); - -/** @internal */ -export type DeleteSubscriberResponseDto$Outbound = { - acknowledged: boolean; - status: string; -}; - -/** @internal */ -export const DeleteSubscriberResponseDto$outboundSchema: z.ZodType< - DeleteSubscriberResponseDto$Outbound, - z.ZodTypeDef, - DeleteSubscriberResponseDto -> = z.object({ - acknowledged: z.boolean(), - status: DeleteSubscriberResponseDtoStatus$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DeleteSubscriberResponseDto$ { - /** @deprecated use `DeleteSubscriberResponseDto$inboundSchema` instead. */ - export const inboundSchema = DeleteSubscriberResponseDto$inboundSchema; - /** @deprecated use `DeleteSubscriberResponseDto$outboundSchema` instead. */ - export const outboundSchema = DeleteSubscriberResponseDto$outboundSchema; - /** @deprecated use `DeleteSubscriberResponseDto$Outbound` instead. */ - export type Outbound = DeleteSubscriberResponseDto$Outbound; -} - -export function deleteSubscriberResponseDtoToJSON( - deleteSubscriberResponseDto: DeleteSubscriberResponseDto, -): string { - return JSON.stringify( - DeleteSubscriberResponseDto$outboundSchema.parse( - deleteSubscriberResponseDto, - ), - ); -} - -export function deleteSubscriberResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DeleteSubscriberResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeleteSubscriberResponseDto' from JSON`, - ); -} diff --git a/src/models/components/digestregularmetadata.ts b/src/models/components/digestregularmetadata.ts deleted file mode 100644 index f59bcbc9..00000000 --- a/src/models/components/digestregularmetadata.ts +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const Unit = { - Seconds: "seconds", - Minutes: "minutes", - Hours: "hours", - Days: "days", - Weeks: "weeks", - Months: "months", -} as const; -export type Unit = ClosedEnum; - -export const DigestRegularMetadataType = { - Regular: "regular", - Backoff: "backoff", -} as const; -export type DigestRegularMetadataType = ClosedEnum< - typeof DigestRegularMetadataType ->; - -export const BackoffUnit = { - Seconds: "seconds", - Minutes: "minutes", - Hours: "hours", - Days: "days", - Weeks: "weeks", - Months: "months", -} as const; -export type BackoffUnit = ClosedEnum; - -export type DigestRegularMetadata = { - amount?: number | undefined; - unit?: Unit | undefined; - digestKey?: string | undefined; - type: DigestRegularMetadataType; - backoff?: boolean | undefined; - backoffAmount?: number | undefined; - backoffUnit?: BackoffUnit | undefined; - updateMode?: boolean | undefined; -}; - -/** @internal */ -export const Unit$inboundSchema: z.ZodNativeEnum = z.nativeEnum( - Unit, -); - -/** @internal */ -export const Unit$outboundSchema: z.ZodNativeEnum = - Unit$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Unit$ { - /** @deprecated use `Unit$inboundSchema` instead. */ - export const inboundSchema = Unit$inboundSchema; - /** @deprecated use `Unit$outboundSchema` instead. */ - export const outboundSchema = Unit$outboundSchema; -} - -/** @internal */ -export const DigestRegularMetadataType$inboundSchema: z.ZodNativeEnum< - typeof DigestRegularMetadataType -> = z.nativeEnum(DigestRegularMetadataType); - -/** @internal */ -export const DigestRegularMetadataType$outboundSchema: z.ZodNativeEnum< - typeof DigestRegularMetadataType -> = DigestRegularMetadataType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DigestRegularMetadataType$ { - /** @deprecated use `DigestRegularMetadataType$inboundSchema` instead. */ - export const inboundSchema = DigestRegularMetadataType$inboundSchema; - /** @deprecated use `DigestRegularMetadataType$outboundSchema` instead. */ - export const outboundSchema = DigestRegularMetadataType$outboundSchema; -} - -/** @internal */ -export const BackoffUnit$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(BackoffUnit); - -/** @internal */ -export const BackoffUnit$outboundSchema: z.ZodNativeEnum = - BackoffUnit$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace BackoffUnit$ { - /** @deprecated use `BackoffUnit$inboundSchema` instead. */ - export const inboundSchema = BackoffUnit$inboundSchema; - /** @deprecated use `BackoffUnit$outboundSchema` instead. */ - export const outboundSchema = BackoffUnit$outboundSchema; -} - -/** @internal */ -export const DigestRegularMetadata$inboundSchema: z.ZodType< - DigestRegularMetadata, - z.ZodTypeDef, - unknown -> = z.object({ - amount: z.number().optional(), - unit: Unit$inboundSchema.optional(), - digestKey: z.string().optional(), - type: DigestRegularMetadataType$inboundSchema, - backoff: z.boolean().optional(), - backoffAmount: z.number().optional(), - backoffUnit: BackoffUnit$inboundSchema.optional(), - updateMode: z.boolean().optional(), -}); - -/** @internal */ -export type DigestRegularMetadata$Outbound = { - amount?: number | undefined; - unit?: string | undefined; - digestKey?: string | undefined; - type: string; - backoff?: boolean | undefined; - backoffAmount?: number | undefined; - backoffUnit?: string | undefined; - updateMode?: boolean | undefined; -}; - -/** @internal */ -export const DigestRegularMetadata$outboundSchema: z.ZodType< - DigestRegularMetadata$Outbound, - z.ZodTypeDef, - DigestRegularMetadata -> = z.object({ - amount: z.number().optional(), - unit: Unit$outboundSchema.optional(), - digestKey: z.string().optional(), - type: DigestRegularMetadataType$outboundSchema, - backoff: z.boolean().optional(), - backoffAmount: z.number().optional(), - backoffUnit: BackoffUnit$outboundSchema.optional(), - updateMode: z.boolean().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DigestRegularMetadata$ { - /** @deprecated use `DigestRegularMetadata$inboundSchema` instead. */ - export const inboundSchema = DigestRegularMetadata$inboundSchema; - /** @deprecated use `DigestRegularMetadata$outboundSchema` instead. */ - export const outboundSchema = DigestRegularMetadata$outboundSchema; - /** @deprecated use `DigestRegularMetadata$Outbound` instead. */ - export type Outbound = DigestRegularMetadata$Outbound; -} - -export function digestRegularMetadataToJSON( - digestRegularMetadata: DigestRegularMetadata, -): string { - return JSON.stringify( - DigestRegularMetadata$outboundSchema.parse(digestRegularMetadata), - ); -} - -export function digestRegularMetadataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DigestRegularMetadata$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DigestRegularMetadata' from JSON`, - ); -} diff --git a/src/models/components/digesttimedmetadata.ts b/src/models/components/digesttimedmetadata.ts deleted file mode 100644 index 05b25a8c..00000000 --- a/src/models/components/digesttimedmetadata.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - TimedConfig, - TimedConfig$inboundSchema, - TimedConfig$Outbound, - TimedConfig$outboundSchema, -} from "./timedconfig.js"; - -export const DigestTimedMetadataUnit = { - Seconds: "seconds", - Minutes: "minutes", - Hours: "hours", - Days: "days", - Weeks: "weeks", - Months: "months", -} as const; -export type DigestTimedMetadataUnit = ClosedEnum< - typeof DigestTimedMetadataUnit ->; - -export const DigestTimedMetadataType = { - Timed: "timed", -} as const; -export type DigestTimedMetadataType = ClosedEnum< - typeof DigestTimedMetadataType ->; - -export type DigestTimedMetadata = { - amount?: number | undefined; - unit?: DigestTimedMetadataUnit | undefined; - digestKey?: string | undefined; - type: DigestTimedMetadataType; - timed?: TimedConfig | undefined; -}; - -/** @internal */ -export const DigestTimedMetadataUnit$inboundSchema: z.ZodNativeEnum< - typeof DigestTimedMetadataUnit -> = z.nativeEnum(DigestTimedMetadataUnit); - -/** @internal */ -export const DigestTimedMetadataUnit$outboundSchema: z.ZodNativeEnum< - typeof DigestTimedMetadataUnit -> = DigestTimedMetadataUnit$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DigestTimedMetadataUnit$ { - /** @deprecated use `DigestTimedMetadataUnit$inboundSchema` instead. */ - export const inboundSchema = DigestTimedMetadataUnit$inboundSchema; - /** @deprecated use `DigestTimedMetadataUnit$outboundSchema` instead. */ - export const outboundSchema = DigestTimedMetadataUnit$outboundSchema; -} - -/** @internal */ -export const DigestTimedMetadataType$inboundSchema: z.ZodNativeEnum< - typeof DigestTimedMetadataType -> = z.nativeEnum(DigestTimedMetadataType); - -/** @internal */ -export const DigestTimedMetadataType$outboundSchema: z.ZodNativeEnum< - typeof DigestTimedMetadataType -> = DigestTimedMetadataType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DigestTimedMetadataType$ { - /** @deprecated use `DigestTimedMetadataType$inboundSchema` instead. */ - export const inboundSchema = DigestTimedMetadataType$inboundSchema; - /** @deprecated use `DigestTimedMetadataType$outboundSchema` instead. */ - export const outboundSchema = DigestTimedMetadataType$outboundSchema; -} - -/** @internal */ -export const DigestTimedMetadata$inboundSchema: z.ZodType< - DigestTimedMetadata, - z.ZodTypeDef, - unknown -> = z.object({ - amount: z.number().optional(), - unit: DigestTimedMetadataUnit$inboundSchema.optional(), - digestKey: z.string().optional(), - type: DigestTimedMetadataType$inboundSchema, - timed: TimedConfig$inboundSchema.optional(), -}); - -/** @internal */ -export type DigestTimedMetadata$Outbound = { - amount?: number | undefined; - unit?: string | undefined; - digestKey?: string | undefined; - type: string; - timed?: TimedConfig$Outbound | undefined; -}; - -/** @internal */ -export const DigestTimedMetadata$outboundSchema: z.ZodType< - DigestTimedMetadata$Outbound, - z.ZodTypeDef, - DigestTimedMetadata -> = z.object({ - amount: z.number().optional(), - unit: DigestTimedMetadataUnit$outboundSchema.optional(), - digestKey: z.string().optional(), - type: DigestTimedMetadataType$outboundSchema, - timed: TimedConfig$outboundSchema.optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace DigestTimedMetadata$ { - /** @deprecated use `DigestTimedMetadata$inboundSchema` instead. */ - export const inboundSchema = DigestTimedMetadata$inboundSchema; - /** @deprecated use `DigestTimedMetadata$outboundSchema` instead. */ - export const outboundSchema = DigestTimedMetadata$outboundSchema; - /** @deprecated use `DigestTimedMetadata$Outbound` instead. */ - export type Outbound = DigestTimedMetadata$Outbound; -} - -export function digestTimedMetadataToJSON( - digestTimedMetadata: DigestTimedMetadata, -): string { - return JSON.stringify( - DigestTimedMetadata$outboundSchema.parse(digestTimedMetadata), - ); -} - -export function digestTimedMetadataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DigestTimedMetadata$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DigestTimedMetadata' from JSON`, - ); -} diff --git a/src/models/components/emailblock.ts b/src/models/components/emailblock.ts deleted file mode 100644 index 1f59f8be..00000000 --- a/src/models/components/emailblock.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - EmailBlockStyles, - EmailBlockStyles$inboundSchema, - EmailBlockStyles$Outbound, - EmailBlockStyles$outboundSchema, -} from "./emailblockstyles.js"; - -export const EmailBlockType = { - Button: "button", - Text: "text", -} as const; -export type EmailBlockType = ClosedEnum; - -export type EmailBlock = { - type: EmailBlockType; - content: string; - url?: string | undefined; - styles?: EmailBlockStyles | undefined; -}; - -/** @internal */ -export const EmailBlockType$inboundSchema: z.ZodNativeEnum< - typeof EmailBlockType -> = z.nativeEnum(EmailBlockType); - -/** @internal */ -export const EmailBlockType$outboundSchema: z.ZodNativeEnum< - typeof EmailBlockType -> = EmailBlockType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EmailBlockType$ { - /** @deprecated use `EmailBlockType$inboundSchema` instead. */ - export const inboundSchema = EmailBlockType$inboundSchema; - /** @deprecated use `EmailBlockType$outboundSchema` instead. */ - export const outboundSchema = EmailBlockType$outboundSchema; -} - -/** @internal */ -export const EmailBlock$inboundSchema: z.ZodType< - EmailBlock, - z.ZodTypeDef, - unknown -> = z.object({ - type: EmailBlockType$inboundSchema, - content: z.string(), - url: z.string().optional(), - styles: EmailBlockStyles$inboundSchema.optional(), -}); - -/** @internal */ -export type EmailBlock$Outbound = { - type: string; - content: string; - url?: string | undefined; - styles?: EmailBlockStyles$Outbound | undefined; -}; - -/** @internal */ -export const EmailBlock$outboundSchema: z.ZodType< - EmailBlock$Outbound, - z.ZodTypeDef, - EmailBlock -> = z.object({ - type: EmailBlockType$outboundSchema, - content: z.string(), - url: z.string().optional(), - styles: EmailBlockStyles$outboundSchema.optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EmailBlock$ { - /** @deprecated use `EmailBlock$inboundSchema` instead. */ - export const inboundSchema = EmailBlock$inboundSchema; - /** @deprecated use `EmailBlock$outboundSchema` instead. */ - export const outboundSchema = EmailBlock$outboundSchema; - /** @deprecated use `EmailBlock$Outbound` instead. */ - export type Outbound = EmailBlock$Outbound; -} - -export function emailBlockToJSON(emailBlock: EmailBlock): string { - return JSON.stringify(EmailBlock$outboundSchema.parse(emailBlock)); -} - -export function emailBlockFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => EmailBlock$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'EmailBlock' from JSON`, - ); -} diff --git a/src/models/components/emailblockstyles.ts b/src/models/components/emailblockstyles.ts deleted file mode 100644 index 7771a9ba..00000000 --- a/src/models/components/emailblockstyles.ts +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const TextAlign = { - Center: "center", - Left: "left", - Right: "right", -} as const; -export type TextAlign = ClosedEnum; - -export type EmailBlockStyles = { - textAlign: TextAlign; -}; - -/** @internal */ -export const TextAlign$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(TextAlign); - -/** @internal */ -export const TextAlign$outboundSchema: z.ZodNativeEnum = - TextAlign$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TextAlign$ { - /** @deprecated use `TextAlign$inboundSchema` instead. */ - export const inboundSchema = TextAlign$inboundSchema; - /** @deprecated use `TextAlign$outboundSchema` instead. */ - export const outboundSchema = TextAlign$outboundSchema; -} - -/** @internal */ -export const EmailBlockStyles$inboundSchema: z.ZodType< - EmailBlockStyles, - z.ZodTypeDef, - unknown -> = z.object({ - textAlign: TextAlign$inboundSchema, -}); - -/** @internal */ -export type EmailBlockStyles$Outbound = { - textAlign: string; -}; - -/** @internal */ -export const EmailBlockStyles$outboundSchema: z.ZodType< - EmailBlockStyles$Outbound, - z.ZodTypeDef, - EmailBlockStyles -> = z.object({ - textAlign: TextAlign$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EmailBlockStyles$ { - /** @deprecated use `EmailBlockStyles$inboundSchema` instead. */ - export const inboundSchema = EmailBlockStyles$inboundSchema; - /** @deprecated use `EmailBlockStyles$outboundSchema` instead. */ - export const outboundSchema = EmailBlockStyles$outboundSchema; - /** @deprecated use `EmailBlockStyles$Outbound` instead. */ - export type Outbound = EmailBlockStyles$Outbound; -} - -export function emailBlockStylesToJSON( - emailBlockStyles: EmailBlockStyles, -): string { - return JSON.stringify( - EmailBlockStyles$outboundSchema.parse(emailBlockStyles), - ); -} - -export function emailBlockStylesFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => EmailBlockStyles$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'EmailBlockStyles' from JSON`, - ); -} diff --git a/src/models/components/environmentresponsedto.ts b/src/models/components/environmentresponsedto.ts deleted file mode 100644 index 34a022ea..00000000 --- a/src/models/components/environmentresponsedto.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EnvironmentResponseDto = { - id?: string | undefined; - name: string; - organizationId: string; - identifier: string; - apiKeys?: Array | undefined; - parentId: string; - slug?: string | undefined; -}; - -/** @internal */ -export const EnvironmentResponseDto$inboundSchema: z.ZodType< - EnvironmentResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - name: z.string(), - _organizationId: z.string(), - identifier: z.string(), - apiKeys: z.array(z.string()).optional(), - _parentId: z.string(), - slug: z.string().optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_organizationId": "organizationId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type EnvironmentResponseDto$Outbound = { - _id?: string | undefined; - name: string; - _organizationId: string; - identifier: string; - apiKeys?: Array | undefined; - _parentId: string; - slug?: string | undefined; -}; - -/** @internal */ -export const EnvironmentResponseDto$outboundSchema: z.ZodType< - EnvironmentResponseDto$Outbound, - z.ZodTypeDef, - EnvironmentResponseDto -> = z.object({ - id: z.string().optional(), - name: z.string(), - organizationId: z.string(), - identifier: z.string(), - apiKeys: z.array(z.string()).optional(), - parentId: z.string(), - slug: z.string().optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - organizationId: "_organizationId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EnvironmentResponseDto$ { - /** @deprecated use `EnvironmentResponseDto$inboundSchema` instead. */ - export const inboundSchema = EnvironmentResponseDto$inboundSchema; - /** @deprecated use `EnvironmentResponseDto$outboundSchema` instead. */ - export const outboundSchema = EnvironmentResponseDto$outboundSchema; - /** @deprecated use `EnvironmentResponseDto$Outbound` instead. */ - export type Outbound = EnvironmentResponseDto$Outbound; -} - -export function environmentResponseDtoToJSON( - environmentResponseDto: EnvironmentResponseDto, -): string { - return JSON.stringify( - EnvironmentResponseDto$outboundSchema.parse(environmentResponseDto), - ); -} - -export function environmentResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => EnvironmentResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'EnvironmentResponseDto' from JSON`, - ); -} diff --git a/src/models/components/executiondetailsresponsedto.ts b/src/models/components/executiondetailsresponsedto.ts deleted file mode 100644 index 4f9059c9..00000000 --- a/src/models/components/executiondetailsresponsedto.ts +++ /dev/null @@ -1,244 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const Channel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", - Digest: "digest", - Trigger: "trigger", - Delay: "delay", - Custom: "custom", -} as const; -export type Channel = ClosedEnum; - -export const Source = { - Credentials: "Credentials", - Internal: "Internal", - Payload: "Payload", - Webhook: "Webhook", -} as const; -export type Source = ClosedEnum; - -export const Status = { - Success: "Success", - Warning: "Warning", - Failed: "Failed", - Pending: "Pending", - Queued: "Queued", - ReadConfirmation: "ReadConfirmation", -} as const; -export type Status = ClosedEnum; - -export type ExecutionDetailsResponseDto = { - id?: string | undefined; - organizationId: string; - jobId: string; - environmentId: string; - notificationId: string; - notificationTemplateId: string; - subscriberId: string; - messageId?: string | undefined; - providerId?: string | undefined; - transactionId: string; - channel: Channel; - detail: string; - source: Source; - status: Status; - isTest: boolean; - isRetry: boolean; - createdAt?: string | undefined; -}; - -/** @internal */ -export const Channel$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Channel); - -/** @internal */ -export const Channel$outboundSchema: z.ZodNativeEnum = - Channel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Channel$ { - /** @deprecated use `Channel$inboundSchema` instead. */ - export const inboundSchema = Channel$inboundSchema; - /** @deprecated use `Channel$outboundSchema` instead. */ - export const outboundSchema = Channel$outboundSchema; -} - -/** @internal */ -export const Source$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Source); - -/** @internal */ -export const Source$outboundSchema: z.ZodNativeEnum = - Source$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Source$ { - /** @deprecated use `Source$inboundSchema` instead. */ - export const inboundSchema = Source$inboundSchema; - /** @deprecated use `Source$outboundSchema` instead. */ - export const outboundSchema = Source$outboundSchema; -} - -/** @internal */ -export const Status$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Status); - -/** @internal */ -export const Status$outboundSchema: z.ZodNativeEnum = - Status$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Status$ { - /** @deprecated use `Status$inboundSchema` instead. */ - export const inboundSchema = Status$inboundSchema; - /** @deprecated use `Status$outboundSchema` instead. */ - export const outboundSchema = Status$outboundSchema; -} - -/** @internal */ -export const ExecutionDetailsResponseDto$inboundSchema: z.ZodType< - ExecutionDetailsResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - _organizationId: z.string(), - _jobId: z.string(), - _environmentId: z.string(), - _notificationId: z.string(), - _notificationTemplateId: z.string(), - _subscriberId: z.string(), - _messageId: z.string().optional(), - providerId: z.string().optional(), - transactionId: z.string(), - channel: Channel$inboundSchema, - detail: z.string(), - source: Source$inboundSchema, - status: Status$inboundSchema, - isTest: z.boolean(), - isRetry: z.boolean(), - createdAt: z.string().optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_organizationId": "organizationId", - "_jobId": "jobId", - "_environmentId": "environmentId", - "_notificationId": "notificationId", - "_notificationTemplateId": "notificationTemplateId", - "_subscriberId": "subscriberId", - "_messageId": "messageId", - }); -}); - -/** @internal */ -export type ExecutionDetailsResponseDto$Outbound = { - _id?: string | undefined; - _organizationId: string; - _jobId: string; - _environmentId: string; - _notificationId: string; - _notificationTemplateId: string; - _subscriberId: string; - _messageId?: string | undefined; - providerId?: string | undefined; - transactionId: string; - channel: string; - detail: string; - source: string; - status: string; - isTest: boolean; - isRetry: boolean; - createdAt?: string | undefined; -}; - -/** @internal */ -export const ExecutionDetailsResponseDto$outboundSchema: z.ZodType< - ExecutionDetailsResponseDto$Outbound, - z.ZodTypeDef, - ExecutionDetailsResponseDto -> = z.object({ - id: z.string().optional(), - organizationId: z.string(), - jobId: z.string(), - environmentId: z.string(), - notificationId: z.string(), - notificationTemplateId: z.string(), - subscriberId: z.string(), - messageId: z.string().optional(), - providerId: z.string().optional(), - transactionId: z.string(), - channel: Channel$outboundSchema, - detail: z.string(), - source: Source$outboundSchema, - status: Status$outboundSchema, - isTest: z.boolean(), - isRetry: z.boolean(), - createdAt: z.string().optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - organizationId: "_organizationId", - jobId: "_jobId", - environmentId: "_environmentId", - notificationId: "_notificationId", - notificationTemplateId: "_notificationTemplateId", - subscriberId: "_subscriberId", - messageId: "_messageId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ExecutionDetailsResponseDto$ { - /** @deprecated use `ExecutionDetailsResponseDto$inboundSchema` instead. */ - export const inboundSchema = ExecutionDetailsResponseDto$inboundSchema; - /** @deprecated use `ExecutionDetailsResponseDto$outboundSchema` instead. */ - export const outboundSchema = ExecutionDetailsResponseDto$outboundSchema; - /** @deprecated use `ExecutionDetailsResponseDto$Outbound` instead. */ - export type Outbound = ExecutionDetailsResponseDto$Outbound; -} - -export function executionDetailsResponseDtoToJSON( - executionDetailsResponseDto: ExecutionDetailsResponseDto, -): string { - return JSON.stringify( - ExecutionDetailsResponseDto$outboundSchema.parse( - executionDetailsResponseDto, - ), - ); -} - -export function executionDetailsResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ExecutionDetailsResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ExecutionDetailsResponseDto' from JSON`, - ); -} diff --git a/src/models/components/feedresponsedto.ts b/src/models/components/feedresponsedto.ts deleted file mode 100644 index dd231d97..00000000 --- a/src/models/components/feedresponsedto.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type FeedResponseDto = { - totalCount?: number | undefined; - hasMore: boolean; - data: Array; - pageSize: number; - page: number; -}; - -/** @internal */ -export const FeedResponseDto$inboundSchema: z.ZodType< - FeedResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - totalCount: z.number().optional(), - hasMore: z.boolean(), - data: z.array(z.string()), - pageSize: z.number(), - page: z.number(), -}); - -/** @internal */ -export type FeedResponseDto$Outbound = { - totalCount?: number | undefined; - hasMore: boolean; - data: Array; - pageSize: number; - page: number; -}; - -/** @internal */ -export const FeedResponseDto$outboundSchema: z.ZodType< - FeedResponseDto$Outbound, - z.ZodTypeDef, - FeedResponseDto -> = z.object({ - totalCount: z.number().optional(), - hasMore: z.boolean(), - data: z.array(z.string()), - pageSize: z.number(), - page: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace FeedResponseDto$ { - /** @deprecated use `FeedResponseDto$inboundSchema` instead. */ - export const inboundSchema = FeedResponseDto$inboundSchema; - /** @deprecated use `FeedResponseDto$outboundSchema` instead. */ - export const outboundSchema = FeedResponseDto$outboundSchema; - /** @deprecated use `FeedResponseDto$Outbound` instead. */ - export type Outbound = FeedResponseDto$Outbound; -} - -export function feedResponseDtoToJSON( - feedResponseDto: FeedResponseDto, -): string { - return JSON.stringify(FeedResponseDto$outboundSchema.parse(feedResponseDto)); -} - -export function feedResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => FeedResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'FeedResponseDto' from JSON`, - ); -} diff --git a/src/models/components/fieldfilterpart.ts b/src/models/components/fieldfilterpart.ts deleted file mode 100644 index 80796872..00000000 --- a/src/models/components/fieldfilterpart.ts +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const Operator = { - Larger: "LARGER", - Smaller: "SMALLER", - LargerEqual: "LARGER_EQUAL", - SmallerEqual: "SMALLER_EQUAL", - Equal: "EQUAL", - NotEqual: "NOT_EQUAL", - AllIn: "ALL_IN", - AnyIn: "ANY_IN", - NotIn: "NOT_IN", - Between: "BETWEEN", - NotBetween: "NOT_BETWEEN", - Like: "LIKE", - NotLike: "NOT_LIKE", - In: "IN", -} as const; -export type Operator = ClosedEnum; - -export const On = { - Subscriber: "subscriber", - Payload: "payload", -} as const; -export type On = ClosedEnum; - -export type FieldFilterPart = { - field: string; - value: string; - operator: Operator; - on: On; -}; - -/** @internal */ -export const Operator$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Operator); - -/** @internal */ -export const Operator$outboundSchema: z.ZodNativeEnum = - Operator$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Operator$ { - /** @deprecated use `Operator$inboundSchema` instead. */ - export const inboundSchema = Operator$inboundSchema; - /** @deprecated use `Operator$outboundSchema` instead. */ - export const outboundSchema = Operator$outboundSchema; -} - -/** @internal */ -export const On$inboundSchema: z.ZodNativeEnum = z.nativeEnum(On); - -/** @internal */ -export const On$outboundSchema: z.ZodNativeEnum = On$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace On$ { - /** @deprecated use `On$inboundSchema` instead. */ - export const inboundSchema = On$inboundSchema; - /** @deprecated use `On$outboundSchema` instead. */ - export const outboundSchema = On$outboundSchema; -} - -/** @internal */ -export const FieldFilterPart$inboundSchema: z.ZodType< - FieldFilterPart, - z.ZodTypeDef, - unknown -> = z.object({ - field: z.string(), - value: z.string(), - operator: Operator$inboundSchema, - on: On$inboundSchema, -}); - -/** @internal */ -export type FieldFilterPart$Outbound = { - field: string; - value: string; - operator: string; - on: string; -}; - -/** @internal */ -export const FieldFilterPart$outboundSchema: z.ZodType< - FieldFilterPart$Outbound, - z.ZodTypeDef, - FieldFilterPart -> = z.object({ - field: z.string(), - value: z.string(), - operator: Operator$outboundSchema, - on: On$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace FieldFilterPart$ { - /** @deprecated use `FieldFilterPart$inboundSchema` instead. */ - export const inboundSchema = FieldFilterPart$inboundSchema; - /** @deprecated use `FieldFilterPart$outboundSchema` instead. */ - export const outboundSchema = FieldFilterPart$outboundSchema; - /** @deprecated use `FieldFilterPart$Outbound` instead. */ - export type Outbound = FieldFilterPart$Outbound; -} - -export function fieldFilterPartToJSON( - fieldFilterPart: FieldFilterPart, -): string { - return JSON.stringify(FieldFilterPart$outboundSchema.parse(fieldFilterPart)); -} - -export function fieldFilterPartFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => FieldFilterPart$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'FieldFilterPart' from JSON`, - ); -} diff --git a/src/models/components/filtertopicsresponsedto.ts b/src/models/components/filtertopicsresponsedto.ts deleted file mode 100644 index ca44b57f..00000000 --- a/src/models/components/filtertopicsresponsedto.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - TopicDto, - TopicDto$inboundSchema, - TopicDto$Outbound, - TopicDto$outboundSchema, -} from "./topicdto.js"; - -export type FilterTopicsResponseDto = { - data: Array; - page: number; - pageSize: number; - totalCount: number; -}; - -/** @internal */ -export const FilterTopicsResponseDto$inboundSchema: z.ZodType< - FilterTopicsResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.array(TopicDto$inboundSchema), - page: z.number(), - pageSize: z.number(), - totalCount: z.number(), -}); - -/** @internal */ -export type FilterTopicsResponseDto$Outbound = { - data: Array; - page: number; - pageSize: number; - totalCount: number; -}; - -/** @internal */ -export const FilterTopicsResponseDto$outboundSchema: z.ZodType< - FilterTopicsResponseDto$Outbound, - z.ZodTypeDef, - FilterTopicsResponseDto -> = z.object({ - data: z.array(TopicDto$outboundSchema), - page: z.number(), - pageSize: z.number(), - totalCount: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace FilterTopicsResponseDto$ { - /** @deprecated use `FilterTopicsResponseDto$inboundSchema` instead. */ - export const inboundSchema = FilterTopicsResponseDto$inboundSchema; - /** @deprecated use `FilterTopicsResponseDto$outboundSchema` instead. */ - export const outboundSchema = FilterTopicsResponseDto$outboundSchema; - /** @deprecated use `FilterTopicsResponseDto$Outbound` instead. */ - export type Outbound = FilterTopicsResponseDto$Outbound; -} - -export function filterTopicsResponseDtoToJSON( - filterTopicsResponseDto: FilterTopicsResponseDto, -): string { - return JSON.stringify( - FilterTopicsResponseDto$outboundSchema.parse(filterTopicsResponseDto), - ); -} - -export function filterTopicsResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => FilterTopicsResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'FilterTopicsResponseDto' from JSON`, - ); -} diff --git a/src/models/components/getlayoutresponsedto.ts b/src/models/components/getlayoutresponsedto.ts deleted file mode 100644 index a4095b13..00000000 --- a/src/models/components/getlayoutresponsedto.ts +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { ClosedEnum } from "../../types/enums.js"; - -export const GetLayoutResponseDtoChannel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type GetLayoutResponseDtoChannel = ClosedEnum< - typeof GetLayoutResponseDtoChannel ->; - -export type GetLayoutResponseDto = { - creatorId: string; - environmentId: string; - id?: string | undefined; - organizationId: string; - parentId?: string | undefined; - channel: GetLayoutResponseDtoChannel; - content: string; - contentType: string; - createdAt?: string | undefined; - description?: string | undefined; - identifier: string; - isDefault: boolean; - isDeleted: boolean; - name: string; - updatedAt?: string | undefined; - variables?: Array | undefined; -}; - -/** @internal */ -export const GetLayoutResponseDtoChannel$inboundSchema: z.ZodNativeEnum< - typeof GetLayoutResponseDtoChannel -> = z.nativeEnum(GetLayoutResponseDtoChannel); - -/** @internal */ -export const GetLayoutResponseDtoChannel$outboundSchema: z.ZodNativeEnum< - typeof GetLayoutResponseDtoChannel -> = GetLayoutResponseDtoChannel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace GetLayoutResponseDtoChannel$ { - /** @deprecated use `GetLayoutResponseDtoChannel$inboundSchema` instead. */ - export const inboundSchema = GetLayoutResponseDtoChannel$inboundSchema; - /** @deprecated use `GetLayoutResponseDtoChannel$outboundSchema` instead. */ - export const outboundSchema = GetLayoutResponseDtoChannel$outboundSchema; -} - -/** @internal */ -export const GetLayoutResponseDto$inboundSchema: z.ZodType< - GetLayoutResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _creatorId: z.string(), - _environmentId: z.string(), - _id: z.string().optional(), - _organizationId: z.string(), - _parentId: z.string().optional(), - channel: GetLayoutResponseDtoChannel$inboundSchema, - content: z.string(), - contentType: z.string(), - createdAt: z.string().optional(), - description: z.string().optional(), - identifier: z.string(), - isDefault: z.boolean(), - isDeleted: z.boolean(), - name: z.string(), - updatedAt: z.string().optional(), - variables: z.array(z.string()).optional(), -}).transform((v) => { - return remap$(v, { - "_creatorId": "creatorId", - "_environmentId": "environmentId", - "_id": "id", - "_organizationId": "organizationId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type GetLayoutResponseDto$Outbound = { - _creatorId: string; - _environmentId: string; - _id?: string | undefined; - _organizationId: string; - _parentId?: string | undefined; - channel: string; - content: string; - contentType: string; - createdAt?: string | undefined; - description?: string | undefined; - identifier: string; - isDefault: boolean; - isDeleted: boolean; - name: string; - updatedAt?: string | undefined; - variables?: Array | undefined; -}; - -/** @internal */ -export const GetLayoutResponseDto$outboundSchema: z.ZodType< - GetLayoutResponseDto$Outbound, - z.ZodTypeDef, - GetLayoutResponseDto -> = z.object({ - creatorId: z.string(), - environmentId: z.string(), - id: z.string().optional(), - organizationId: z.string(), - parentId: z.string().optional(), - channel: GetLayoutResponseDtoChannel$outboundSchema, - content: z.string(), - contentType: z.string(), - createdAt: z.string().optional(), - description: z.string().optional(), - identifier: z.string(), - isDefault: z.boolean(), - isDeleted: z.boolean(), - name: z.string(), - updatedAt: z.string().optional(), - variables: z.array(z.string()).optional(), -}).transform((v) => { - return remap$(v, { - creatorId: "_creatorId", - environmentId: "_environmentId", - id: "_id", - organizationId: "_organizationId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace GetLayoutResponseDto$ { - /** @deprecated use `GetLayoutResponseDto$inboundSchema` instead. */ - export const inboundSchema = GetLayoutResponseDto$inboundSchema; - /** @deprecated use `GetLayoutResponseDto$outboundSchema` instead. */ - export const outboundSchema = GetLayoutResponseDto$outboundSchema; - /** @deprecated use `GetLayoutResponseDto$Outbound` instead. */ - export type Outbound = GetLayoutResponseDto$Outbound; -} diff --git a/src/models/components/getsubscriberpreferencesresponsedto.ts b/src/models/components/getsubscriberpreferencesresponsedto.ts deleted file mode 100644 index 23eaa71f..00000000 --- a/src/models/components/getsubscriberpreferencesresponsedto.ts +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - Preference, - Preference$inboundSchema, - Preference$Outbound, - Preference$outboundSchema, -} from "./preference.js"; -import { - TemplateResponse, - TemplateResponse$inboundSchema, - TemplateResponse$Outbound, - TemplateResponse$outboundSchema, -} from "./templateresponse.js"; - -export type GetSubscriberPreferencesResponseDto = { - /** - * The workflow information and if it is critical or not - */ - template?: TemplateResponse | undefined; - /** - * The preferences of the subscriber regarding the related workflow - */ - preference: Preference; -}; - -/** @internal */ -export const GetSubscriberPreferencesResponseDto$inboundSchema: z.ZodType< - GetSubscriberPreferencesResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - template: TemplateResponse$inboundSchema.optional(), - preference: Preference$inboundSchema, -}); - -/** @internal */ -export type GetSubscriberPreferencesResponseDto$Outbound = { - template?: TemplateResponse$Outbound | undefined; - preference: Preference$Outbound; -}; - -/** @internal */ -export const GetSubscriberPreferencesResponseDto$outboundSchema: z.ZodType< - GetSubscriberPreferencesResponseDto$Outbound, - z.ZodTypeDef, - GetSubscriberPreferencesResponseDto -> = z.object({ - template: TemplateResponse$outboundSchema.optional(), - preference: Preference$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace GetSubscriberPreferencesResponseDto$ { - /** @deprecated use `GetSubscriberPreferencesResponseDto$inboundSchema` instead. */ - export const inboundSchema = - GetSubscriberPreferencesResponseDto$inboundSchema; - /** @deprecated use `GetSubscriberPreferencesResponseDto$outboundSchema` instead. */ - export const outboundSchema = - GetSubscriberPreferencesResponseDto$outboundSchema; - /** @deprecated use `GetSubscriberPreferencesResponseDto$Outbound` instead. */ - export type Outbound = GetSubscriberPreferencesResponseDto$Outbound; -} - -export function getSubscriberPreferencesResponseDtoToJSON( - getSubscriberPreferencesResponseDto: GetSubscriberPreferencesResponseDto, -): string { - return JSON.stringify( - GetSubscriberPreferencesResponseDto$outboundSchema.parse( - getSubscriberPreferencesResponseDto, - ), - ); -} - -export function getSubscriberPreferencesResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - GetSubscriberPreferencesResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetSubscriberPreferencesResponseDto' from JSON`, - ); -} diff --git a/src/models/components/gettenantresponsedto.ts b/src/models/components/gettenantresponsedto.ts deleted file mode 100644 index 8cb45426..00000000 --- a/src/models/components/gettenantresponsedto.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; - -export type GetTenantResponseDtoData = {}; - -export type GetTenantResponseDto = { - environmentId: string; - id: string; - createdAt: string; - data?: GetTenantResponseDtoData | undefined; - identifier: string; - name?: string | undefined; - updatedAt: string; -}; - -/** @internal */ -export const GetTenantResponseDtoData$inboundSchema: z.ZodType< - GetTenantResponseDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type GetTenantResponseDtoData$Outbound = {}; - -/** @internal */ -export const GetTenantResponseDtoData$outboundSchema: z.ZodType< - GetTenantResponseDtoData$Outbound, - z.ZodTypeDef, - GetTenantResponseDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace GetTenantResponseDtoData$ { - /** @deprecated use `GetTenantResponseDtoData$inboundSchema` instead. */ - export const inboundSchema = GetTenantResponseDtoData$inboundSchema; - /** @deprecated use `GetTenantResponseDtoData$outboundSchema` instead. */ - export const outboundSchema = GetTenantResponseDtoData$outboundSchema; - /** @deprecated use `GetTenantResponseDtoData$Outbound` instead. */ - export type Outbound = GetTenantResponseDtoData$Outbound; -} - -/** @internal */ -export const GetTenantResponseDto$inboundSchema: z.ZodType< - GetTenantResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _environmentId: z.string(), - _id: z.string(), - createdAt: z.string(), - data: z.lazy(() => GetTenantResponseDtoData$inboundSchema).optional(), - identifier: z.string(), - name: z.string().optional(), - updatedAt: z.string(), -}).transform((v) => { - return remap$(v, { - "_environmentId": "environmentId", - "_id": "id", - }); -}); - -/** @internal */ -export type GetTenantResponseDto$Outbound = { - _environmentId: string; - _id: string; - createdAt: string; - data?: GetTenantResponseDtoData$Outbound | undefined; - identifier: string; - name?: string | undefined; - updatedAt: string; -}; - -/** @internal */ -export const GetTenantResponseDto$outboundSchema: z.ZodType< - GetTenantResponseDto$Outbound, - z.ZodTypeDef, - GetTenantResponseDto -> = z.object({ - environmentId: z.string(), - id: z.string(), - createdAt: z.string(), - data: z.lazy(() => GetTenantResponseDtoData$outboundSchema).optional(), - identifier: z.string(), - name: z.string().optional(), - updatedAt: z.string(), -}).transform((v) => { - return remap$(v, { - environmentId: "_environmentId", - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace GetTenantResponseDto$ { - /** @deprecated use `GetTenantResponseDto$inboundSchema` instead. */ - export const inboundSchema = GetTenantResponseDto$inboundSchema; - /** @deprecated use `GetTenantResponseDto$outboundSchema` instead. */ - export const outboundSchema = GetTenantResponseDto$outboundSchema; - /** @deprecated use `GetTenantResponseDto$Outbound` instead. */ - export type Outbound = GetTenantResponseDto$Outbound; -} diff --git a/src/models/components/gettopicresponsedto.ts b/src/models/components/gettopicresponsedto.ts deleted file mode 100644 index d99b61c4..00000000 --- a/src/models/components/gettopicresponsedto.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type GetTopicResponseDto = { - id?: string | undefined; - organizationId: string; - environmentId: string; - key: string; - name: string; - subscribers: Array; -}; - -/** @internal */ -export const GetTopicResponseDto$inboundSchema: z.ZodType< - GetTopicResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - _organizationId: z.string(), - _environmentId: z.string(), - key: z.string(), - name: z.string(), - subscribers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_organizationId": "organizationId", - "_environmentId": "environmentId", - }); -}); - -/** @internal */ -export type GetTopicResponseDto$Outbound = { - _id?: string | undefined; - _organizationId: string; - _environmentId: string; - key: string; - name: string; - subscribers: Array; -}; - -/** @internal */ -export const GetTopicResponseDto$outboundSchema: z.ZodType< - GetTopicResponseDto$Outbound, - z.ZodTypeDef, - GetTopicResponseDto -> = z.object({ - id: z.string().optional(), - organizationId: z.string(), - environmentId: z.string(), - key: z.string(), - name: z.string(), - subscribers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - id: "_id", - organizationId: "_organizationId", - environmentId: "_environmentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace GetTopicResponseDto$ { - /** @deprecated use `GetTopicResponseDto$inboundSchema` instead. */ - export const inboundSchema = GetTopicResponseDto$inboundSchema; - /** @deprecated use `GetTopicResponseDto$outboundSchema` instead. */ - export const outboundSchema = GetTopicResponseDto$outboundSchema; - /** @deprecated use `GetTopicResponseDto$Outbound` instead. */ - export type Outbound = GetTopicResponseDto$Outbound; -} - -export function getTopicResponseDtoToJSON( - getTopicResponseDto: GetTopicResponseDto, -): string { - return JSON.stringify( - GetTopicResponseDto$outboundSchema.parse(getTopicResponseDto), - ); -} - -export function getTopicResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => GetTopicResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetTopicResponseDto' from JSON`, - ); -} diff --git a/src/models/components/index.ts b/src/models/components/index.ts deleted file mode 100644 index 9d1489e2..00000000 --- a/src/models/components/index.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export * from "./activitiesresponsedto.js"; -export * from "./activitygraphstatesresponse.js"; -export * from "./activitynotificationresponsedto.js"; -export * from "./activitynotificationsubscriberresponsedto.js"; -export * from "./activitynotificationtemplateresponsedto.js"; -export * from "./activitystatsresponsedto.js"; -export * from "./addsubscribersrequestdto.js"; -export * from "./apikey.js"; -export * from "./bulksubscribercreatedto.js"; -export * from "./bulktriggereventdto.js"; -export * from "./channelcredentials.js"; -export * from "./channelpreference.js"; -export * from "./channelsettings.js"; -export * from "./createintegrationrequestdto.js"; -export * from "./createnotificationgrouprequestdto.js"; -export * from "./createsubscriberrequestdto.js"; -export * from "./createtopicrequestdto.js"; -export * from "./createtopicresponsedto.js"; -export * from "./credentialsdto.js"; -export * from "./databooleandto.js"; -export * from "./delayregularmetadata.js"; -export * from "./delayscheduledmetadata.js"; -export * from "./deletemessageresponsedto.js"; -export * from "./deletenotificationgroupresponsedto.js"; -export * from "./deletesubscriberresponsedto.js"; -export * from "./digestregularmetadata.js"; -export * from "./digesttimedmetadata.js"; -export * from "./emailblock.js"; -export * from "./emailblockstyles.js"; -export * from "./environmentresponsedto.js"; -export * from "./executiondetailsresponsedto.js"; -export * from "./feedresponsedto.js"; -export * from "./fieldfilterpart.js"; -export * from "./filtertopicsresponsedto.js"; -export * from "./getsubscriberpreferencesresponsedto.js"; -export * from "./gettopicresponsedto.js"; -export * from "./integrationresponsedto.js"; -export * from "./markallmessageasrequestdto.js"; -export * from "./markmessageactionasseendto.js"; -export * from "./messageaction.js"; -export * from "./messageactionresult.js"; -export * from "./messagebutton.js"; -export * from "./messagecta.js"; -export * from "./messagectadata.js"; -export * from "./messageentity.js"; -export * from "./messagemarkasrequestdto.js"; -export * from "./messageresponsedto.js"; -export * from "./messagetemplate.js"; -export * from "./notificationgroup.js"; -export * from "./notificationgroupresponsedto.js"; -export * from "./notificationstep.js"; -export * from "./notificationstepvariant.js"; -export * from "./notificationtrigger.js"; -export * from "./notificationtriggervariable.js"; -export * from "./preference.js"; -export * from "./preferencechannels.js"; -export * from "./removesubscribersrequestdto.js"; -export * from "./renametopicrequestdto.js"; -export * from "./renametopicresponsedto.js"; -export * from "./security.js"; -export * from "./stepfilter.js"; -export * from "./subscriberpayloaddto.js"; -export * from "./subscriberresponsedto.js"; -export * from "./templateresponse.js"; -export * from "./tenantpayloaddto.js"; -export * from "./timedconfig.js"; -export * from "./topicdto.js"; -export * from "./topicpayloaddto.js"; -export * from "./topicsubscriberdto.js"; -export * from "./triggereventrequestdto.js"; -export * from "./triggereventresponsedto.js"; -export * from "./triggereventtoallrequestdto.js"; -export * from "./unseencountresponse.js"; -export * from "./updateintegrationrequestdto.js"; -export * from "./updatesubscriberchannelrequestdto.js"; -export * from "./updatesubscriberglobalpreferencesrequestdto.js"; -export * from "./updatesubscriberonlineflagrequestdto.js"; -export * from "./updatesubscriberpreferencerequestdto.js"; -export * from "./updatesubscriberpreferenceresponsedto.js"; -export * from "./updatesubscriberrequestdto.js"; -export * from "./workflowresponse.js"; diff --git a/src/models/components/integrationresponsedto.ts b/src/models/components/integrationresponsedto.ts deleted file mode 100644 index 32f14192..00000000 --- a/src/models/components/integrationresponsedto.ts +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - CredentialsDto, - CredentialsDto$inboundSchema, - CredentialsDto$Outbound, - CredentialsDto$outboundSchema, -} from "./credentialsdto.js"; -import { - StepFilter, - StepFilter$inboundSchema, - StepFilter$Outbound, - StepFilter$outboundSchema, -} from "./stepfilter.js"; - -export const IntegrationResponseDtoChannel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type IntegrationResponseDtoChannel = ClosedEnum< - typeof IntegrationResponseDtoChannel ->; - -export type IntegrationResponseDto = { - id?: string | undefined; - environmentId: string; - organizationId: string; - name: string; - identifier: string; - providerId: string; - channel: IntegrationResponseDtoChannel; - credentials: CredentialsDto; - active: boolean; - deleted: boolean; - deletedAt: string; - deletedBy: string; - primary: boolean; - conditions?: Array | undefined; -}; - -/** @internal */ -export const IntegrationResponseDtoChannel$inboundSchema: z.ZodNativeEnum< - typeof IntegrationResponseDtoChannel -> = z.nativeEnum(IntegrationResponseDtoChannel); - -/** @internal */ -export const IntegrationResponseDtoChannel$outboundSchema: z.ZodNativeEnum< - typeof IntegrationResponseDtoChannel -> = IntegrationResponseDtoChannel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationResponseDtoChannel$ { - /** @deprecated use `IntegrationResponseDtoChannel$inboundSchema` instead. */ - export const inboundSchema = IntegrationResponseDtoChannel$inboundSchema; - /** @deprecated use `IntegrationResponseDtoChannel$outboundSchema` instead. */ - export const outboundSchema = IntegrationResponseDtoChannel$outboundSchema; -} - -/** @internal */ -export const IntegrationResponseDto$inboundSchema: z.ZodType< - IntegrationResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - _environmentId: z.string(), - _organizationId: z.string(), - name: z.string(), - identifier: z.string(), - providerId: z.string(), - channel: IntegrationResponseDtoChannel$inboundSchema, - credentials: CredentialsDto$inboundSchema, - active: z.boolean(), - deleted: z.boolean(), - deletedAt: z.string(), - deletedBy: z.string(), - primary: z.boolean(), - conditions: z.array(StepFilter$inboundSchema).optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_environmentId": "environmentId", - "_organizationId": "organizationId", - }); -}); - -/** @internal */ -export type IntegrationResponseDto$Outbound = { - _id?: string | undefined; - _environmentId: string; - _organizationId: string; - name: string; - identifier: string; - providerId: string; - channel: string; - credentials: CredentialsDto$Outbound; - active: boolean; - deleted: boolean; - deletedAt: string; - deletedBy: string; - primary: boolean; - conditions?: Array | undefined; -}; - -/** @internal */ -export const IntegrationResponseDto$outboundSchema: z.ZodType< - IntegrationResponseDto$Outbound, - z.ZodTypeDef, - IntegrationResponseDto -> = z.object({ - id: z.string().optional(), - environmentId: z.string(), - organizationId: z.string(), - name: z.string(), - identifier: z.string(), - providerId: z.string(), - channel: IntegrationResponseDtoChannel$outboundSchema, - credentials: CredentialsDto$outboundSchema, - active: z.boolean(), - deleted: z.boolean(), - deletedAt: z.string(), - deletedBy: z.string(), - primary: z.boolean(), - conditions: z.array(StepFilter$outboundSchema).optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - environmentId: "_environmentId", - organizationId: "_organizationId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationResponseDto$ { - /** @deprecated use `IntegrationResponseDto$inboundSchema` instead. */ - export const inboundSchema = IntegrationResponseDto$inboundSchema; - /** @deprecated use `IntegrationResponseDto$outboundSchema` instead. */ - export const outboundSchema = IntegrationResponseDto$outboundSchema; - /** @deprecated use `IntegrationResponseDto$Outbound` instead. */ - export type Outbound = IntegrationResponseDto$Outbound; -} - -export function integrationResponseDtoToJSON( - integrationResponseDto: IntegrationResponseDto, -): string { - return JSON.stringify( - IntegrationResponseDto$outboundSchema.parse(integrationResponseDto), - ); -} - -export function integrationResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => IntegrationResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'IntegrationResponseDto' from JSON`, - ); -} diff --git a/src/models/components/markallmessageasrequestdto.ts b/src/models/components/markallmessageasrequestdto.ts deleted file mode 100644 index 1258d034..00000000 --- a/src/models/components/markallmessageasrequestdto.ts +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * Optional feed identifier or array of feed identifiers - */ -export type FeedIdentifier = string | Array; - -/** - * Mark all subscriber messages as read, unread, seen or unseen - */ -export const MarkAllMessageAsRequestDtoMarkAs = { - Read: "read", - Seen: "seen", - Unread: "unread", - Unseen: "unseen", -} as const; -/** - * Mark all subscriber messages as read, unread, seen or unseen - */ -export type MarkAllMessageAsRequestDtoMarkAs = ClosedEnum< - typeof MarkAllMessageAsRequestDtoMarkAs ->; - -export type MarkAllMessageAsRequestDto = { - /** - * Optional feed identifier or array of feed identifiers - */ - feedIdentifier?: string | Array | undefined; - /** - * Mark all subscriber messages as read, unread, seen or unseen - */ - markAs: MarkAllMessageAsRequestDtoMarkAs; -}; - -/** @internal */ -export const FeedIdentifier$inboundSchema: z.ZodType< - FeedIdentifier, - z.ZodTypeDef, - unknown -> = z.union([z.string(), z.array(z.string())]); - -/** @internal */ -export type FeedIdentifier$Outbound = string | Array; - -/** @internal */ -export const FeedIdentifier$outboundSchema: z.ZodType< - FeedIdentifier$Outbound, - z.ZodTypeDef, - FeedIdentifier -> = z.union([z.string(), z.array(z.string())]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace FeedIdentifier$ { - /** @deprecated use `FeedIdentifier$inboundSchema` instead. */ - export const inboundSchema = FeedIdentifier$inboundSchema; - /** @deprecated use `FeedIdentifier$outboundSchema` instead. */ - export const outboundSchema = FeedIdentifier$outboundSchema; - /** @deprecated use `FeedIdentifier$Outbound` instead. */ - export type Outbound = FeedIdentifier$Outbound; -} - -export function feedIdentifierToJSON(feedIdentifier: FeedIdentifier): string { - return JSON.stringify(FeedIdentifier$outboundSchema.parse(feedIdentifier)); -} - -export function feedIdentifierFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => FeedIdentifier$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'FeedIdentifier' from JSON`, - ); -} - -/** @internal */ -export const MarkAllMessageAsRequestDtoMarkAs$inboundSchema: z.ZodNativeEnum< - typeof MarkAllMessageAsRequestDtoMarkAs -> = z.nativeEnum(MarkAllMessageAsRequestDtoMarkAs); - -/** @internal */ -export const MarkAllMessageAsRequestDtoMarkAs$outboundSchema: z.ZodNativeEnum< - typeof MarkAllMessageAsRequestDtoMarkAs -> = MarkAllMessageAsRequestDtoMarkAs$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MarkAllMessageAsRequestDtoMarkAs$ { - /** @deprecated use `MarkAllMessageAsRequestDtoMarkAs$inboundSchema` instead. */ - export const inboundSchema = MarkAllMessageAsRequestDtoMarkAs$inboundSchema; - /** @deprecated use `MarkAllMessageAsRequestDtoMarkAs$outboundSchema` instead. */ - export const outboundSchema = MarkAllMessageAsRequestDtoMarkAs$outboundSchema; -} - -/** @internal */ -export const MarkAllMessageAsRequestDto$inboundSchema: z.ZodType< - MarkAllMessageAsRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - feedIdentifier: z.union([z.string(), z.array(z.string())]).optional(), - markAs: MarkAllMessageAsRequestDtoMarkAs$inboundSchema, -}); - -/** @internal */ -export type MarkAllMessageAsRequestDto$Outbound = { - feedIdentifier?: string | Array | undefined; - markAs: string; -}; - -/** @internal */ -export const MarkAllMessageAsRequestDto$outboundSchema: z.ZodType< - MarkAllMessageAsRequestDto$Outbound, - z.ZodTypeDef, - MarkAllMessageAsRequestDto -> = z.object({ - feedIdentifier: z.union([z.string(), z.array(z.string())]).optional(), - markAs: MarkAllMessageAsRequestDtoMarkAs$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MarkAllMessageAsRequestDto$ { - /** @deprecated use `MarkAllMessageAsRequestDto$inboundSchema` instead. */ - export const inboundSchema = MarkAllMessageAsRequestDto$inboundSchema; - /** @deprecated use `MarkAllMessageAsRequestDto$outboundSchema` instead. */ - export const outboundSchema = MarkAllMessageAsRequestDto$outboundSchema; - /** @deprecated use `MarkAllMessageAsRequestDto$Outbound` instead. */ - export type Outbound = MarkAllMessageAsRequestDto$Outbound; -} - -export function markAllMessageAsRequestDtoToJSON( - markAllMessageAsRequestDto: MarkAllMessageAsRequestDto, -): string { - return JSON.stringify( - MarkAllMessageAsRequestDto$outboundSchema.parse(markAllMessageAsRequestDto), - ); -} - -export function markAllMessageAsRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MarkAllMessageAsRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MarkAllMessageAsRequestDto' from JSON`, - ); -} diff --git a/src/models/components/markmessageactionasseendto.ts b/src/models/components/markmessageactionasseendto.ts deleted file mode 100644 index 4476a8f5..00000000 --- a/src/models/components/markmessageactionasseendto.ts +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * Message action status - */ -export const MarkMessageActionAsSeenDtoStatus = { - Pending: "pending", - Done: "done", -} as const; -/** - * Message action status - */ -export type MarkMessageActionAsSeenDtoStatus = ClosedEnum< - typeof MarkMessageActionAsSeenDtoStatus ->; - -/** - * Message action payload - */ -export type MarkMessageActionAsSeenDtoPayload = {}; - -export type MarkMessageActionAsSeenDto = { - /** - * Message action status - */ - status: MarkMessageActionAsSeenDtoStatus; - /** - * Message action payload - */ - payload?: MarkMessageActionAsSeenDtoPayload | undefined; -}; - -/** @internal */ -export const MarkMessageActionAsSeenDtoStatus$inboundSchema: z.ZodNativeEnum< - typeof MarkMessageActionAsSeenDtoStatus -> = z.nativeEnum(MarkMessageActionAsSeenDtoStatus); - -/** @internal */ -export const MarkMessageActionAsSeenDtoStatus$outboundSchema: z.ZodNativeEnum< - typeof MarkMessageActionAsSeenDtoStatus -> = MarkMessageActionAsSeenDtoStatus$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MarkMessageActionAsSeenDtoStatus$ { - /** @deprecated use `MarkMessageActionAsSeenDtoStatus$inboundSchema` instead. */ - export const inboundSchema = MarkMessageActionAsSeenDtoStatus$inboundSchema; - /** @deprecated use `MarkMessageActionAsSeenDtoStatus$outboundSchema` instead. */ - export const outboundSchema = MarkMessageActionAsSeenDtoStatus$outboundSchema; -} - -/** @internal */ -export const MarkMessageActionAsSeenDtoPayload$inboundSchema: z.ZodType< - MarkMessageActionAsSeenDtoPayload, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type MarkMessageActionAsSeenDtoPayload$Outbound = {}; - -/** @internal */ -export const MarkMessageActionAsSeenDtoPayload$outboundSchema: z.ZodType< - MarkMessageActionAsSeenDtoPayload$Outbound, - z.ZodTypeDef, - MarkMessageActionAsSeenDtoPayload -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MarkMessageActionAsSeenDtoPayload$ { - /** @deprecated use `MarkMessageActionAsSeenDtoPayload$inboundSchema` instead. */ - export const inboundSchema = MarkMessageActionAsSeenDtoPayload$inboundSchema; - /** @deprecated use `MarkMessageActionAsSeenDtoPayload$outboundSchema` instead. */ - export const outboundSchema = - MarkMessageActionAsSeenDtoPayload$outboundSchema; - /** @deprecated use `MarkMessageActionAsSeenDtoPayload$Outbound` instead. */ - export type Outbound = MarkMessageActionAsSeenDtoPayload$Outbound; -} - -export function markMessageActionAsSeenDtoPayloadToJSON( - markMessageActionAsSeenDtoPayload: MarkMessageActionAsSeenDtoPayload, -): string { - return JSON.stringify( - MarkMessageActionAsSeenDtoPayload$outboundSchema.parse( - markMessageActionAsSeenDtoPayload, - ), - ); -} - -export function markMessageActionAsSeenDtoPayloadFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MarkMessageActionAsSeenDtoPayload$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MarkMessageActionAsSeenDtoPayload' from JSON`, - ); -} - -/** @internal */ -export const MarkMessageActionAsSeenDto$inboundSchema: z.ZodType< - MarkMessageActionAsSeenDto, - z.ZodTypeDef, - unknown -> = z.object({ - status: MarkMessageActionAsSeenDtoStatus$inboundSchema, - payload: z.lazy(() => MarkMessageActionAsSeenDtoPayload$inboundSchema) - .optional(), -}); - -/** @internal */ -export type MarkMessageActionAsSeenDto$Outbound = { - status: string; - payload?: MarkMessageActionAsSeenDtoPayload$Outbound | undefined; -}; - -/** @internal */ -export const MarkMessageActionAsSeenDto$outboundSchema: z.ZodType< - MarkMessageActionAsSeenDto$Outbound, - z.ZodTypeDef, - MarkMessageActionAsSeenDto -> = z.object({ - status: MarkMessageActionAsSeenDtoStatus$outboundSchema, - payload: z.lazy(() => MarkMessageActionAsSeenDtoPayload$outboundSchema) - .optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MarkMessageActionAsSeenDto$ { - /** @deprecated use `MarkMessageActionAsSeenDto$inboundSchema` instead. */ - export const inboundSchema = MarkMessageActionAsSeenDto$inboundSchema; - /** @deprecated use `MarkMessageActionAsSeenDto$outboundSchema` instead. */ - export const outboundSchema = MarkMessageActionAsSeenDto$outboundSchema; - /** @deprecated use `MarkMessageActionAsSeenDto$Outbound` instead. */ - export type Outbound = MarkMessageActionAsSeenDto$Outbound; -} - -export function markMessageActionAsSeenDtoToJSON( - markMessageActionAsSeenDto: MarkMessageActionAsSeenDto, -): string { - return JSON.stringify( - MarkMessageActionAsSeenDto$outboundSchema.parse(markMessageActionAsSeenDto), - ); -} - -export function markMessageActionAsSeenDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MarkMessageActionAsSeenDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MarkMessageActionAsSeenDto' from JSON`, - ); -} diff --git a/src/models/components/messageaction.ts b/src/models/components/messageaction.ts deleted file mode 100644 index 9b865fc7..00000000 --- a/src/models/components/messageaction.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - MessageActionResult, - MessageActionResult$inboundSchema, - MessageActionResult$Outbound, - MessageActionResult$outboundSchema, -} from "./messageactionresult.js"; -import { - MessageButton, - MessageButton$inboundSchema, - MessageButton$Outbound, - MessageButton$outboundSchema, -} from "./messagebutton.js"; - -export const MessageActionStatus = { - Pending: "pending", - Done: "done", -} as const; -export type MessageActionStatus = ClosedEnum; - -export type MessageAction = { - status?: MessageActionStatus | undefined; - buttons?: Array | undefined; - result?: MessageActionResult | undefined; -}; - -/** @internal */ -export const MessageActionStatus$inboundSchema: z.ZodNativeEnum< - typeof MessageActionStatus -> = z.nativeEnum(MessageActionStatus); - -/** @internal */ -export const MessageActionStatus$outboundSchema: z.ZodNativeEnum< - typeof MessageActionStatus -> = MessageActionStatus$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageActionStatus$ { - /** @deprecated use `MessageActionStatus$inboundSchema` instead. */ - export const inboundSchema = MessageActionStatus$inboundSchema; - /** @deprecated use `MessageActionStatus$outboundSchema` instead. */ - export const outboundSchema = MessageActionStatus$outboundSchema; -} - -/** @internal */ -export const MessageAction$inboundSchema: z.ZodType< - MessageAction, - z.ZodTypeDef, - unknown -> = z.object({ - status: MessageActionStatus$inboundSchema.optional(), - buttons: z.array(MessageButton$inboundSchema).optional(), - result: MessageActionResult$inboundSchema.optional(), -}); - -/** @internal */ -export type MessageAction$Outbound = { - status?: string | undefined; - buttons?: Array | undefined; - result?: MessageActionResult$Outbound | undefined; -}; - -/** @internal */ -export const MessageAction$outboundSchema: z.ZodType< - MessageAction$Outbound, - z.ZodTypeDef, - MessageAction -> = z.object({ - status: MessageActionStatus$outboundSchema.optional(), - buttons: z.array(MessageButton$outboundSchema).optional(), - result: MessageActionResult$outboundSchema.optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageAction$ { - /** @deprecated use `MessageAction$inboundSchema` instead. */ - export const inboundSchema = MessageAction$inboundSchema; - /** @deprecated use `MessageAction$outboundSchema` instead. */ - export const outboundSchema = MessageAction$outboundSchema; - /** @deprecated use `MessageAction$Outbound` instead. */ - export type Outbound = MessageAction$Outbound; -} - -export function messageActionToJSON(messageAction: MessageAction): string { - return JSON.stringify(MessageAction$outboundSchema.parse(messageAction)); -} - -export function messageActionFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageAction$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageAction' from JSON`, - ); -} diff --git a/src/models/components/messageactionresult.ts b/src/models/components/messageactionresult.ts deleted file mode 100644 index 7a147d51..00000000 --- a/src/models/components/messageactionresult.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type MessageActionResultPayload = {}; - -export const MessageActionResultType = { - Primary: "primary", - Secondary: "secondary", -} as const; -export type MessageActionResultType = ClosedEnum< - typeof MessageActionResultType ->; - -export type MessageActionResult = { - payload?: MessageActionResultPayload | undefined; - type?: MessageActionResultType | undefined; -}; - -/** @internal */ -export const MessageActionResultPayload$inboundSchema: z.ZodType< - MessageActionResultPayload, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type MessageActionResultPayload$Outbound = {}; - -/** @internal */ -export const MessageActionResultPayload$outboundSchema: z.ZodType< - MessageActionResultPayload$Outbound, - z.ZodTypeDef, - MessageActionResultPayload -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageActionResultPayload$ { - /** @deprecated use `MessageActionResultPayload$inboundSchema` instead. */ - export const inboundSchema = MessageActionResultPayload$inboundSchema; - /** @deprecated use `MessageActionResultPayload$outboundSchema` instead. */ - export const outboundSchema = MessageActionResultPayload$outboundSchema; - /** @deprecated use `MessageActionResultPayload$Outbound` instead. */ - export type Outbound = MessageActionResultPayload$Outbound; -} - -export function messageActionResultPayloadToJSON( - messageActionResultPayload: MessageActionResultPayload, -): string { - return JSON.stringify( - MessageActionResultPayload$outboundSchema.parse(messageActionResultPayload), - ); -} - -export function messageActionResultPayloadFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageActionResultPayload$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageActionResultPayload' from JSON`, - ); -} - -/** @internal */ -export const MessageActionResultType$inboundSchema: z.ZodNativeEnum< - typeof MessageActionResultType -> = z.nativeEnum(MessageActionResultType); - -/** @internal */ -export const MessageActionResultType$outboundSchema: z.ZodNativeEnum< - typeof MessageActionResultType -> = MessageActionResultType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageActionResultType$ { - /** @deprecated use `MessageActionResultType$inboundSchema` instead. */ - export const inboundSchema = MessageActionResultType$inboundSchema; - /** @deprecated use `MessageActionResultType$outboundSchema` instead. */ - export const outboundSchema = MessageActionResultType$outboundSchema; -} - -/** @internal */ -export const MessageActionResult$inboundSchema: z.ZodType< - MessageActionResult, - z.ZodTypeDef, - unknown -> = z.object({ - payload: z.lazy(() => MessageActionResultPayload$inboundSchema).optional(), - type: MessageActionResultType$inboundSchema.optional(), -}); - -/** @internal */ -export type MessageActionResult$Outbound = { - payload?: MessageActionResultPayload$Outbound | undefined; - type?: string | undefined; -}; - -/** @internal */ -export const MessageActionResult$outboundSchema: z.ZodType< - MessageActionResult$Outbound, - z.ZodTypeDef, - MessageActionResult -> = z.object({ - payload: z.lazy(() => MessageActionResultPayload$outboundSchema).optional(), - type: MessageActionResultType$outboundSchema.optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageActionResult$ { - /** @deprecated use `MessageActionResult$inboundSchema` instead. */ - export const inboundSchema = MessageActionResult$inboundSchema; - /** @deprecated use `MessageActionResult$outboundSchema` instead. */ - export const outboundSchema = MessageActionResult$outboundSchema; - /** @deprecated use `MessageActionResult$Outbound` instead. */ - export type Outbound = MessageActionResult$Outbound; -} - -export function messageActionResultToJSON( - messageActionResult: MessageActionResult, -): string { - return JSON.stringify( - MessageActionResult$outboundSchema.parse(messageActionResult), - ); -} - -export function messageActionResultFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageActionResult$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageActionResult' from JSON`, - ); -} diff --git a/src/models/components/messagebutton.ts b/src/models/components/messagebutton.ts deleted file mode 100644 index 443f8b3f..00000000 --- a/src/models/components/messagebutton.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const MessageButtonType = { - Primary: "primary", - Secondary: "secondary", -} as const; -export type MessageButtonType = ClosedEnum; - -export type MessageButton = { - type: MessageButtonType; - content: string; - resultContent?: string | undefined; -}; - -/** @internal */ -export const MessageButtonType$inboundSchema: z.ZodNativeEnum< - typeof MessageButtonType -> = z.nativeEnum(MessageButtonType); - -/** @internal */ -export const MessageButtonType$outboundSchema: z.ZodNativeEnum< - typeof MessageButtonType -> = MessageButtonType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageButtonType$ { - /** @deprecated use `MessageButtonType$inboundSchema` instead. */ - export const inboundSchema = MessageButtonType$inboundSchema; - /** @deprecated use `MessageButtonType$outboundSchema` instead. */ - export const outboundSchema = MessageButtonType$outboundSchema; -} - -/** @internal */ -export const MessageButton$inboundSchema: z.ZodType< - MessageButton, - z.ZodTypeDef, - unknown -> = z.object({ - type: MessageButtonType$inboundSchema, - content: z.string(), - resultContent: z.string().optional(), -}); - -/** @internal */ -export type MessageButton$Outbound = { - type: string; - content: string; - resultContent?: string | undefined; -}; - -/** @internal */ -export const MessageButton$outboundSchema: z.ZodType< - MessageButton$Outbound, - z.ZodTypeDef, - MessageButton -> = z.object({ - type: MessageButtonType$outboundSchema, - content: z.string(), - resultContent: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageButton$ { - /** @deprecated use `MessageButton$inboundSchema` instead. */ - export const inboundSchema = MessageButton$inboundSchema; - /** @deprecated use `MessageButton$outboundSchema` instead. */ - export const outboundSchema = MessageButton$outboundSchema; - /** @deprecated use `MessageButton$Outbound` instead. */ - export type Outbound = MessageButton$Outbound; -} - -export function messageButtonToJSON(messageButton: MessageButton): string { - return JSON.stringify(MessageButton$outboundSchema.parse(messageButton)); -} - -export function messageButtonFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageButton$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageButton' from JSON`, - ); -} diff --git a/src/models/components/messagecta.ts b/src/models/components/messagecta.ts deleted file mode 100644 index 6560ba6d..00000000 --- a/src/models/components/messagecta.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - MessageAction, - MessageAction$inboundSchema, - MessageAction$Outbound, - MessageAction$outboundSchema, -} from "./messageaction.js"; -import { - MessageCTAData, - MessageCTAData$inboundSchema, - MessageCTAData$Outbound, - MessageCTAData$outboundSchema, -} from "./messagectadata.js"; - -export const MessageCTAType = { - Redirect: "redirect", -} as const; -export type MessageCTAType = ClosedEnum; - -export type MessageCTA = { - type?: MessageCTAType | undefined; - data: MessageCTAData; - action?: MessageAction | undefined; -}; - -/** @internal */ -export const MessageCTAType$inboundSchema: z.ZodNativeEnum< - typeof MessageCTAType -> = z.nativeEnum(MessageCTAType); - -/** @internal */ -export const MessageCTAType$outboundSchema: z.ZodNativeEnum< - typeof MessageCTAType -> = MessageCTAType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageCTAType$ { - /** @deprecated use `MessageCTAType$inboundSchema` instead. */ - export const inboundSchema = MessageCTAType$inboundSchema; - /** @deprecated use `MessageCTAType$outboundSchema` instead. */ - export const outboundSchema = MessageCTAType$outboundSchema; -} - -/** @internal */ -export const MessageCTA$inboundSchema: z.ZodType< - MessageCTA, - z.ZodTypeDef, - unknown -> = z.object({ - type: MessageCTAType$inboundSchema.optional(), - data: MessageCTAData$inboundSchema, - action: MessageAction$inboundSchema.optional(), -}); - -/** @internal */ -export type MessageCTA$Outbound = { - type?: string | undefined; - data: MessageCTAData$Outbound; - action?: MessageAction$Outbound | undefined; -}; - -/** @internal */ -export const MessageCTA$outboundSchema: z.ZodType< - MessageCTA$Outbound, - z.ZodTypeDef, - MessageCTA -> = z.object({ - type: MessageCTAType$outboundSchema.optional(), - data: MessageCTAData$outboundSchema, - action: MessageAction$outboundSchema.optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageCTA$ { - /** @deprecated use `MessageCTA$inboundSchema` instead. */ - export const inboundSchema = MessageCTA$inboundSchema; - /** @deprecated use `MessageCTA$outboundSchema` instead. */ - export const outboundSchema = MessageCTA$outboundSchema; - /** @deprecated use `MessageCTA$Outbound` instead. */ - export type Outbound = MessageCTA$Outbound; -} - -export function messageCTAToJSON(messageCTA: MessageCTA): string { - return JSON.stringify(MessageCTA$outboundSchema.parse(messageCTA)); -} - -export function messageCTAFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageCTA$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageCTA' from JSON`, - ); -} diff --git a/src/models/components/messagectadata.ts b/src/models/components/messagectadata.ts deleted file mode 100644 index a5fef65a..00000000 --- a/src/models/components/messagectadata.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type MessageCTAData = { - url?: string | undefined; -}; - -/** @internal */ -export const MessageCTAData$inboundSchema: z.ZodType< - MessageCTAData, - z.ZodTypeDef, - unknown -> = z.object({ - url: z.string().optional(), -}); - -/** @internal */ -export type MessageCTAData$Outbound = { - url?: string | undefined; -}; - -/** @internal */ -export const MessageCTAData$outboundSchema: z.ZodType< - MessageCTAData$Outbound, - z.ZodTypeDef, - MessageCTAData -> = z.object({ - url: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageCTAData$ { - /** @deprecated use `MessageCTAData$inboundSchema` instead. */ - export const inboundSchema = MessageCTAData$inboundSchema; - /** @deprecated use `MessageCTAData$outboundSchema` instead. */ - export const outboundSchema = MessageCTAData$outboundSchema; - /** @deprecated use `MessageCTAData$Outbound` instead. */ - export type Outbound = MessageCTAData$Outbound; -} - -export function messageCTADataToJSON(messageCTAData: MessageCTAData): string { - return JSON.stringify(MessageCTAData$outboundSchema.parse(messageCTAData)); -} - -export function messageCTADataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageCTAData$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageCTAData' from JSON`, - ); -} diff --git a/src/models/components/messageentity.ts b/src/models/components/messageentity.ts deleted file mode 100644 index d65bebd2..00000000 --- a/src/models/components/messageentity.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type MessageEntity = {}; - -/** @internal */ -export const MessageEntity$inboundSchema: z.ZodType< - MessageEntity, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type MessageEntity$Outbound = {}; - -/** @internal */ -export const MessageEntity$outboundSchema: z.ZodType< - MessageEntity$Outbound, - z.ZodTypeDef, - MessageEntity -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageEntity$ { - /** @deprecated use `MessageEntity$inboundSchema` instead. */ - export const inboundSchema = MessageEntity$inboundSchema; - /** @deprecated use `MessageEntity$outboundSchema` instead. */ - export const outboundSchema = MessageEntity$outboundSchema; - /** @deprecated use `MessageEntity$Outbound` instead. */ - export type Outbound = MessageEntity$Outbound; -} - -export function messageEntityToJSON(messageEntity: MessageEntity): string { - return JSON.stringify(MessageEntity$outboundSchema.parse(messageEntity)); -} - -export function messageEntityFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageEntity$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageEntity' from JSON`, - ); -} diff --git a/src/models/components/messagemarkasrequestdto.ts b/src/models/components/messagemarkasrequestdto.ts deleted file mode 100644 index 22b8a38a..00000000 --- a/src/models/components/messagemarkasrequestdto.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type MessageId = string | Array; - -export const MarkAs = { - Read: "read", - Seen: "seen", - Unread: "unread", - Unseen: "unseen", -} as const; -export type MarkAs = ClosedEnum; - -export type MessageMarkAsRequestDto = { - messageId: string | Array; - markAs: MarkAs; -}; - -/** @internal */ -export const MessageId$inboundSchema: z.ZodType< - MessageId, - z.ZodTypeDef, - unknown -> = z.union([z.string(), z.array(z.string())]); - -/** @internal */ -export type MessageId$Outbound = string | Array; - -/** @internal */ -export const MessageId$outboundSchema: z.ZodType< - MessageId$Outbound, - z.ZodTypeDef, - MessageId -> = z.union([z.string(), z.array(z.string())]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageId$ { - /** @deprecated use `MessageId$inboundSchema` instead. */ - export const inboundSchema = MessageId$inboundSchema; - /** @deprecated use `MessageId$outboundSchema` instead. */ - export const outboundSchema = MessageId$outboundSchema; - /** @deprecated use `MessageId$Outbound` instead. */ - export type Outbound = MessageId$Outbound; -} - -export function messageIdToJSON(messageId: MessageId): string { - return JSON.stringify(MessageId$outboundSchema.parse(messageId)); -} - -export function messageIdFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageId$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageId' from JSON`, - ); -} - -/** @internal */ -export const MarkAs$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(MarkAs); - -/** @internal */ -export const MarkAs$outboundSchema: z.ZodNativeEnum = - MarkAs$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MarkAs$ { - /** @deprecated use `MarkAs$inboundSchema` instead. */ - export const inboundSchema = MarkAs$inboundSchema; - /** @deprecated use `MarkAs$outboundSchema` instead. */ - export const outboundSchema = MarkAs$outboundSchema; -} - -/** @internal */ -export const MessageMarkAsRequestDto$inboundSchema: z.ZodType< - MessageMarkAsRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - messageId: z.union([z.string(), z.array(z.string())]), - markAs: MarkAs$inboundSchema, -}); - -/** @internal */ -export type MessageMarkAsRequestDto$Outbound = { - messageId: string | Array; - markAs: string; -}; - -/** @internal */ -export const MessageMarkAsRequestDto$outboundSchema: z.ZodType< - MessageMarkAsRequestDto$Outbound, - z.ZodTypeDef, - MessageMarkAsRequestDto -> = z.object({ - messageId: z.union([z.string(), z.array(z.string())]), - markAs: MarkAs$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageMarkAsRequestDto$ { - /** @deprecated use `MessageMarkAsRequestDto$inboundSchema` instead. */ - export const inboundSchema = MessageMarkAsRequestDto$inboundSchema; - /** @deprecated use `MessageMarkAsRequestDto$outboundSchema` instead. */ - export const outboundSchema = MessageMarkAsRequestDto$outboundSchema; - /** @deprecated use `MessageMarkAsRequestDto$Outbound` instead. */ - export type Outbound = MessageMarkAsRequestDto$Outbound; -} - -export function messageMarkAsRequestDtoToJSON( - messageMarkAsRequestDto: MessageMarkAsRequestDto, -): string { - return JSON.stringify( - MessageMarkAsRequestDto$outboundSchema.parse(messageMarkAsRequestDto), - ); -} - -export function messageMarkAsRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageMarkAsRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageMarkAsRequestDto' from JSON`, - ); -} diff --git a/src/models/components/messageresponsedto.ts b/src/models/components/messageresponsedto.ts deleted file mode 100644 index eae7e2c5..00000000 --- a/src/models/components/messageresponsedto.ts +++ /dev/null @@ -1,500 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - EmailBlock, - EmailBlock$inboundSchema, - EmailBlock$Outbound, - EmailBlock$outboundSchema, -} from "./emailblock.js"; -import { - MessageCTA, - MessageCTA$inboundSchema, - MessageCTA$Outbound, - MessageCTA$outboundSchema, -} from "./messagecta.js"; -import { - SubscriberResponseDto, - SubscriberResponseDto$inboundSchema, - SubscriberResponseDto$Outbound, - SubscriberResponseDto$outboundSchema, -} from "./subscriberresponsedto.js"; -import { - WorkflowResponse, - WorkflowResponse$inboundSchema, - WorkflowResponse$Outbound, - WorkflowResponse$outboundSchema, -} from "./workflowresponse.js"; - -export type Content = EmailBlock | string; - -export const MessageResponseDtoChannel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type MessageResponseDtoChannel = ClosedEnum< - typeof MessageResponseDtoChannel ->; - -export type FeedId = {}; - -export const MessageResponseDtoStatus = { - Sent: "sent", - Error: "error", - Warning: "warning", -} as const; -export type MessageResponseDtoStatus = ClosedEnum< - typeof MessageResponseDtoStatus ->; - -/** - * The payload that was used to send the notification trigger - */ -export type MessageResponseDtoPayload = {}; - -/** - * Provider specific overrides used when triggering the notification - */ -export type MessageResponseDtoOverrides = {}; - -export type MessageResponseDto = { - id?: string | undefined; - templateId: string; - environmentId: string; - messageTemplateId: string; - organizationId: string; - notificationId: string; - subscriberId: string; - subscriber?: SubscriberResponseDto | undefined; - template?: WorkflowResponse | undefined; - templateIdentifier?: string | undefined; - createdAt: string; - lastSeenDate?: string | undefined; - lastReadDate?: string | undefined; - content: EmailBlock | string; - transactionId: string; - subject?: string | undefined; - channel: MessageResponseDtoChannel; - read: boolean; - seen: boolean; - email?: string | undefined; - phone?: string | undefined; - directWebhookUrl?: string | undefined; - providerId?: string | undefined; - deviceTokens?: Array | undefined; - title?: string | undefined; - cta: MessageCTA; - feedId?: FeedId | null | undefined; - status: MessageResponseDtoStatus; - errorId: string; - errorText: string; - /** - * The payload that was used to send the notification trigger - */ - payload: MessageResponseDtoPayload; - /** - * Provider specific overrides used when triggering the notification - */ - overrides: MessageResponseDtoOverrides; -}; - -/** @internal */ -export const Content$inboundSchema: z.ZodType = - z.union([EmailBlock$inboundSchema, z.string()]); - -/** @internal */ -export type Content$Outbound = EmailBlock$Outbound | string; - -/** @internal */ -export const Content$outboundSchema: z.ZodType< - Content$Outbound, - z.ZodTypeDef, - Content -> = z.union([EmailBlock$outboundSchema, z.string()]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Content$ { - /** @deprecated use `Content$inboundSchema` instead. */ - export const inboundSchema = Content$inboundSchema; - /** @deprecated use `Content$outboundSchema` instead. */ - export const outboundSchema = Content$outboundSchema; - /** @deprecated use `Content$Outbound` instead. */ - export type Outbound = Content$Outbound; -} - -export function contentToJSON(content: Content): string { - return JSON.stringify(Content$outboundSchema.parse(content)); -} - -export function contentFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Content$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Content' from JSON`, - ); -} - -/** @internal */ -export const MessageResponseDtoChannel$inboundSchema: z.ZodNativeEnum< - typeof MessageResponseDtoChannel -> = z.nativeEnum(MessageResponseDtoChannel); - -/** @internal */ -export const MessageResponseDtoChannel$outboundSchema: z.ZodNativeEnum< - typeof MessageResponseDtoChannel -> = MessageResponseDtoChannel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageResponseDtoChannel$ { - /** @deprecated use `MessageResponseDtoChannel$inboundSchema` instead. */ - export const inboundSchema = MessageResponseDtoChannel$inboundSchema; - /** @deprecated use `MessageResponseDtoChannel$outboundSchema` instead. */ - export const outboundSchema = MessageResponseDtoChannel$outboundSchema; -} - -/** @internal */ -export const FeedId$inboundSchema: z.ZodType = z - .object({}); - -/** @internal */ -export type FeedId$Outbound = {}; - -/** @internal */ -export const FeedId$outboundSchema: z.ZodType< - FeedId$Outbound, - z.ZodTypeDef, - FeedId -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace FeedId$ { - /** @deprecated use `FeedId$inboundSchema` instead. */ - export const inboundSchema = FeedId$inboundSchema; - /** @deprecated use `FeedId$outboundSchema` instead. */ - export const outboundSchema = FeedId$outboundSchema; - /** @deprecated use `FeedId$Outbound` instead. */ - export type Outbound = FeedId$Outbound; -} - -export function feedIdToJSON(feedId: FeedId): string { - return JSON.stringify(FeedId$outboundSchema.parse(feedId)); -} - -export function feedIdFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => FeedId$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'FeedId' from JSON`, - ); -} - -/** @internal */ -export const MessageResponseDtoStatus$inboundSchema: z.ZodNativeEnum< - typeof MessageResponseDtoStatus -> = z.nativeEnum(MessageResponseDtoStatus); - -/** @internal */ -export const MessageResponseDtoStatus$outboundSchema: z.ZodNativeEnum< - typeof MessageResponseDtoStatus -> = MessageResponseDtoStatus$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageResponseDtoStatus$ { - /** @deprecated use `MessageResponseDtoStatus$inboundSchema` instead. */ - export const inboundSchema = MessageResponseDtoStatus$inboundSchema; - /** @deprecated use `MessageResponseDtoStatus$outboundSchema` instead. */ - export const outboundSchema = MessageResponseDtoStatus$outboundSchema; -} - -/** @internal */ -export const MessageResponseDtoPayload$inboundSchema: z.ZodType< - MessageResponseDtoPayload, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type MessageResponseDtoPayload$Outbound = {}; - -/** @internal */ -export const MessageResponseDtoPayload$outboundSchema: z.ZodType< - MessageResponseDtoPayload$Outbound, - z.ZodTypeDef, - MessageResponseDtoPayload -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageResponseDtoPayload$ { - /** @deprecated use `MessageResponseDtoPayload$inboundSchema` instead. */ - export const inboundSchema = MessageResponseDtoPayload$inboundSchema; - /** @deprecated use `MessageResponseDtoPayload$outboundSchema` instead. */ - export const outboundSchema = MessageResponseDtoPayload$outboundSchema; - /** @deprecated use `MessageResponseDtoPayload$Outbound` instead. */ - export type Outbound = MessageResponseDtoPayload$Outbound; -} - -export function messageResponseDtoPayloadToJSON( - messageResponseDtoPayload: MessageResponseDtoPayload, -): string { - return JSON.stringify( - MessageResponseDtoPayload$outboundSchema.parse(messageResponseDtoPayload), - ); -} - -export function messageResponseDtoPayloadFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageResponseDtoPayload$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageResponseDtoPayload' from JSON`, - ); -} - -/** @internal */ -export const MessageResponseDtoOverrides$inboundSchema: z.ZodType< - MessageResponseDtoOverrides, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type MessageResponseDtoOverrides$Outbound = {}; - -/** @internal */ -export const MessageResponseDtoOverrides$outboundSchema: z.ZodType< - MessageResponseDtoOverrides$Outbound, - z.ZodTypeDef, - MessageResponseDtoOverrides -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageResponseDtoOverrides$ { - /** @deprecated use `MessageResponseDtoOverrides$inboundSchema` instead. */ - export const inboundSchema = MessageResponseDtoOverrides$inboundSchema; - /** @deprecated use `MessageResponseDtoOverrides$outboundSchema` instead. */ - export const outboundSchema = MessageResponseDtoOverrides$outboundSchema; - /** @deprecated use `MessageResponseDtoOverrides$Outbound` instead. */ - export type Outbound = MessageResponseDtoOverrides$Outbound; -} - -export function messageResponseDtoOverridesToJSON( - messageResponseDtoOverrides: MessageResponseDtoOverrides, -): string { - return JSON.stringify( - MessageResponseDtoOverrides$outboundSchema.parse( - messageResponseDtoOverrides, - ), - ); -} - -export function messageResponseDtoOverridesFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageResponseDtoOverrides$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageResponseDtoOverrides' from JSON`, - ); -} - -/** @internal */ -export const MessageResponseDto$inboundSchema: z.ZodType< - MessageResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - _templateId: z.string(), - _environmentId: z.string(), - _messageTemplateId: z.string(), - _organizationId: z.string(), - _notificationId: z.string(), - _subscriberId: z.string(), - subscriber: SubscriberResponseDto$inboundSchema.optional(), - template: WorkflowResponse$inboundSchema.optional(), - templateIdentifier: z.string().optional(), - createdAt: z.string(), - lastSeenDate: z.string().optional(), - lastReadDate: z.string().optional(), - content: z.union([EmailBlock$inboundSchema, z.string()]), - transactionId: z.string(), - subject: z.string().optional(), - channel: MessageResponseDtoChannel$inboundSchema, - read: z.boolean(), - seen: z.boolean(), - email: z.string().optional(), - phone: z.string().optional(), - directWebhookUrl: z.string().optional(), - providerId: z.string().optional(), - deviceTokens: z.array(z.string()).optional(), - title: z.string().optional(), - cta: MessageCTA$inboundSchema, - _feedId: z.nullable(z.lazy(() => FeedId$inboundSchema)).optional(), - status: MessageResponseDtoStatus$inboundSchema, - errorId: z.string(), - errorText: z.string(), - payload: z.lazy(() => MessageResponseDtoPayload$inboundSchema), - overrides: z.lazy(() => MessageResponseDtoOverrides$inboundSchema), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_templateId": "templateId", - "_environmentId": "environmentId", - "_messageTemplateId": "messageTemplateId", - "_organizationId": "organizationId", - "_notificationId": "notificationId", - "_subscriberId": "subscriberId", - "_feedId": "feedId", - }); -}); - -/** @internal */ -export type MessageResponseDto$Outbound = { - _id?: string | undefined; - _templateId: string; - _environmentId: string; - _messageTemplateId: string; - _organizationId: string; - _notificationId: string; - _subscriberId: string; - subscriber?: SubscriberResponseDto$Outbound | undefined; - template?: WorkflowResponse$Outbound | undefined; - templateIdentifier?: string | undefined; - createdAt: string; - lastSeenDate?: string | undefined; - lastReadDate?: string | undefined; - content: EmailBlock$Outbound | string; - transactionId: string; - subject?: string | undefined; - channel: string; - read: boolean; - seen: boolean; - email?: string | undefined; - phone?: string | undefined; - directWebhookUrl?: string | undefined; - providerId?: string | undefined; - deviceTokens?: Array | undefined; - title?: string | undefined; - cta: MessageCTA$Outbound; - _feedId?: FeedId$Outbound | null | undefined; - status: string; - errorId: string; - errorText: string; - payload: MessageResponseDtoPayload$Outbound; - overrides: MessageResponseDtoOverrides$Outbound; -}; - -/** @internal */ -export const MessageResponseDto$outboundSchema: z.ZodType< - MessageResponseDto$Outbound, - z.ZodTypeDef, - MessageResponseDto -> = z.object({ - id: z.string().optional(), - templateId: z.string(), - environmentId: z.string(), - messageTemplateId: z.string(), - organizationId: z.string(), - notificationId: z.string(), - subscriberId: z.string(), - subscriber: SubscriberResponseDto$outboundSchema.optional(), - template: WorkflowResponse$outboundSchema.optional(), - templateIdentifier: z.string().optional(), - createdAt: z.string(), - lastSeenDate: z.string().optional(), - lastReadDate: z.string().optional(), - content: z.union([EmailBlock$outboundSchema, z.string()]), - transactionId: z.string(), - subject: z.string().optional(), - channel: MessageResponseDtoChannel$outboundSchema, - read: z.boolean(), - seen: z.boolean(), - email: z.string().optional(), - phone: z.string().optional(), - directWebhookUrl: z.string().optional(), - providerId: z.string().optional(), - deviceTokens: z.array(z.string()).optional(), - title: z.string().optional(), - cta: MessageCTA$outboundSchema, - feedId: z.nullable(z.lazy(() => FeedId$outboundSchema)).optional(), - status: MessageResponseDtoStatus$outboundSchema, - errorId: z.string(), - errorText: z.string(), - payload: z.lazy(() => MessageResponseDtoPayload$outboundSchema), - overrides: z.lazy(() => MessageResponseDtoOverrides$outboundSchema), -}).transform((v) => { - return remap$(v, { - id: "_id", - templateId: "_templateId", - environmentId: "_environmentId", - messageTemplateId: "_messageTemplateId", - organizationId: "_organizationId", - notificationId: "_notificationId", - subscriberId: "_subscriberId", - feedId: "_feedId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageResponseDto$ { - /** @deprecated use `MessageResponseDto$inboundSchema` instead. */ - export const inboundSchema = MessageResponseDto$inboundSchema; - /** @deprecated use `MessageResponseDto$outboundSchema` instead. */ - export const outboundSchema = MessageResponseDto$outboundSchema; - /** @deprecated use `MessageResponseDto$Outbound` instead. */ - export type Outbound = MessageResponseDto$Outbound; -} - -export function messageResponseDtoToJSON( - messageResponseDto: MessageResponseDto, -): string { - return JSON.stringify( - MessageResponseDto$outboundSchema.parse(messageResponseDto), - ); -} - -export function messageResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageResponseDto' from JSON`, - ); -} diff --git a/src/models/components/messagetemplate.ts b/src/models/components/messagetemplate.ts deleted file mode 100644 index eff05e96..00000000 --- a/src/models/components/messagetemplate.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type MessageTemplate = {}; - -/** @internal */ -export const MessageTemplate$inboundSchema: z.ZodType< - MessageTemplate, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type MessageTemplate$Outbound = {}; - -/** @internal */ -export const MessageTemplate$outboundSchema: z.ZodType< - MessageTemplate$Outbound, - z.ZodTypeDef, - MessageTemplate -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessageTemplate$ { - /** @deprecated use `MessageTemplate$inboundSchema` instead. */ - export const inboundSchema = MessageTemplate$inboundSchema; - /** @deprecated use `MessageTemplate$outboundSchema` instead. */ - export const outboundSchema = MessageTemplate$outboundSchema; - /** @deprecated use `MessageTemplate$Outbound` instead. */ - export type Outbound = MessageTemplate$Outbound; -} - -export function messageTemplateToJSON( - messageTemplate: MessageTemplate, -): string { - return JSON.stringify(MessageTemplate$outboundSchema.parse(messageTemplate)); -} - -export function messageTemplateFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => MessageTemplate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessageTemplate' from JSON`, - ); -} diff --git a/src/models/components/notificationgroup.ts b/src/models/components/notificationgroup.ts deleted file mode 100644 index dfc602f5..00000000 --- a/src/models/components/notificationgroup.ts +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationGroup = { - id?: string | undefined; - name: string; - environmentId: string; - organizationId: string; - parentId?: string | undefined; -}; - -/** @internal */ -export const NotificationGroup$inboundSchema: z.ZodType< - NotificationGroup, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - name: z.string(), - _environmentId: z.string(), - _organizationId: z.string(), - _parentId: z.string().optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_environmentId": "environmentId", - "_organizationId": "organizationId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type NotificationGroup$Outbound = { - _id?: string | undefined; - name: string; - _environmentId: string; - _organizationId: string; - _parentId?: string | undefined; -}; - -/** @internal */ -export const NotificationGroup$outboundSchema: z.ZodType< - NotificationGroup$Outbound, - z.ZodTypeDef, - NotificationGroup -> = z.object({ - id: z.string().optional(), - name: z.string(), - environmentId: z.string(), - organizationId: z.string(), - parentId: z.string().optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - environmentId: "_environmentId", - organizationId: "_organizationId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroup$ { - /** @deprecated use `NotificationGroup$inboundSchema` instead. */ - export const inboundSchema = NotificationGroup$inboundSchema; - /** @deprecated use `NotificationGroup$outboundSchema` instead. */ - export const outboundSchema = NotificationGroup$outboundSchema; - /** @deprecated use `NotificationGroup$Outbound` instead. */ - export type Outbound = NotificationGroup$Outbound; -} - -export function notificationGroupToJSON( - notificationGroup: NotificationGroup, -): string { - return JSON.stringify( - NotificationGroup$outboundSchema.parse(notificationGroup), - ); -} - -export function notificationGroupFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationGroup$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationGroup' from JSON`, - ); -} diff --git a/src/models/components/notificationgroupresponsedto.ts b/src/models/components/notificationgroupresponsedto.ts deleted file mode 100644 index 39dd84f4..00000000 --- a/src/models/components/notificationgroupresponsedto.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationGroupResponseDto = { - id?: string | undefined; - name: string; - environmentId: string; - organizationId: string; - parentId?: string | undefined; -}; - -/** @internal */ -export const NotificationGroupResponseDto$inboundSchema: z.ZodType< - NotificationGroupResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - name: z.string(), - _environmentId: z.string(), - _organizationId: z.string(), - _parentId: z.string().optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_environmentId": "environmentId", - "_organizationId": "organizationId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type NotificationGroupResponseDto$Outbound = { - _id?: string | undefined; - name: string; - _environmentId: string; - _organizationId: string; - _parentId?: string | undefined; -}; - -/** @internal */ -export const NotificationGroupResponseDto$outboundSchema: z.ZodType< - NotificationGroupResponseDto$Outbound, - z.ZodTypeDef, - NotificationGroupResponseDto -> = z.object({ - id: z.string().optional(), - name: z.string(), - environmentId: z.string(), - organizationId: z.string(), - parentId: z.string().optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - environmentId: "_environmentId", - organizationId: "_organizationId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupResponseDto$ { - /** @deprecated use `NotificationGroupResponseDto$inboundSchema` instead. */ - export const inboundSchema = NotificationGroupResponseDto$inboundSchema; - /** @deprecated use `NotificationGroupResponseDto$outboundSchema` instead. */ - export const outboundSchema = NotificationGroupResponseDto$outboundSchema; - /** @deprecated use `NotificationGroupResponseDto$Outbound` instead. */ - export type Outbound = NotificationGroupResponseDto$Outbound; -} - -export function notificationGroupResponseDtoToJSON( - notificationGroupResponseDto: NotificationGroupResponseDto, -): string { - return JSON.stringify( - NotificationGroupResponseDto$outboundSchema.parse( - notificationGroupResponseDto, - ), - ); -} - -export function notificationGroupResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationGroupResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupResponseDto' from JSON`, - ); -} diff --git a/src/models/components/notificationstep.ts b/src/models/components/notificationstep.ts deleted file mode 100644 index 701311fd..00000000 --- a/src/models/components/notificationstep.ts +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - DelayRegularMetadata, - DelayRegularMetadata$inboundSchema, - DelayRegularMetadata$Outbound, - DelayRegularMetadata$outboundSchema, -} from "./delayregularmetadata.js"; -import { - DelayScheduledMetadata, - DelayScheduledMetadata$inboundSchema, - DelayScheduledMetadata$Outbound, - DelayScheduledMetadata$outboundSchema, -} from "./delayscheduledmetadata.js"; -import { - DigestRegularMetadata, - DigestRegularMetadata$inboundSchema, - DigestRegularMetadata$Outbound, - DigestRegularMetadata$outboundSchema, -} from "./digestregularmetadata.js"; -import { - DigestTimedMetadata, - DigestTimedMetadata$inboundSchema, - DigestTimedMetadata$Outbound, - DigestTimedMetadata$outboundSchema, -} from "./digesttimedmetadata.js"; -import { - MessageTemplate, - MessageTemplate$inboundSchema, - MessageTemplate$Outbound, - MessageTemplate$outboundSchema, -} from "./messagetemplate.js"; -import { - NotificationStepVariant, - NotificationStepVariant$inboundSchema, - NotificationStepVariant$Outbound, - NotificationStepVariant$outboundSchema, -} from "./notificationstepvariant.js"; -import { - StepFilter, - StepFilter$inboundSchema, - StepFilter$Outbound, - StepFilter$outboundSchema, -} from "./stepfilter.js"; - -export type ParentId = {}; - -export type Metadata = - | DelayScheduledMetadata - | DelayRegularMetadata - | DigestTimedMetadata - | DigestRegularMetadata; - -export type ReplyCallback = {}; - -export type NotificationStep = { - id?: string | undefined; - uuid?: string | undefined; - name?: string | undefined; - templateId?: string | undefined; - active?: boolean | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate | undefined; - filters?: Array | undefined; - parentId?: ParentId | undefined; - metadata?: - | DelayScheduledMetadata - | DelayRegularMetadata - | DigestTimedMetadata - | DigestRegularMetadata - | undefined; - replyCallback?: ReplyCallback | undefined; - variants?: NotificationStepVariant | undefined; -}; - -/** @internal */ -export const ParentId$inboundSchema: z.ZodType< - ParentId, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type ParentId$Outbound = {}; - -/** @internal */ -export const ParentId$outboundSchema: z.ZodType< - ParentId$Outbound, - z.ZodTypeDef, - ParentId -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ParentId$ { - /** @deprecated use `ParentId$inboundSchema` instead. */ - export const inboundSchema = ParentId$inboundSchema; - /** @deprecated use `ParentId$outboundSchema` instead. */ - export const outboundSchema = ParentId$outboundSchema; - /** @deprecated use `ParentId$Outbound` instead. */ - export type Outbound = ParentId$Outbound; -} - -export function parentIdToJSON(parentId: ParentId): string { - return JSON.stringify(ParentId$outboundSchema.parse(parentId)); -} - -export function parentIdFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ParentId$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ParentId' from JSON`, - ); -} - -/** @internal */ -export const Metadata$inboundSchema: z.ZodType< - Metadata, - z.ZodTypeDef, - unknown -> = z.union([ - DelayScheduledMetadata$inboundSchema, - DelayRegularMetadata$inboundSchema, - DigestTimedMetadata$inboundSchema, - DigestRegularMetadata$inboundSchema, -]); - -/** @internal */ -export type Metadata$Outbound = - | DelayScheduledMetadata$Outbound - | DelayRegularMetadata$Outbound - | DigestTimedMetadata$Outbound - | DigestRegularMetadata$Outbound; - -/** @internal */ -export const Metadata$outboundSchema: z.ZodType< - Metadata$Outbound, - z.ZodTypeDef, - Metadata -> = z.union([ - DelayScheduledMetadata$outboundSchema, - DelayRegularMetadata$outboundSchema, - DigestTimedMetadata$outboundSchema, - DigestRegularMetadata$outboundSchema, -]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Metadata$ { - /** @deprecated use `Metadata$inboundSchema` instead. */ - export const inboundSchema = Metadata$inboundSchema; - /** @deprecated use `Metadata$outboundSchema` instead. */ - export const outboundSchema = Metadata$outboundSchema; - /** @deprecated use `Metadata$Outbound` instead. */ - export type Outbound = Metadata$Outbound; -} - -export function metadataToJSON(metadata: Metadata): string { - return JSON.stringify(Metadata$outboundSchema.parse(metadata)); -} - -export function metadataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Metadata$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Metadata' from JSON`, - ); -} - -/** @internal */ -export const ReplyCallback$inboundSchema: z.ZodType< - ReplyCallback, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type ReplyCallback$Outbound = {}; - -/** @internal */ -export const ReplyCallback$outboundSchema: z.ZodType< - ReplyCallback$Outbound, - z.ZodTypeDef, - ReplyCallback -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ReplyCallback$ { - /** @deprecated use `ReplyCallback$inboundSchema` instead. */ - export const inboundSchema = ReplyCallback$inboundSchema; - /** @deprecated use `ReplyCallback$outboundSchema` instead. */ - export const outboundSchema = ReplyCallback$outboundSchema; - /** @deprecated use `ReplyCallback$Outbound` instead. */ - export type Outbound = ReplyCallback$Outbound; -} - -export function replyCallbackToJSON(replyCallback: ReplyCallback): string { - return JSON.stringify(ReplyCallback$outboundSchema.parse(replyCallback)); -} - -export function replyCallbackFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => ReplyCallback$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ReplyCallback' from JSON`, - ); -} - -/** @internal */ -export const NotificationStep$inboundSchema: z.ZodType< - NotificationStep, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - uuid: z.string().optional(), - name: z.string().optional(), - _templateId: z.string().optional(), - active: z.boolean().optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$inboundSchema.optional(), - filters: z.array(StepFilter$inboundSchema).optional(), - _parentId: z.lazy(() => ParentId$inboundSchema).optional(), - metadata: z.union([ - DelayScheduledMetadata$inboundSchema, - DelayRegularMetadata$inboundSchema, - DigestTimedMetadata$inboundSchema, - DigestRegularMetadata$inboundSchema, - ]).optional(), - replyCallback: z.lazy(() => ReplyCallback$inboundSchema).optional(), - variants: NotificationStepVariant$inboundSchema.optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_templateId": "templateId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type NotificationStep$Outbound = { - _id?: string | undefined; - uuid?: string | undefined; - name?: string | undefined; - _templateId?: string | undefined; - active?: boolean | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate$Outbound | undefined; - filters?: Array | undefined; - _parentId?: ParentId$Outbound | undefined; - metadata?: - | DelayScheduledMetadata$Outbound - | DelayRegularMetadata$Outbound - | DigestTimedMetadata$Outbound - | DigestRegularMetadata$Outbound - | undefined; - replyCallback?: ReplyCallback$Outbound | undefined; - variants?: NotificationStepVariant$Outbound | undefined; -}; - -/** @internal */ -export const NotificationStep$outboundSchema: z.ZodType< - NotificationStep$Outbound, - z.ZodTypeDef, - NotificationStep -> = z.object({ - id: z.string().optional(), - uuid: z.string().optional(), - name: z.string().optional(), - templateId: z.string().optional(), - active: z.boolean().optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$outboundSchema.optional(), - filters: z.array(StepFilter$outboundSchema).optional(), - parentId: z.lazy(() => ParentId$outboundSchema).optional(), - metadata: z.union([ - DelayScheduledMetadata$outboundSchema, - DelayRegularMetadata$outboundSchema, - DigestTimedMetadata$outboundSchema, - DigestRegularMetadata$outboundSchema, - ]).optional(), - replyCallback: z.lazy(() => ReplyCallback$outboundSchema).optional(), - variants: NotificationStepVariant$outboundSchema.optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - templateId: "_templateId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationStep$ { - /** @deprecated use `NotificationStep$inboundSchema` instead. */ - export const inboundSchema = NotificationStep$inboundSchema; - /** @deprecated use `NotificationStep$outboundSchema` instead. */ - export const outboundSchema = NotificationStep$outboundSchema; - /** @deprecated use `NotificationStep$Outbound` instead. */ - export type Outbound = NotificationStep$Outbound; -} - -export function notificationStepToJSON( - notificationStep: NotificationStep, -): string { - return JSON.stringify( - NotificationStep$outboundSchema.parse(notificationStep), - ); -} - -export function notificationStepFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationStep$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationStep' from JSON`, - ); -} diff --git a/src/models/components/notificationstepvariant.ts b/src/models/components/notificationstepvariant.ts deleted file mode 100644 index 630a6ba1..00000000 --- a/src/models/components/notificationstepvariant.ts +++ /dev/null @@ -1,358 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - DelayRegularMetadata, - DelayRegularMetadata$inboundSchema, - DelayRegularMetadata$Outbound, - DelayRegularMetadata$outboundSchema, -} from "./delayregularmetadata.js"; -import { - DelayScheduledMetadata, - DelayScheduledMetadata$inboundSchema, - DelayScheduledMetadata$Outbound, - DelayScheduledMetadata$outboundSchema, -} from "./delayscheduledmetadata.js"; -import { - DigestRegularMetadata, - DigestRegularMetadata$inboundSchema, - DigestRegularMetadata$Outbound, - DigestRegularMetadata$outboundSchema, -} from "./digestregularmetadata.js"; -import { - DigestTimedMetadata, - DigestTimedMetadata$inboundSchema, - DigestTimedMetadata$Outbound, - DigestTimedMetadata$outboundSchema, -} from "./digesttimedmetadata.js"; -import { - MessageTemplate, - MessageTemplate$inboundSchema, - MessageTemplate$Outbound, - MessageTemplate$outboundSchema, -} from "./messagetemplate.js"; -import { - StepFilter, - StepFilter$inboundSchema, - StepFilter$Outbound, - StepFilter$outboundSchema, -} from "./stepfilter.js"; - -export type NotificationStepVariantParentId = {}; - -export type NotificationStepVariantMetadata = - | DelayScheduledMetadata - | DelayRegularMetadata - | DigestTimedMetadata - | DigestRegularMetadata; - -export type NotificationStepVariantReplyCallback = {}; - -export type NotificationStepVariant = { - id?: string | undefined; - uuid?: string | undefined; - name?: string | undefined; - templateId?: string | undefined; - active?: boolean | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate | undefined; - filters?: Array | undefined; - parentId?: NotificationStepVariantParentId | undefined; - metadata?: - | DelayScheduledMetadata - | DelayRegularMetadata - | DigestTimedMetadata - | DigestRegularMetadata - | undefined; - replyCallback?: NotificationStepVariantReplyCallback | undefined; -}; - -/** @internal */ -export const NotificationStepVariantParentId$inboundSchema: z.ZodType< - NotificationStepVariantParentId, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type NotificationStepVariantParentId$Outbound = {}; - -/** @internal */ -export const NotificationStepVariantParentId$outboundSchema: z.ZodType< - NotificationStepVariantParentId$Outbound, - z.ZodTypeDef, - NotificationStepVariantParentId -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationStepVariantParentId$ { - /** @deprecated use `NotificationStepVariantParentId$inboundSchema` instead. */ - export const inboundSchema = NotificationStepVariantParentId$inboundSchema; - /** @deprecated use `NotificationStepVariantParentId$outboundSchema` instead. */ - export const outboundSchema = NotificationStepVariantParentId$outboundSchema; - /** @deprecated use `NotificationStepVariantParentId$Outbound` instead. */ - export type Outbound = NotificationStepVariantParentId$Outbound; -} - -export function notificationStepVariantParentIdToJSON( - notificationStepVariantParentId: NotificationStepVariantParentId, -): string { - return JSON.stringify( - NotificationStepVariantParentId$outboundSchema.parse( - notificationStepVariantParentId, - ), - ); -} - -export function notificationStepVariantParentIdFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationStepVariantParentId$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationStepVariantParentId' from JSON`, - ); -} - -/** @internal */ -export const NotificationStepVariantMetadata$inboundSchema: z.ZodType< - NotificationStepVariantMetadata, - z.ZodTypeDef, - unknown -> = z.union([ - DelayScheduledMetadata$inboundSchema, - DelayRegularMetadata$inboundSchema, - DigestTimedMetadata$inboundSchema, - DigestRegularMetadata$inboundSchema, -]); - -/** @internal */ -export type NotificationStepVariantMetadata$Outbound = - | DelayScheduledMetadata$Outbound - | DelayRegularMetadata$Outbound - | DigestTimedMetadata$Outbound - | DigestRegularMetadata$Outbound; - -/** @internal */ -export const NotificationStepVariantMetadata$outboundSchema: z.ZodType< - NotificationStepVariantMetadata$Outbound, - z.ZodTypeDef, - NotificationStepVariantMetadata -> = z.union([ - DelayScheduledMetadata$outboundSchema, - DelayRegularMetadata$outboundSchema, - DigestTimedMetadata$outboundSchema, - DigestRegularMetadata$outboundSchema, -]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationStepVariantMetadata$ { - /** @deprecated use `NotificationStepVariantMetadata$inboundSchema` instead. */ - export const inboundSchema = NotificationStepVariantMetadata$inboundSchema; - /** @deprecated use `NotificationStepVariantMetadata$outboundSchema` instead. */ - export const outboundSchema = NotificationStepVariantMetadata$outboundSchema; - /** @deprecated use `NotificationStepVariantMetadata$Outbound` instead. */ - export type Outbound = NotificationStepVariantMetadata$Outbound; -} - -export function notificationStepVariantMetadataToJSON( - notificationStepVariantMetadata: NotificationStepVariantMetadata, -): string { - return JSON.stringify( - NotificationStepVariantMetadata$outboundSchema.parse( - notificationStepVariantMetadata, - ), - ); -} - -export function notificationStepVariantMetadataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationStepVariantMetadata$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationStepVariantMetadata' from JSON`, - ); -} - -/** @internal */ -export const NotificationStepVariantReplyCallback$inboundSchema: z.ZodType< - NotificationStepVariantReplyCallback, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type NotificationStepVariantReplyCallback$Outbound = {}; - -/** @internal */ -export const NotificationStepVariantReplyCallback$outboundSchema: z.ZodType< - NotificationStepVariantReplyCallback$Outbound, - z.ZodTypeDef, - NotificationStepVariantReplyCallback -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationStepVariantReplyCallback$ { - /** @deprecated use `NotificationStepVariantReplyCallback$inboundSchema` instead. */ - export const inboundSchema = - NotificationStepVariantReplyCallback$inboundSchema; - /** @deprecated use `NotificationStepVariantReplyCallback$outboundSchema` instead. */ - export const outboundSchema = - NotificationStepVariantReplyCallback$outboundSchema; - /** @deprecated use `NotificationStepVariantReplyCallback$Outbound` instead. */ - export type Outbound = NotificationStepVariantReplyCallback$Outbound; -} - -export function notificationStepVariantReplyCallbackToJSON( - notificationStepVariantReplyCallback: NotificationStepVariantReplyCallback, -): string { - return JSON.stringify( - NotificationStepVariantReplyCallback$outboundSchema.parse( - notificationStepVariantReplyCallback, - ), - ); -} - -export function notificationStepVariantReplyCallbackFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - NotificationStepVariantReplyCallback$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationStepVariantReplyCallback' from JSON`, - ); -} - -/** @internal */ -export const NotificationStepVariant$inboundSchema: z.ZodType< - NotificationStepVariant, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - uuid: z.string().optional(), - name: z.string().optional(), - _templateId: z.string().optional(), - active: z.boolean().optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$inboundSchema.optional(), - filters: z.array(StepFilter$inboundSchema).optional(), - _parentId: z.lazy(() => NotificationStepVariantParentId$inboundSchema) - .optional(), - metadata: z.union([ - DelayScheduledMetadata$inboundSchema, - DelayRegularMetadata$inboundSchema, - DigestTimedMetadata$inboundSchema, - DigestRegularMetadata$inboundSchema, - ]).optional(), - replyCallback: z.lazy(() => - NotificationStepVariantReplyCallback$inboundSchema - ).optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_templateId": "templateId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type NotificationStepVariant$Outbound = { - _id?: string | undefined; - uuid?: string | undefined; - name?: string | undefined; - _templateId?: string | undefined; - active?: boolean | undefined; - shouldStopOnFail?: boolean | undefined; - template?: MessageTemplate$Outbound | undefined; - filters?: Array | undefined; - _parentId?: NotificationStepVariantParentId$Outbound | undefined; - metadata?: - | DelayScheduledMetadata$Outbound - | DelayRegularMetadata$Outbound - | DigestTimedMetadata$Outbound - | DigestRegularMetadata$Outbound - | undefined; - replyCallback?: NotificationStepVariantReplyCallback$Outbound | undefined; -}; - -/** @internal */ -export const NotificationStepVariant$outboundSchema: z.ZodType< - NotificationStepVariant$Outbound, - z.ZodTypeDef, - NotificationStepVariant -> = z.object({ - id: z.string().optional(), - uuid: z.string().optional(), - name: z.string().optional(), - templateId: z.string().optional(), - active: z.boolean().optional(), - shouldStopOnFail: z.boolean().optional(), - template: MessageTemplate$outboundSchema.optional(), - filters: z.array(StepFilter$outboundSchema).optional(), - parentId: z.lazy(() => NotificationStepVariantParentId$outboundSchema) - .optional(), - metadata: z.union([ - DelayScheduledMetadata$outboundSchema, - DelayRegularMetadata$outboundSchema, - DigestTimedMetadata$outboundSchema, - DigestRegularMetadata$outboundSchema, - ]).optional(), - replyCallback: z.lazy(() => - NotificationStepVariantReplyCallback$outboundSchema - ).optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - templateId: "_templateId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationStepVariant$ { - /** @deprecated use `NotificationStepVariant$inboundSchema` instead. */ - export const inboundSchema = NotificationStepVariant$inboundSchema; - /** @deprecated use `NotificationStepVariant$outboundSchema` instead. */ - export const outboundSchema = NotificationStepVariant$outboundSchema; - /** @deprecated use `NotificationStepVariant$Outbound` instead. */ - export type Outbound = NotificationStepVariant$Outbound; -} - -export function notificationStepVariantToJSON( - notificationStepVariant: NotificationStepVariant, -): string { - return JSON.stringify( - NotificationStepVariant$outboundSchema.parse(notificationStepVariant), - ); -} - -export function notificationStepVariantFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationStepVariant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationStepVariant' from JSON`, - ); -} diff --git a/src/models/components/notificationtrigger.ts b/src/models/components/notificationtrigger.ts deleted file mode 100644 index 60397393..00000000 --- a/src/models/components/notificationtrigger.ts +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - NotificationTriggerVariable, - NotificationTriggerVariable$inboundSchema, - NotificationTriggerVariable$Outbound, - NotificationTriggerVariable$outboundSchema, -} from "./notificationtriggervariable.js"; - -export const NotificationTriggerType = { - Event: "event", -} as const; -export type NotificationTriggerType = ClosedEnum< - typeof NotificationTriggerType ->; - -export type NotificationTrigger = { - type: NotificationTriggerType; - identifier: string; - variables: Array; - subscriberVariables?: Array | undefined; -}; - -/** @internal */ -export const NotificationTriggerType$inboundSchema: z.ZodNativeEnum< - typeof NotificationTriggerType -> = z.nativeEnum(NotificationTriggerType); - -/** @internal */ -export const NotificationTriggerType$outboundSchema: z.ZodNativeEnum< - typeof NotificationTriggerType -> = NotificationTriggerType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationTriggerType$ { - /** @deprecated use `NotificationTriggerType$inboundSchema` instead. */ - export const inboundSchema = NotificationTriggerType$inboundSchema; - /** @deprecated use `NotificationTriggerType$outboundSchema` instead. */ - export const outboundSchema = NotificationTriggerType$outboundSchema; -} - -/** @internal */ -export const NotificationTrigger$inboundSchema: z.ZodType< - NotificationTrigger, - z.ZodTypeDef, - unknown -> = z.object({ - type: NotificationTriggerType$inboundSchema, - identifier: z.string(), - variables: z.array(NotificationTriggerVariable$inboundSchema), - subscriberVariables: z.array(NotificationTriggerVariable$inboundSchema) - .optional(), -}); - -/** @internal */ -export type NotificationTrigger$Outbound = { - type: string; - identifier: string; - variables: Array; - subscriberVariables?: Array | undefined; -}; - -/** @internal */ -export const NotificationTrigger$outboundSchema: z.ZodType< - NotificationTrigger$Outbound, - z.ZodTypeDef, - NotificationTrigger -> = z.object({ - type: NotificationTriggerType$outboundSchema, - identifier: z.string(), - variables: z.array(NotificationTriggerVariable$outboundSchema), - subscriberVariables: z.array(NotificationTriggerVariable$outboundSchema) - .optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationTrigger$ { - /** @deprecated use `NotificationTrigger$inboundSchema` instead. */ - export const inboundSchema = NotificationTrigger$inboundSchema; - /** @deprecated use `NotificationTrigger$outboundSchema` instead. */ - export const outboundSchema = NotificationTrigger$outboundSchema; - /** @deprecated use `NotificationTrigger$Outbound` instead. */ - export type Outbound = NotificationTrigger$Outbound; -} - -export function notificationTriggerToJSON( - notificationTrigger: NotificationTrigger, -): string { - return JSON.stringify( - NotificationTrigger$outboundSchema.parse(notificationTrigger), - ); -} - -export function notificationTriggerFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationTrigger$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationTrigger' from JSON`, - ); -} diff --git a/src/models/components/notificationtriggervariable.ts b/src/models/components/notificationtriggervariable.ts deleted file mode 100644 index e8961c30..00000000 --- a/src/models/components/notificationtriggervariable.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationTriggerVariable = { - name: string; -}; - -/** @internal */ -export const NotificationTriggerVariable$inboundSchema: z.ZodType< - NotificationTriggerVariable, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string(), -}); - -/** @internal */ -export type NotificationTriggerVariable$Outbound = { - name: string; -}; - -/** @internal */ -export const NotificationTriggerVariable$outboundSchema: z.ZodType< - NotificationTriggerVariable$Outbound, - z.ZodTypeDef, - NotificationTriggerVariable -> = z.object({ - name: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationTriggerVariable$ { - /** @deprecated use `NotificationTriggerVariable$inboundSchema` instead. */ - export const inboundSchema = NotificationTriggerVariable$inboundSchema; - /** @deprecated use `NotificationTriggerVariable$outboundSchema` instead. */ - export const outboundSchema = NotificationTriggerVariable$outboundSchema; - /** @deprecated use `NotificationTriggerVariable$Outbound` instead. */ - export type Outbound = NotificationTriggerVariable$Outbound; -} - -export function notificationTriggerVariableToJSON( - notificationTriggerVariable: NotificationTriggerVariable, -): string { - return JSON.stringify( - NotificationTriggerVariable$outboundSchema.parse( - notificationTriggerVariable, - ), - ); -} - -export function notificationTriggerVariableFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => NotificationTriggerVariable$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NotificationTriggerVariable' from JSON`, - ); -} diff --git a/src/models/components/organizationbrandingresponsedto.ts b/src/models/components/organizationbrandingresponsedto.ts deleted file mode 100644 index 8f59189d..00000000 --- a/src/models/components/organizationbrandingresponsedto.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { ClosedEnum } from "../../types/enums.js"; - -export const Direction = { - Ltr: "ltr", - Trl: "trl", -} as const; -export type Direction = ClosedEnum; - -export type OrganizationBrandingResponseDto = { - color: string; - contentBackground: string; - direction?: Direction | undefined; - fontColor: string; - fontFamily?: string | undefined; - logo: string; -}; - -/** @internal */ -export const Direction$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Direction); - -/** @internal */ -export const Direction$outboundSchema: z.ZodNativeEnum = - Direction$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Direction$ { - /** @deprecated use `Direction$inboundSchema` instead. */ - export const inboundSchema = Direction$inboundSchema; - /** @deprecated use `Direction$outboundSchema` instead. */ - export const outboundSchema = Direction$outboundSchema; -} - -/** @internal */ -export const OrganizationBrandingResponseDto$inboundSchema: z.ZodType< - OrganizationBrandingResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - color: z.string(), - contentBackground: z.string(), - direction: Direction$inboundSchema.optional(), - fontColor: z.string(), - fontFamily: z.string().optional(), - logo: z.string(), -}); - -/** @internal */ -export type OrganizationBrandingResponseDto$Outbound = { - color: string; - contentBackground: string; - direction?: string | undefined; - fontColor: string; - fontFamily?: string | undefined; - logo: string; -}; - -/** @internal */ -export const OrganizationBrandingResponseDto$outboundSchema: z.ZodType< - OrganizationBrandingResponseDto$Outbound, - z.ZodTypeDef, - OrganizationBrandingResponseDto -> = z.object({ - color: z.string(), - contentBackground: z.string(), - direction: Direction$outboundSchema.optional(), - fontColor: z.string(), - fontFamily: z.string().optional(), - logo: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace OrganizationBrandingResponseDto$ { - /** @deprecated use `OrganizationBrandingResponseDto$inboundSchema` instead. */ - export const inboundSchema = OrganizationBrandingResponseDto$inboundSchema; - /** @deprecated use `OrganizationBrandingResponseDto$outboundSchema` instead. */ - export const outboundSchema = OrganizationBrandingResponseDto$outboundSchema; - /** @deprecated use `OrganizationBrandingResponseDto$Outbound` instead. */ - export type Outbound = OrganizationBrandingResponseDto$Outbound; -} diff --git a/src/models/components/organizationresponsedto.ts b/src/models/components/organizationresponsedto.ts deleted file mode 100644 index adce10a6..00000000 --- a/src/models/components/organizationresponsedto.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { - OrganizationBrandingResponseDto, - OrganizationBrandingResponseDto$inboundSchema, - OrganizationBrandingResponseDto$Outbound, - OrganizationBrandingResponseDto$outboundSchema, -} from "./organizationbrandingresponsedto.js"; - -export type OrganizationResponseDto = { - branding: OrganizationBrandingResponseDto; - logo?: string | undefined; - name: string; - partnerConfigurations?: Array | undefined; -}; - -/** @internal */ -export const OrganizationResponseDto$inboundSchema: z.ZodType< - OrganizationResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - branding: OrganizationBrandingResponseDto$inboundSchema, - logo: z.string().optional(), - name: z.string(), - partnerConfigurations: z.array(z.string()).optional(), -}); - -/** @internal */ -export type OrganizationResponseDto$Outbound = { - branding: OrganizationBrandingResponseDto$Outbound; - logo?: string | undefined; - name: string; - partnerConfigurations?: Array | undefined; -}; - -/** @internal */ -export const OrganizationResponseDto$outboundSchema: z.ZodType< - OrganizationResponseDto$Outbound, - z.ZodTypeDef, - OrganizationResponseDto -> = z.object({ - branding: OrganizationBrandingResponseDto$outboundSchema, - logo: z.string().optional(), - name: z.string(), - partnerConfigurations: z.array(z.string()).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace OrganizationResponseDto$ { - /** @deprecated use `OrganizationResponseDto$inboundSchema` instead. */ - export const inboundSchema = OrganizationResponseDto$inboundSchema; - /** @deprecated use `OrganizationResponseDto$outboundSchema` instead. */ - export const outboundSchema = OrganizationResponseDto$outboundSchema; - /** @deprecated use `OrganizationResponseDto$Outbound` instead. */ - export type Outbound = OrganizationResponseDto$Outbound; -} diff --git a/src/models/components/preference.ts b/src/models/components/preference.ts deleted file mode 100644 index bdee77a4..00000000 --- a/src/models/components/preference.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - PreferenceChannels, - PreferenceChannels$inboundSchema, - PreferenceChannels$Outbound, - PreferenceChannels$outboundSchema, -} from "./preferencechannels.js"; - -export type Preference = { - /** - * Sets if the workflow is fully enabled for all channels or not for the subscriber. - */ - enabled: boolean; - /** - * Subscriber preferences for the different channels regarding this workflow - */ - channels: PreferenceChannels; -}; - -/** @internal */ -export const Preference$inboundSchema: z.ZodType< - Preference, - z.ZodTypeDef, - unknown -> = z.object({ - enabled: z.boolean(), - channels: PreferenceChannels$inboundSchema, -}); - -/** @internal */ -export type Preference$Outbound = { - enabled: boolean; - channels: PreferenceChannels$Outbound; -}; - -/** @internal */ -export const Preference$outboundSchema: z.ZodType< - Preference$Outbound, - z.ZodTypeDef, - Preference -> = z.object({ - enabled: z.boolean(), - channels: PreferenceChannels$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Preference$ { - /** @deprecated use `Preference$inboundSchema` instead. */ - export const inboundSchema = Preference$inboundSchema; - /** @deprecated use `Preference$outboundSchema` instead. */ - export const outboundSchema = Preference$outboundSchema; - /** @deprecated use `Preference$Outbound` instead. */ - export type Outbound = Preference$Outbound; -} - -export function preferenceToJSON(preference: Preference): string { - return JSON.stringify(Preference$outboundSchema.parse(preference)); -} - -export function preferenceFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Preference$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Preference' from JSON`, - ); -} diff --git a/src/models/components/preferencechannels.ts b/src/models/components/preferencechannels.ts deleted file mode 100644 index b4022c33..00000000 --- a/src/models/components/preferencechannels.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type PreferenceChannels = { - email?: boolean | undefined; - sms?: boolean | undefined; - inApp?: boolean | undefined; - chat?: boolean | undefined; - push?: boolean | undefined; -}; - -/** @internal */ -export const PreferenceChannels$inboundSchema: z.ZodType< - PreferenceChannels, - z.ZodTypeDef, - unknown -> = z.object({ - email: z.boolean().optional(), - sms: z.boolean().optional(), - in_app: z.boolean().optional(), - chat: z.boolean().optional(), - push: z.boolean().optional(), -}).transform((v) => { - return remap$(v, { - "in_app": "inApp", - }); -}); - -/** @internal */ -export type PreferenceChannels$Outbound = { - email?: boolean | undefined; - sms?: boolean | undefined; - in_app?: boolean | undefined; - chat?: boolean | undefined; - push?: boolean | undefined; -}; - -/** @internal */ -export const PreferenceChannels$outboundSchema: z.ZodType< - PreferenceChannels$Outbound, - z.ZodTypeDef, - PreferenceChannels -> = z.object({ - email: z.boolean().optional(), - sms: z.boolean().optional(), - inApp: z.boolean().optional(), - chat: z.boolean().optional(), - push: z.boolean().optional(), -}).transform((v) => { - return remap$(v, { - inApp: "in_app", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace PreferenceChannels$ { - /** @deprecated use `PreferenceChannels$inboundSchema` instead. */ - export const inboundSchema = PreferenceChannels$inboundSchema; - /** @deprecated use `PreferenceChannels$outboundSchema` instead. */ - export const outboundSchema = PreferenceChannels$outboundSchema; - /** @deprecated use `PreferenceChannels$Outbound` instead. */ - export type Outbound = PreferenceChannels$Outbound; -} - -export function preferenceChannelsToJSON( - preferenceChannels: PreferenceChannels, -): string { - return JSON.stringify( - PreferenceChannels$outboundSchema.parse(preferenceChannels), - ); -} - -export function preferenceChannelsFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => PreferenceChannels$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'PreferenceChannels' from JSON`, - ); -} diff --git a/src/models/components/removesubscribersrequestdto.ts b/src/models/components/removesubscribersrequestdto.ts deleted file mode 100644 index 963a2092..00000000 --- a/src/models/components/removesubscribersrequestdto.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type RemoveSubscribersRequestDto = { - /** - * List of subscriber identifiers that will be removed to the topic - */ - subscribers: Array; -}; - -/** @internal */ -export const RemoveSubscribersRequestDto$inboundSchema: z.ZodType< - RemoveSubscribersRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - subscribers: z.array(z.string()), -}); - -/** @internal */ -export type RemoveSubscribersRequestDto$Outbound = { - subscribers: Array; -}; - -/** @internal */ -export const RemoveSubscribersRequestDto$outboundSchema: z.ZodType< - RemoveSubscribersRequestDto$Outbound, - z.ZodTypeDef, - RemoveSubscribersRequestDto -> = z.object({ - subscribers: z.array(z.string()), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace RemoveSubscribersRequestDto$ { - /** @deprecated use `RemoveSubscribersRequestDto$inboundSchema` instead. */ - export const inboundSchema = RemoveSubscribersRequestDto$inboundSchema; - /** @deprecated use `RemoveSubscribersRequestDto$outboundSchema` instead. */ - export const outboundSchema = RemoveSubscribersRequestDto$outboundSchema; - /** @deprecated use `RemoveSubscribersRequestDto$Outbound` instead. */ - export type Outbound = RemoveSubscribersRequestDto$Outbound; -} - -export function removeSubscribersRequestDtoToJSON( - removeSubscribersRequestDto: RemoveSubscribersRequestDto, -): string { - return JSON.stringify( - RemoveSubscribersRequestDto$outboundSchema.parse( - removeSubscribersRequestDto, - ), - ); -} - -export function removeSubscribersRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => RemoveSubscribersRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'RemoveSubscribersRequestDto' from JSON`, - ); -} diff --git a/src/models/components/renameorganizationdto.ts b/src/models/components/renameorganizationdto.ts deleted file mode 100644 index c0d1d6dd..00000000 --- a/src/models/components/renameorganizationdto.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type RenameOrganizationDto = { - name: string; -}; - -/** @internal */ -export const RenameOrganizationDto$inboundSchema: z.ZodType< - RenameOrganizationDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string(), -}); - -/** @internal */ -export type RenameOrganizationDto$Outbound = { - name: string; -}; - -/** @internal */ -export const RenameOrganizationDto$outboundSchema: z.ZodType< - RenameOrganizationDto$Outbound, - z.ZodTypeDef, - RenameOrganizationDto -> = z.object({ - name: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace RenameOrganizationDto$ { - /** @deprecated use `RenameOrganizationDto$inboundSchema` instead. */ - export const inboundSchema = RenameOrganizationDto$inboundSchema; - /** @deprecated use `RenameOrganizationDto$outboundSchema` instead. */ - export const outboundSchema = RenameOrganizationDto$outboundSchema; - /** @deprecated use `RenameOrganizationDto$Outbound` instead. */ - export type Outbound = RenameOrganizationDto$Outbound; -} diff --git a/src/models/components/renametopicrequestdto.ts b/src/models/components/renametopicrequestdto.ts deleted file mode 100644 index fd03c301..00000000 --- a/src/models/components/renametopicrequestdto.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type RenameTopicRequestDto = { - /** - * User defined custom name and provided by the user to rename the topic. - */ - name: string; -}; - -/** @internal */ -export const RenameTopicRequestDto$inboundSchema: z.ZodType< - RenameTopicRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string(), -}); - -/** @internal */ -export type RenameTopicRequestDto$Outbound = { - name: string; -}; - -/** @internal */ -export const RenameTopicRequestDto$outboundSchema: z.ZodType< - RenameTopicRequestDto$Outbound, - z.ZodTypeDef, - RenameTopicRequestDto -> = z.object({ - name: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace RenameTopicRequestDto$ { - /** @deprecated use `RenameTopicRequestDto$inboundSchema` instead. */ - export const inboundSchema = RenameTopicRequestDto$inboundSchema; - /** @deprecated use `RenameTopicRequestDto$outboundSchema` instead. */ - export const outboundSchema = RenameTopicRequestDto$outboundSchema; - /** @deprecated use `RenameTopicRequestDto$Outbound` instead. */ - export type Outbound = RenameTopicRequestDto$Outbound; -} - -export function renameTopicRequestDtoToJSON( - renameTopicRequestDto: RenameTopicRequestDto, -): string { - return JSON.stringify( - RenameTopicRequestDto$outboundSchema.parse(renameTopicRequestDto), - ); -} - -export function renameTopicRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => RenameTopicRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'RenameTopicRequestDto' from JSON`, - ); -} diff --git a/src/models/components/renametopicresponsedto.ts b/src/models/components/renametopicresponsedto.ts deleted file mode 100644 index b993443b..00000000 --- a/src/models/components/renametopicresponsedto.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type RenameTopicResponseDto = { - id?: string | undefined; - organizationId: string; - environmentId: string; - key: string; - name: string; - subscribers: Array; -}; - -/** @internal */ -export const RenameTopicResponseDto$inboundSchema: z.ZodType< - RenameTopicResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - _organizationId: z.string(), - _environmentId: z.string(), - key: z.string(), - name: z.string(), - subscribers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_organizationId": "organizationId", - "_environmentId": "environmentId", - }); -}); - -/** @internal */ -export type RenameTopicResponseDto$Outbound = { - _id?: string | undefined; - _organizationId: string; - _environmentId: string; - key: string; - name: string; - subscribers: Array; -}; - -/** @internal */ -export const RenameTopicResponseDto$outboundSchema: z.ZodType< - RenameTopicResponseDto$Outbound, - z.ZodTypeDef, - RenameTopicResponseDto -> = z.object({ - id: z.string().optional(), - organizationId: z.string(), - environmentId: z.string(), - key: z.string(), - name: z.string(), - subscribers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - id: "_id", - organizationId: "_organizationId", - environmentId: "_environmentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace RenameTopicResponseDto$ { - /** @deprecated use `RenameTopicResponseDto$inboundSchema` instead. */ - export const inboundSchema = RenameTopicResponseDto$inboundSchema; - /** @deprecated use `RenameTopicResponseDto$outboundSchema` instead. */ - export const outboundSchema = RenameTopicResponseDto$outboundSchema; - /** @deprecated use `RenameTopicResponseDto$Outbound` instead. */ - export type Outbound = RenameTopicResponseDto$Outbound; -} - -export function renameTopicResponseDtoToJSON( - renameTopicResponseDto: RenameTopicResponseDto, -): string { - return JSON.stringify( - RenameTopicResponseDto$outboundSchema.parse(renameTopicResponseDto), - ); -} - -export function renameTopicResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => RenameTopicResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'RenameTopicResponseDto' from JSON`, - ); -} diff --git a/src/models/components/security.ts b/src/models/components/security.ts deleted file mode 100644 index 8000a90c..00000000 --- a/src/models/components/security.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type Security = { - apiKey: string; -}; - -/** @internal */ -export const Security$inboundSchema: z.ZodType< - Security, - z.ZodTypeDef, - unknown -> = z.object({ - "api-key": z.string(), -}).transform((v) => { - return remap$(v, { - "api-key": "apiKey", - }); -}); - -/** @internal */ -export type Security$Outbound = { - "api-key": string; -}; - -/** @internal */ -export const Security$outboundSchema: z.ZodType< - Security$Outbound, - z.ZodTypeDef, - Security -> = z.object({ - apiKey: z.string(), -}).transform((v) => { - return remap$(v, { - apiKey: "api-key", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Security$ { - /** @deprecated use `Security$inboundSchema` instead. */ - export const inboundSchema = Security$inboundSchema; - /** @deprecated use `Security$outboundSchema` instead. */ - export const outboundSchema = Security$outboundSchema; - /** @deprecated use `Security$Outbound` instead. */ - export type Outbound = Security$Outbound; -} - -export function securityToJSON(security: Security): string { - return JSON.stringify(Security$outboundSchema.parse(security)); -} - -export function securityFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Security$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Security' from JSON`, - ); -} diff --git a/src/models/components/stepfilter.ts b/src/models/components/stepfilter.ts deleted file mode 100644 index 4ad0efc6..00000000 --- a/src/models/components/stepfilter.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - FieldFilterPart, - FieldFilterPart$inboundSchema, - FieldFilterPart$Outbound, - FieldFilterPart$outboundSchema, -} from "./fieldfilterpart.js"; - -export const StepFilterType = { - Boolean: "BOOLEAN", - Text: "TEXT", - Date: "DATE", - Number: "NUMBER", - Statement: "STATEMENT", - List: "LIST", - MultiList: "MULTI_LIST", - Group: "GROUP", -} as const; -export type StepFilterType = ClosedEnum; - -export const Value = { - And: "AND", - Or: "OR", -} as const; -export type Value = ClosedEnum; - -export type StepFilter = { - isNegated: boolean; - type: StepFilterType; - value: Value; - children: Array; -}; - -/** @internal */ -export const StepFilterType$inboundSchema: z.ZodNativeEnum< - typeof StepFilterType -> = z.nativeEnum(StepFilterType); - -/** @internal */ -export const StepFilterType$outboundSchema: z.ZodNativeEnum< - typeof StepFilterType -> = StepFilterType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace StepFilterType$ { - /** @deprecated use `StepFilterType$inboundSchema` instead. */ - export const inboundSchema = StepFilterType$inboundSchema; - /** @deprecated use `StepFilterType$outboundSchema` instead. */ - export const outboundSchema = StepFilterType$outboundSchema; -} - -/** @internal */ -export const Value$inboundSchema: z.ZodNativeEnum = z.nativeEnum( - Value, -); - -/** @internal */ -export const Value$outboundSchema: z.ZodNativeEnum = - Value$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Value$ { - /** @deprecated use `Value$inboundSchema` instead. */ - export const inboundSchema = Value$inboundSchema; - /** @deprecated use `Value$outboundSchema` instead. */ - export const outboundSchema = Value$outboundSchema; -} - -/** @internal */ -export const StepFilter$inboundSchema: z.ZodType< - StepFilter, - z.ZodTypeDef, - unknown -> = z.object({ - isNegated: z.boolean(), - type: StepFilterType$inboundSchema, - value: Value$inboundSchema, - children: z.array(FieldFilterPart$inboundSchema), -}); - -/** @internal */ -export type StepFilter$Outbound = { - isNegated: boolean; - type: string; - value: string; - children: Array; -}; - -/** @internal */ -export const StepFilter$outboundSchema: z.ZodType< - StepFilter$Outbound, - z.ZodTypeDef, - StepFilter -> = z.object({ - isNegated: z.boolean(), - type: StepFilterType$outboundSchema, - value: Value$outboundSchema, - children: z.array(FieldFilterPart$outboundSchema), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace StepFilter$ { - /** @deprecated use `StepFilter$inboundSchema` instead. */ - export const inboundSchema = StepFilter$inboundSchema; - /** @deprecated use `StepFilter$outboundSchema` instead. */ - export const outboundSchema = StepFilter$outboundSchema; - /** @deprecated use `StepFilter$Outbound` instead. */ - export type Outbound = StepFilter$Outbound; -} - -export function stepFilterToJSON(stepFilter: StepFilter): string { - return JSON.stringify(StepFilter$outboundSchema.parse(stepFilter)); -} - -export function stepFilterFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => StepFilter$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'StepFilter' from JSON`, - ); -} diff --git a/src/models/components/subscriberpayloaddto.ts b/src/models/components/subscriberpayloaddto.ts deleted file mode 100644 index da926aad..00000000 --- a/src/models/components/subscriberpayloaddto.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type Data = {}; - -export type SubscriberPayloadDto = { - /** - * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - */ - subscriberId: string; - email?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - phone?: string | undefined; - /** - * An http url to the profile image of your subscriber - */ - avatar?: string | undefined; - locale?: string | undefined; - data?: Data | undefined; - channels?: Array | undefined; -}; - -/** @internal */ -export const Data$inboundSchema: z.ZodType = z - .object({}); - -/** @internal */ -export type Data$Outbound = {}; - -/** @internal */ -export const Data$outboundSchema: z.ZodType = - z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Data$ { - /** @deprecated use `Data$inboundSchema` instead. */ - export const inboundSchema = Data$inboundSchema; - /** @deprecated use `Data$outboundSchema` instead. */ - export const outboundSchema = Data$outboundSchema; - /** @deprecated use `Data$Outbound` instead. */ - export type Outbound = Data$Outbound; -} - -export function dataToJSON(data: Data): string { - return JSON.stringify(Data$outboundSchema.parse(data)); -} - -export function dataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Data$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Data' from JSON`, - ); -} - -/** @internal */ -export const SubscriberPayloadDto$inboundSchema: z.ZodType< - SubscriberPayloadDto, - z.ZodTypeDef, - unknown -> = z.object({ - subscriberId: z.string(), - email: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - data: z.lazy(() => Data$inboundSchema).optional(), - channels: z.array(z.string()).optional(), -}); - -/** @internal */ -export type SubscriberPayloadDto$Outbound = { - subscriberId: string; - email?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - phone?: string | undefined; - avatar?: string | undefined; - locale?: string | undefined; - data?: Data$Outbound | undefined; - channels?: Array | undefined; -}; - -/** @internal */ -export const SubscriberPayloadDto$outboundSchema: z.ZodType< - SubscriberPayloadDto$Outbound, - z.ZodTypeDef, - SubscriberPayloadDto -> = z.object({ - subscriberId: z.string(), - email: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - data: z.lazy(() => Data$outboundSchema).optional(), - channels: z.array(z.string()).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscriberPayloadDto$ { - /** @deprecated use `SubscriberPayloadDto$inboundSchema` instead. */ - export const inboundSchema = SubscriberPayloadDto$inboundSchema; - /** @deprecated use `SubscriberPayloadDto$outboundSchema` instead. */ - export const outboundSchema = SubscriberPayloadDto$outboundSchema; - /** @deprecated use `SubscriberPayloadDto$Outbound` instead. */ - export type Outbound = SubscriberPayloadDto$Outbound; -} - -export function subscriberPayloadDtoToJSON( - subscriberPayloadDto: SubscriberPayloadDto, -): string { - return JSON.stringify( - SubscriberPayloadDto$outboundSchema.parse(subscriberPayloadDto), - ); -} - -export function subscriberPayloadDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => SubscriberPayloadDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SubscriberPayloadDto' from JSON`, - ); -} diff --git a/src/models/components/subscriberresponsedto.ts b/src/models/components/subscriberresponsedto.ts deleted file mode 100644 index 24f069d6..00000000 --- a/src/models/components/subscriberresponsedto.ts +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - ChannelSettings, - ChannelSettings$inboundSchema, - ChannelSettings$Outbound, - ChannelSettings$outboundSchema, -} from "./channelsettings.js"; - -export type SubscriberResponseDto = { - /** - * The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - */ - id?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - email?: string | undefined; - phone?: string | undefined; - avatar?: string | undefined; - locale?: string | undefined; - /** - * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - */ - subscriberId: string; - /** - * Channels settings for subscriber - */ - channels?: Array | undefined; - /** - * Topics that subscriber belongs to - */ - topics?: Array | undefined; - isOnline?: boolean | undefined; - lastOnlineAt?: string | undefined; - organizationId: string; - environmentId: string; - deleted: boolean; - createdAt: string; - updatedAt: string; - v?: number | undefined; -}; - -/** @internal */ -export const SubscriberResponseDto$inboundSchema: z.ZodType< - SubscriberResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - email: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - subscriberId: z.string(), - channels: z.array(ChannelSettings$inboundSchema).optional(), - topics: z.array(z.string()).optional(), - isOnline: z.boolean().optional(), - lastOnlineAt: z.string().optional(), - _organizationId: z.string(), - _environmentId: z.string(), - deleted: z.boolean(), - createdAt: z.string(), - updatedAt: z.string(), - __v: z.number().optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_organizationId": "organizationId", - "_environmentId": "environmentId", - "__v": "v", - }); -}); - -/** @internal */ -export type SubscriberResponseDto$Outbound = { - _id?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - email?: string | undefined; - phone?: string | undefined; - avatar?: string | undefined; - locale?: string | undefined; - subscriberId: string; - channels?: Array | undefined; - topics?: Array | undefined; - isOnline?: boolean | undefined; - lastOnlineAt?: string | undefined; - _organizationId: string; - _environmentId: string; - deleted: boolean; - createdAt: string; - updatedAt: string; - __v?: number | undefined; -}; - -/** @internal */ -export const SubscriberResponseDto$outboundSchema: z.ZodType< - SubscriberResponseDto$Outbound, - z.ZodTypeDef, - SubscriberResponseDto -> = z.object({ - id: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - email: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - subscriberId: z.string(), - channels: z.array(ChannelSettings$outboundSchema).optional(), - topics: z.array(z.string()).optional(), - isOnline: z.boolean().optional(), - lastOnlineAt: z.string().optional(), - organizationId: z.string(), - environmentId: z.string(), - deleted: z.boolean(), - createdAt: z.string(), - updatedAt: z.string(), - v: z.number().optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - organizationId: "_organizationId", - environmentId: "_environmentId", - v: "__v", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscriberResponseDto$ { - /** @deprecated use `SubscriberResponseDto$inboundSchema` instead. */ - export const inboundSchema = SubscriberResponseDto$inboundSchema; - /** @deprecated use `SubscriberResponseDto$outboundSchema` instead. */ - export const outboundSchema = SubscriberResponseDto$outboundSchema; - /** @deprecated use `SubscriberResponseDto$Outbound` instead. */ - export type Outbound = SubscriberResponseDto$Outbound; -} - -export function subscriberResponseDtoToJSON( - subscriberResponseDto: SubscriberResponseDto, -): string { - return JSON.stringify( - SubscriberResponseDto$outboundSchema.parse(subscriberResponseDto), - ); -} - -export function subscriberResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => SubscriberResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SubscriberResponseDto' from JSON`, - ); -} diff --git a/src/models/components/templateresponse.ts b/src/models/components/templateresponse.ts deleted file mode 100644 index 04894f27..00000000 --- a/src/models/components/templateresponse.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TemplateResponse = { - /** - * Unique identifier of the workflow - */ - id: string; - /** - * Name of the workflow - */ - name: string; - /** - * Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - */ - critical: boolean; - /** - * Triggers are the events that will trigger the workflow. - */ - triggers: Array; -}; - -/** @internal */ -export const TemplateResponse$inboundSchema: z.ZodType< - TemplateResponse, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string(), - name: z.string(), - critical: z.boolean(), - triggers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - "_id": "id", - }); -}); - -/** @internal */ -export type TemplateResponse$Outbound = { - _id: string; - name: string; - critical: boolean; - triggers: Array; -}; - -/** @internal */ -export const TemplateResponse$outboundSchema: z.ZodType< - TemplateResponse$Outbound, - z.ZodTypeDef, - TemplateResponse -> = z.object({ - id: z.string(), - name: z.string(), - critical: z.boolean(), - triggers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TemplateResponse$ { - /** @deprecated use `TemplateResponse$inboundSchema` instead. */ - export const inboundSchema = TemplateResponse$inboundSchema; - /** @deprecated use `TemplateResponse$outboundSchema` instead. */ - export const outboundSchema = TemplateResponse$outboundSchema; - /** @deprecated use `TemplateResponse$Outbound` instead. */ - export type Outbound = TemplateResponse$Outbound; -} - -export function templateResponseToJSON( - templateResponse: TemplateResponse, -): string { - return JSON.stringify( - TemplateResponse$outboundSchema.parse(templateResponse), - ); -} - -export function templateResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TemplateResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TemplateResponse' from JSON`, - ); -} diff --git a/src/models/components/tenantpayloaddto.ts b/src/models/components/tenantpayloaddto.ts deleted file mode 100644 index 25a1ac9d..00000000 --- a/src/models/components/tenantpayloaddto.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TenantPayloadDtoData = {}; - -export type TenantPayloadDto = { - identifier?: string | undefined; - name?: string | undefined; - data?: TenantPayloadDtoData | undefined; -}; - -/** @internal */ -export const TenantPayloadDtoData$inboundSchema: z.ZodType< - TenantPayloadDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type TenantPayloadDtoData$Outbound = {}; - -/** @internal */ -export const TenantPayloadDtoData$outboundSchema: z.ZodType< - TenantPayloadDtoData$Outbound, - z.ZodTypeDef, - TenantPayloadDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantPayloadDtoData$ { - /** @deprecated use `TenantPayloadDtoData$inboundSchema` instead. */ - export const inboundSchema = TenantPayloadDtoData$inboundSchema; - /** @deprecated use `TenantPayloadDtoData$outboundSchema` instead. */ - export const outboundSchema = TenantPayloadDtoData$outboundSchema; - /** @deprecated use `TenantPayloadDtoData$Outbound` instead. */ - export type Outbound = TenantPayloadDtoData$Outbound; -} - -export function tenantPayloadDtoDataToJSON( - tenantPayloadDtoData: TenantPayloadDtoData, -): string { - return JSON.stringify( - TenantPayloadDtoData$outboundSchema.parse(tenantPayloadDtoData), - ); -} - -export function tenantPayloadDtoDataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TenantPayloadDtoData$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TenantPayloadDtoData' from JSON`, - ); -} - -/** @internal */ -export const TenantPayloadDto$inboundSchema: z.ZodType< - TenantPayloadDto, - z.ZodTypeDef, - unknown -> = z.object({ - identifier: z.string().optional(), - name: z.string().optional(), - data: z.lazy(() => TenantPayloadDtoData$inboundSchema).optional(), -}); - -/** @internal */ -export type TenantPayloadDto$Outbound = { - identifier?: string | undefined; - name?: string | undefined; - data?: TenantPayloadDtoData$Outbound | undefined; -}; - -/** @internal */ -export const TenantPayloadDto$outboundSchema: z.ZodType< - TenantPayloadDto$Outbound, - z.ZodTypeDef, - TenantPayloadDto -> = z.object({ - identifier: z.string().optional(), - name: z.string().optional(), - data: z.lazy(() => TenantPayloadDtoData$outboundSchema).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantPayloadDto$ { - /** @deprecated use `TenantPayloadDto$inboundSchema` instead. */ - export const inboundSchema = TenantPayloadDto$inboundSchema; - /** @deprecated use `TenantPayloadDto$outboundSchema` instead. */ - export const outboundSchema = TenantPayloadDto$outboundSchema; - /** @deprecated use `TenantPayloadDto$Outbound` instead. */ - export type Outbound = TenantPayloadDto$Outbound; -} - -export function tenantPayloadDtoToJSON( - tenantPayloadDto: TenantPayloadDto, -): string { - return JSON.stringify( - TenantPayloadDto$outboundSchema.parse(tenantPayloadDto), - ); -} - -export function tenantPayloadDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TenantPayloadDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TenantPayloadDto' from JSON`, - ); -} diff --git a/src/models/components/timedconfig.ts b/src/models/components/timedconfig.ts deleted file mode 100644 index 15330964..00000000 --- a/src/models/components/timedconfig.ts +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const WeekDays = { - Monday: "monday", - Tuesday: "tuesday", - Wednesday: "wednesday", - Thursday: "thursday", - Friday: "friday", - Saturday: "saturday", - Sunday: "sunday", -} as const; -export type WeekDays = ClosedEnum; - -export const Ordinal = { - One: "1", - Two: "2", - Three: "3", - Four: "4", - Five: "5", - Last: "last", -} as const; -export type Ordinal = ClosedEnum; - -export const OrdinalValue = { - Day: "day", - Weekday: "weekday", - Weekend: "weekend", - Sunday: "sunday", - Monday: "monday", - Tuesday: "tuesday", - Wednesday: "wednesday", - Thursday: "thursday", - Friday: "friday", - Saturday: "saturday", -} as const; -export type OrdinalValue = ClosedEnum; - -export const MonthlyType = { - Each: "each", - On: "on", -} as const; -export type MonthlyType = ClosedEnum; - -export type TimedConfig = { - atTime?: string | undefined; - weekDays?: Array | undefined; - monthDays?: Array | undefined; - ordinal?: Ordinal | undefined; - ordinalValue?: OrdinalValue | undefined; - monthlyType?: MonthlyType | undefined; -}; - -/** @internal */ -export const WeekDays$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(WeekDays); - -/** @internal */ -export const WeekDays$outboundSchema: z.ZodNativeEnum = - WeekDays$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WeekDays$ { - /** @deprecated use `WeekDays$inboundSchema` instead. */ - export const inboundSchema = WeekDays$inboundSchema; - /** @deprecated use `WeekDays$outboundSchema` instead. */ - export const outboundSchema = WeekDays$outboundSchema; -} - -/** @internal */ -export const Ordinal$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Ordinal); - -/** @internal */ -export const Ordinal$outboundSchema: z.ZodNativeEnum = - Ordinal$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Ordinal$ { - /** @deprecated use `Ordinal$inboundSchema` instead. */ - export const inboundSchema = Ordinal$inboundSchema; - /** @deprecated use `Ordinal$outboundSchema` instead. */ - export const outboundSchema = Ordinal$outboundSchema; -} - -/** @internal */ -export const OrdinalValue$inboundSchema: z.ZodNativeEnum = - z.nativeEnum(OrdinalValue); - -/** @internal */ -export const OrdinalValue$outboundSchema: z.ZodNativeEnum = - OrdinalValue$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace OrdinalValue$ { - /** @deprecated use `OrdinalValue$inboundSchema` instead. */ - export const inboundSchema = OrdinalValue$inboundSchema; - /** @deprecated use `OrdinalValue$outboundSchema` instead. */ - export const outboundSchema = OrdinalValue$outboundSchema; -} - -/** @internal */ -export const MonthlyType$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(MonthlyType); - -/** @internal */ -export const MonthlyType$outboundSchema: z.ZodNativeEnum = - MonthlyType$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MonthlyType$ { - /** @deprecated use `MonthlyType$inboundSchema` instead. */ - export const inboundSchema = MonthlyType$inboundSchema; - /** @deprecated use `MonthlyType$outboundSchema` instead. */ - export const outboundSchema = MonthlyType$outboundSchema; -} - -/** @internal */ -export const TimedConfig$inboundSchema: z.ZodType< - TimedConfig, - z.ZodTypeDef, - unknown -> = z.object({ - atTime: z.string().optional(), - weekDays: z.array(WeekDays$inboundSchema).optional(), - monthDays: z.array(z.string()).optional(), - ordinal: Ordinal$inboundSchema.optional(), - ordinalValue: OrdinalValue$inboundSchema.optional(), - monthlyType: MonthlyType$inboundSchema.optional(), -}); - -/** @internal */ -export type TimedConfig$Outbound = { - atTime?: string | undefined; - weekDays?: Array | undefined; - monthDays?: Array | undefined; - ordinal?: string | undefined; - ordinalValue?: string | undefined; - monthlyType?: string | undefined; -}; - -/** @internal */ -export const TimedConfig$outboundSchema: z.ZodType< - TimedConfig$Outbound, - z.ZodTypeDef, - TimedConfig -> = z.object({ - atTime: z.string().optional(), - weekDays: z.array(WeekDays$outboundSchema).optional(), - monthDays: z.array(z.string()).optional(), - ordinal: Ordinal$outboundSchema.optional(), - ordinalValue: OrdinalValue$outboundSchema.optional(), - monthlyType: MonthlyType$outboundSchema.optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TimedConfig$ { - /** @deprecated use `TimedConfig$inboundSchema` instead. */ - export const inboundSchema = TimedConfig$inboundSchema; - /** @deprecated use `TimedConfig$outboundSchema` instead. */ - export const outboundSchema = TimedConfig$outboundSchema; - /** @deprecated use `TimedConfig$Outbound` instead. */ - export type Outbound = TimedConfig$Outbound; -} - -export function timedConfigToJSON(timedConfig: TimedConfig): string { - return JSON.stringify(TimedConfig$outboundSchema.parse(timedConfig)); -} - -export function timedConfigFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TimedConfig$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TimedConfig' from JSON`, - ); -} diff --git a/src/models/components/topicdto.ts b/src/models/components/topicdto.ts deleted file mode 100644 index 277aa072..00000000 --- a/src/models/components/topicdto.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicDto = { - id?: string | undefined; - organizationId: string; - environmentId: string; - key: string; - name: string; - subscribers: Array; -}; - -/** @internal */ -export const TopicDto$inboundSchema: z.ZodType< - TopicDto, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - _organizationId: z.string(), - _environmentId: z.string(), - key: z.string(), - name: z.string(), - subscribers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_organizationId": "organizationId", - "_environmentId": "environmentId", - }); -}); - -/** @internal */ -export type TopicDto$Outbound = { - _id?: string | undefined; - _organizationId: string; - _environmentId: string; - key: string; - name: string; - subscribers: Array; -}; - -/** @internal */ -export const TopicDto$outboundSchema: z.ZodType< - TopicDto$Outbound, - z.ZodTypeDef, - TopicDto -> = z.object({ - id: z.string().optional(), - organizationId: z.string(), - environmentId: z.string(), - key: z.string(), - name: z.string(), - subscribers: z.array(z.string()), -}).transform((v) => { - return remap$(v, { - id: "_id", - organizationId: "_organizationId", - environmentId: "_environmentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicDto$ { - /** @deprecated use `TopicDto$inboundSchema` instead. */ - export const inboundSchema = TopicDto$inboundSchema; - /** @deprecated use `TopicDto$outboundSchema` instead. */ - export const outboundSchema = TopicDto$outboundSchema; - /** @deprecated use `TopicDto$Outbound` instead. */ - export type Outbound = TopicDto$Outbound; -} - -export function topicDtoToJSON(topicDto: TopicDto): string { - return JSON.stringify(TopicDto$outboundSchema.parse(topicDto)); -} - -export function topicDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TopicDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicDto' from JSON`, - ); -} diff --git a/src/models/components/topicpayloaddto.ts b/src/models/components/topicpayloaddto.ts deleted file mode 100644 index e23a509b..00000000 --- a/src/models/components/topicpayloaddto.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const Type = { - Subscriber: "Subscriber", - Topic: "Topic", -} as const; -export type Type = ClosedEnum; - -export type TopicPayloadDto = { - topicKey: string; - type: Type; -}; - -/** @internal */ -export const Type$inboundSchema: z.ZodNativeEnum = z.nativeEnum( - Type, -); - -/** @internal */ -export const Type$outboundSchema: z.ZodNativeEnum = - Type$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Type$ { - /** @deprecated use `Type$inboundSchema` instead. */ - export const inboundSchema = Type$inboundSchema; - /** @deprecated use `Type$outboundSchema` instead. */ - export const outboundSchema = Type$outboundSchema; -} - -/** @internal */ -export const TopicPayloadDto$inboundSchema: z.ZodType< - TopicPayloadDto, - z.ZodTypeDef, - unknown -> = z.object({ - topicKey: z.string(), - type: Type$inboundSchema, -}); - -/** @internal */ -export type TopicPayloadDto$Outbound = { - topicKey: string; - type: string; -}; - -/** @internal */ -export const TopicPayloadDto$outboundSchema: z.ZodType< - TopicPayloadDto$Outbound, - z.ZodTypeDef, - TopicPayloadDto -> = z.object({ - topicKey: z.string(), - type: Type$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicPayloadDto$ { - /** @deprecated use `TopicPayloadDto$inboundSchema` instead. */ - export const inboundSchema = TopicPayloadDto$inboundSchema; - /** @deprecated use `TopicPayloadDto$outboundSchema` instead. */ - export const outboundSchema = TopicPayloadDto$outboundSchema; - /** @deprecated use `TopicPayloadDto$Outbound` instead. */ - export type Outbound = TopicPayloadDto$Outbound; -} - -export function topicPayloadDtoToJSON( - topicPayloadDto: TopicPayloadDto, -): string { - return JSON.stringify(TopicPayloadDto$outboundSchema.parse(topicPayloadDto)); -} - -export function topicPayloadDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TopicPayloadDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicPayloadDto' from JSON`, - ); -} diff --git a/src/models/components/topicsubscriberdto.ts b/src/models/components/topicsubscriberdto.ts deleted file mode 100644 index 974296fb..00000000 --- a/src/models/components/topicsubscriberdto.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicSubscriberDto = { - organizationId: string; - environmentId: string; - subscriberId: string; - topicId: string; - topicKey: string; - externalSubscriberId: string; -}; - -/** @internal */ -export const TopicSubscriberDto$inboundSchema: z.ZodType< - TopicSubscriberDto, - z.ZodTypeDef, - unknown -> = z.object({ - _organizationId: z.string(), - _environmentId: z.string(), - _subscriberId: z.string(), - _topicId: z.string(), - topicKey: z.string(), - externalSubscriberId: z.string(), -}).transform((v) => { - return remap$(v, { - "_organizationId": "organizationId", - "_environmentId": "environmentId", - "_subscriberId": "subscriberId", - "_topicId": "topicId", - }); -}); - -/** @internal */ -export type TopicSubscriberDto$Outbound = { - _organizationId: string; - _environmentId: string; - _subscriberId: string; - _topicId: string; - topicKey: string; - externalSubscriberId: string; -}; - -/** @internal */ -export const TopicSubscriberDto$outboundSchema: z.ZodType< - TopicSubscriberDto$Outbound, - z.ZodTypeDef, - TopicSubscriberDto -> = z.object({ - organizationId: z.string(), - environmentId: z.string(), - subscriberId: z.string(), - topicId: z.string(), - topicKey: z.string(), - externalSubscriberId: z.string(), -}).transform((v) => { - return remap$(v, { - organizationId: "_organizationId", - environmentId: "_environmentId", - subscriberId: "_subscriberId", - topicId: "_topicId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicSubscriberDto$ { - /** @deprecated use `TopicSubscriberDto$inboundSchema` instead. */ - export const inboundSchema = TopicSubscriberDto$inboundSchema; - /** @deprecated use `TopicSubscriberDto$outboundSchema` instead. */ - export const outboundSchema = TopicSubscriberDto$outboundSchema; - /** @deprecated use `TopicSubscriberDto$Outbound` instead. */ - export type Outbound = TopicSubscriberDto$Outbound; -} - -export function topicSubscriberDtoToJSON( - topicSubscriberDto: TopicSubscriberDto, -): string { - return JSON.stringify( - TopicSubscriberDto$outboundSchema.parse(topicSubscriberDto), - ); -} - -export function topicSubscriberDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TopicSubscriberDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicSubscriberDto' from JSON`, - ); -} diff --git a/src/models/components/triggereventrequestdto.ts b/src/models/components/triggereventrequestdto.ts deleted file mode 100644 index 6409a61a..00000000 --- a/src/models/components/triggereventrequestdto.ts +++ /dev/null @@ -1,450 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - SubscriberPayloadDto, - SubscriberPayloadDto$inboundSchema, - SubscriberPayloadDto$Outbound, - SubscriberPayloadDto$outboundSchema, -} from "./subscriberpayloaddto.js"; -import { - TenantPayloadDto, - TenantPayloadDto$inboundSchema, - TenantPayloadDto$Outbound, - TenantPayloadDto$outboundSchema, -} from "./tenantpayloaddto.js"; -import { - TopicPayloadDto, - TopicPayloadDto$inboundSchema, - TopicPayloadDto$Outbound, - TopicPayloadDto$outboundSchema, -} from "./topicpayloaddto.js"; - -/** - * The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. - * - * @remarks - * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - */ -export type Payload = {}; - -/** - * This could be used to override provider specific configurations - */ -export type Overrides = {}; - -export type To = TopicPayloadDto | SubscriberPayloadDto | string; - -/** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. - * - * @remarks - * If a new actor object is provided, we will create a new subscriber in our system - */ -export type Actor = SubscriberPayloadDto | string; - -/** - * It is used to specify a tenant context during trigger event. - * - * @remarks - * Existing tenants will be updated with the provided details. - */ -export type Tenant = TenantPayloadDto | string; - -export type Controls = {}; - -export type TriggerEventRequestDto = { - /** - * The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - */ - name: string; - /** - * The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. - * - * @remarks - * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - */ - payload?: Payload | undefined; - /** - * This could be used to override provider specific configurations - */ - overrides?: Overrides | undefined; - /** - * The recipients list of people who will receive the notification. - */ - to: Array; - /** - * A unique identifier for this transaction, we will generated a UUID if not provided. - */ - transactionId?: string | undefined; - /** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. - * - * @remarks - * If a new actor object is provided, we will create a new subscriber in our system - */ - actor?: SubscriberPayloadDto | string | undefined; - /** - * It is used to specify a tenant context during trigger event. - * - * @remarks - * Existing tenants will be updated with the provided details. - */ - tenant?: TenantPayloadDto | string | undefined; - bridgeUrl?: string | undefined; - controls?: Controls | undefined; -}; - -/** @internal */ -export const Payload$inboundSchema: z.ZodType = - z.object({}); - -/** @internal */ -export type Payload$Outbound = {}; - -/** @internal */ -export const Payload$outboundSchema: z.ZodType< - Payload$Outbound, - z.ZodTypeDef, - Payload -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Payload$ { - /** @deprecated use `Payload$inboundSchema` instead. */ - export const inboundSchema = Payload$inboundSchema; - /** @deprecated use `Payload$outboundSchema` instead. */ - export const outboundSchema = Payload$outboundSchema; - /** @deprecated use `Payload$Outbound` instead. */ - export type Outbound = Payload$Outbound; -} - -export function payloadToJSON(payload: Payload): string { - return JSON.stringify(Payload$outboundSchema.parse(payload)); -} - -export function payloadFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Payload$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Payload' from JSON`, - ); -} - -/** @internal */ -export const Overrides$inboundSchema: z.ZodType< - Overrides, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type Overrides$Outbound = {}; - -/** @internal */ -export const Overrides$outboundSchema: z.ZodType< - Overrides$Outbound, - z.ZodTypeDef, - Overrides -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Overrides$ { - /** @deprecated use `Overrides$inboundSchema` instead. */ - export const inboundSchema = Overrides$inboundSchema; - /** @deprecated use `Overrides$outboundSchema` instead. */ - export const outboundSchema = Overrides$outboundSchema; - /** @deprecated use `Overrides$Outbound` instead. */ - export type Outbound = Overrides$Outbound; -} - -export function overridesToJSON(overrides: Overrides): string { - return JSON.stringify(Overrides$outboundSchema.parse(overrides)); -} - -export function overridesFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Overrides$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Overrides' from JSON`, - ); -} - -/** @internal */ -export const To$inboundSchema: z.ZodType = z.union([ - TopicPayloadDto$inboundSchema, - SubscriberPayloadDto$inboundSchema, - z.string(), -]); - -/** @internal */ -export type To$Outbound = - | TopicPayloadDto$Outbound - | SubscriberPayloadDto$Outbound - | string; - -/** @internal */ -export const To$outboundSchema: z.ZodType = z - .union([ - TopicPayloadDto$outboundSchema, - SubscriberPayloadDto$outboundSchema, - z.string(), - ]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace To$ { - /** @deprecated use `To$inboundSchema` instead. */ - export const inboundSchema = To$inboundSchema; - /** @deprecated use `To$outboundSchema` instead. */ - export const outboundSchema = To$outboundSchema; - /** @deprecated use `To$Outbound` instead. */ - export type Outbound = To$Outbound; -} - -export function toToJSON(to: To): string { - return JSON.stringify(To$outboundSchema.parse(to)); -} - -export function toFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => To$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'To' from JSON`, - ); -} - -/** @internal */ -export const Actor$inboundSchema: z.ZodType = z - .union([SubscriberPayloadDto$inboundSchema, z.string()]); - -/** @internal */ -export type Actor$Outbound = SubscriberPayloadDto$Outbound | string; - -/** @internal */ -export const Actor$outboundSchema: z.ZodType< - Actor$Outbound, - z.ZodTypeDef, - Actor -> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Actor$ { - /** @deprecated use `Actor$inboundSchema` instead. */ - export const inboundSchema = Actor$inboundSchema; - /** @deprecated use `Actor$outboundSchema` instead. */ - export const outboundSchema = Actor$outboundSchema; - /** @deprecated use `Actor$Outbound` instead. */ - export type Outbound = Actor$Outbound; -} - -export function actorToJSON(actor: Actor): string { - return JSON.stringify(Actor$outboundSchema.parse(actor)); -} - -export function actorFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Actor$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Actor' from JSON`, - ); -} - -/** @internal */ -export const Tenant$inboundSchema: z.ZodType = z - .union([TenantPayloadDto$inboundSchema, z.string()]); - -/** @internal */ -export type Tenant$Outbound = TenantPayloadDto$Outbound | string; - -/** @internal */ -export const Tenant$outboundSchema: z.ZodType< - Tenant$Outbound, - z.ZodTypeDef, - Tenant -> = z.union([TenantPayloadDto$outboundSchema, z.string()]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Tenant$ { - /** @deprecated use `Tenant$inboundSchema` instead. */ - export const inboundSchema = Tenant$inboundSchema; - /** @deprecated use `Tenant$outboundSchema` instead. */ - export const outboundSchema = Tenant$outboundSchema; - /** @deprecated use `Tenant$Outbound` instead. */ - export type Outbound = Tenant$Outbound; -} - -export function tenantToJSON(tenant: Tenant): string { - return JSON.stringify(Tenant$outboundSchema.parse(tenant)); -} - -export function tenantFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Tenant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Tenant' from JSON`, - ); -} - -/** @internal */ -export const Controls$inboundSchema: z.ZodType< - Controls, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type Controls$Outbound = {}; - -/** @internal */ -export const Controls$outboundSchema: z.ZodType< - Controls$Outbound, - z.ZodTypeDef, - Controls -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Controls$ { - /** @deprecated use `Controls$inboundSchema` instead. */ - export const inboundSchema = Controls$inboundSchema; - /** @deprecated use `Controls$outboundSchema` instead. */ - export const outboundSchema = Controls$outboundSchema; - /** @deprecated use `Controls$Outbound` instead. */ - export type Outbound = Controls$Outbound; -} - -export function controlsToJSON(controls: Controls): string { - return JSON.stringify(Controls$outboundSchema.parse(controls)); -} - -export function controlsFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Controls$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Controls' from JSON`, - ); -} - -/** @internal */ -export const TriggerEventRequestDto$inboundSchema: z.ZodType< - TriggerEventRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string(), - payload: z.lazy(() => Payload$inboundSchema).optional(), - overrides: z.lazy(() => Overrides$inboundSchema).optional(), - to: z.array( - z.union([ - TopicPayloadDto$inboundSchema, - SubscriberPayloadDto$inboundSchema, - z.string(), - ]), - ), - transactionId: z.string().optional(), - actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), - tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), - bridgeUrl: z.string().optional(), - controls: z.lazy(() => Controls$inboundSchema).optional(), -}); - -/** @internal */ -export type TriggerEventRequestDto$Outbound = { - name: string; - payload?: Payload$Outbound | undefined; - overrides?: Overrides$Outbound | undefined; - to: Array; - transactionId?: string | undefined; - actor?: SubscriberPayloadDto$Outbound | string | undefined; - tenant?: TenantPayloadDto$Outbound | string | undefined; - bridgeUrl?: string | undefined; - controls?: Controls$Outbound | undefined; -}; - -/** @internal */ -export const TriggerEventRequestDto$outboundSchema: z.ZodType< - TriggerEventRequestDto$Outbound, - z.ZodTypeDef, - TriggerEventRequestDto -> = z.object({ - name: z.string(), - payload: z.lazy(() => Payload$outboundSchema).optional(), - overrides: z.lazy(() => Overrides$outboundSchema).optional(), - to: z.array( - z.union([ - TopicPayloadDto$outboundSchema, - SubscriberPayloadDto$outboundSchema, - z.string(), - ]), - ), - transactionId: z.string().optional(), - actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), - tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), - bridgeUrl: z.string().optional(), - controls: z.lazy(() => Controls$outboundSchema).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventRequestDto$ { - /** @deprecated use `TriggerEventRequestDto$inboundSchema` instead. */ - export const inboundSchema = TriggerEventRequestDto$inboundSchema; - /** @deprecated use `TriggerEventRequestDto$outboundSchema` instead. */ - export const outboundSchema = TriggerEventRequestDto$outboundSchema; - /** @deprecated use `TriggerEventRequestDto$Outbound` instead. */ - export type Outbound = TriggerEventRequestDto$Outbound; -} - -export function triggerEventRequestDtoToJSON( - triggerEventRequestDto: TriggerEventRequestDto, -): string { - return JSON.stringify( - TriggerEventRequestDto$outboundSchema.parse(triggerEventRequestDto), - ); -} - -export function triggerEventRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TriggerEventRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TriggerEventRequestDto' from JSON`, - ); -} diff --git a/src/models/components/triggereventresponsedto.ts b/src/models/components/triggereventresponsedto.ts deleted file mode 100644 index e29dd9df..00000000 --- a/src/models/components/triggereventresponsedto.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * Status for trigger - */ -export const TriggerEventResponseDtoStatus = { - Error: "error", - TriggerNotActive: "trigger_not_active", - NoWorkflowActiveStepsDefined: "no_workflow_active_steps_defined", - NoWorkflowStepsDefined: "no_workflow_steps_defined", - Processed: "processed", - SubscriberIdMissing: "subscriber_id_missing", - NoTenantFound: "no_tenant_found", -} as const; -/** - * Status for trigger - */ -export type TriggerEventResponseDtoStatus = ClosedEnum< - typeof TriggerEventResponseDtoStatus ->; - -export type TriggerEventResponseDto = { - /** - * If trigger was acknowledged or not - */ - acknowledged: boolean; - /** - * Status for trigger - */ - status: TriggerEventResponseDtoStatus; - /** - * In case of an error, this field will contain the error message - */ - error?: Array | undefined; - /** - * Transaction id for trigger - */ - transactionId?: string | undefined; -}; - -/** @internal */ -export const TriggerEventResponseDtoStatus$inboundSchema: z.ZodNativeEnum< - typeof TriggerEventResponseDtoStatus -> = z.nativeEnum(TriggerEventResponseDtoStatus); - -/** @internal */ -export const TriggerEventResponseDtoStatus$outboundSchema: z.ZodNativeEnum< - typeof TriggerEventResponseDtoStatus -> = TriggerEventResponseDtoStatus$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventResponseDtoStatus$ { - /** @deprecated use `TriggerEventResponseDtoStatus$inboundSchema` instead. */ - export const inboundSchema = TriggerEventResponseDtoStatus$inboundSchema; - /** @deprecated use `TriggerEventResponseDtoStatus$outboundSchema` instead. */ - export const outboundSchema = TriggerEventResponseDtoStatus$outboundSchema; -} - -/** @internal */ -export const TriggerEventResponseDto$inboundSchema: z.ZodType< - TriggerEventResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - acknowledged: z.boolean(), - status: TriggerEventResponseDtoStatus$inboundSchema, - error: z.array(z.string()).optional(), - transactionId: z.string().optional(), -}); - -/** @internal */ -export type TriggerEventResponseDto$Outbound = { - acknowledged: boolean; - status: string; - error?: Array | undefined; - transactionId?: string | undefined; -}; - -/** @internal */ -export const TriggerEventResponseDto$outboundSchema: z.ZodType< - TriggerEventResponseDto$Outbound, - z.ZodTypeDef, - TriggerEventResponseDto -> = z.object({ - acknowledged: z.boolean(), - status: TriggerEventResponseDtoStatus$outboundSchema, - error: z.array(z.string()).optional(), - transactionId: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventResponseDto$ { - /** @deprecated use `TriggerEventResponseDto$inboundSchema` instead. */ - export const inboundSchema = TriggerEventResponseDto$inboundSchema; - /** @deprecated use `TriggerEventResponseDto$outboundSchema` instead. */ - export const outboundSchema = TriggerEventResponseDto$outboundSchema; - /** @deprecated use `TriggerEventResponseDto$Outbound` instead. */ - export type Outbound = TriggerEventResponseDto$Outbound; -} - -export function triggerEventResponseDtoToJSON( - triggerEventResponseDto: TriggerEventResponseDto, -): string { - return JSON.stringify( - TriggerEventResponseDto$outboundSchema.parse(triggerEventResponseDto), - ); -} - -export function triggerEventResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TriggerEventResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TriggerEventResponseDto' from JSON`, - ); -} diff --git a/src/models/components/triggereventtoallrequestdto.ts b/src/models/components/triggereventtoallrequestdto.ts deleted file mode 100644 index 991659bb..00000000 --- a/src/models/components/triggereventtoallrequestdto.ts +++ /dev/null @@ -1,368 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - SubscriberPayloadDto, - SubscriberPayloadDto$inboundSchema, - SubscriberPayloadDto$Outbound, - SubscriberPayloadDto$outboundSchema, -} from "./subscriberpayloaddto.js"; -import { - TenantPayloadDto, - TenantPayloadDto$inboundSchema, - TenantPayloadDto$Outbound, - TenantPayloadDto$outboundSchema, -} from "./tenantpayloaddto.js"; - -/** - * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. - * - * @remarks - * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - */ -export type TriggerEventToAllRequestDtoPayload = {}; - -/** - * This could be used to override provider specific configurations - */ -export type TriggerEventToAllRequestDtoOverrides = {}; - -/** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. - * - * @remarks - * If a new actor object is provided, we will create a new subscriber in our system - */ -export type TriggerEventToAllRequestDtoActor = SubscriberPayloadDto | string; - -/** - * It is used to specify a tenant context during trigger event. - * - * @remarks - * If a new tenant object is provided, we will create a new tenant. - */ -export type TriggerEventToAllRequestDtoTenant = TenantPayloadDto | string; - -export type TriggerEventToAllRequestDto = { - /** - * The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - */ - name: string; - /** - * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. - * - * @remarks - * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - */ - payload: TriggerEventToAllRequestDtoPayload; - /** - * This could be used to override provider specific configurations - */ - overrides?: TriggerEventToAllRequestDtoOverrides | undefined; - /** - * A unique identifier for this transaction, we will generated a UUID if not provided. - */ - transactionId?: string | undefined; - /** - * It is used to display the Avatar of the provided actor's subscriber id or actor object. - * - * @remarks - * If a new actor object is provided, we will create a new subscriber in our system - */ - actor?: SubscriberPayloadDto | string | undefined; - /** - * It is used to specify a tenant context during trigger event. - * - * @remarks - * If a new tenant object is provided, we will create a new tenant. - */ - tenant?: TenantPayloadDto | string | undefined; -}; - -/** @internal */ -export const TriggerEventToAllRequestDtoPayload$inboundSchema: z.ZodType< - TriggerEventToAllRequestDtoPayload, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type TriggerEventToAllRequestDtoPayload$Outbound = {}; - -/** @internal */ -export const TriggerEventToAllRequestDtoPayload$outboundSchema: z.ZodType< - TriggerEventToAllRequestDtoPayload$Outbound, - z.ZodTypeDef, - TriggerEventToAllRequestDtoPayload -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventToAllRequestDtoPayload$ { - /** @deprecated use `TriggerEventToAllRequestDtoPayload$inboundSchema` instead. */ - export const inboundSchema = TriggerEventToAllRequestDtoPayload$inboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoPayload$outboundSchema` instead. */ - export const outboundSchema = - TriggerEventToAllRequestDtoPayload$outboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoPayload$Outbound` instead. */ - export type Outbound = TriggerEventToAllRequestDtoPayload$Outbound; -} - -export function triggerEventToAllRequestDtoPayloadToJSON( - triggerEventToAllRequestDtoPayload: TriggerEventToAllRequestDtoPayload, -): string { - return JSON.stringify( - TriggerEventToAllRequestDtoPayload$outboundSchema.parse( - triggerEventToAllRequestDtoPayload, - ), - ); -} - -export function triggerEventToAllRequestDtoPayloadFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TriggerEventToAllRequestDtoPayload$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TriggerEventToAllRequestDtoPayload' from JSON`, - ); -} - -/** @internal */ -export const TriggerEventToAllRequestDtoOverrides$inboundSchema: z.ZodType< - TriggerEventToAllRequestDtoOverrides, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type TriggerEventToAllRequestDtoOverrides$Outbound = {}; - -/** @internal */ -export const TriggerEventToAllRequestDtoOverrides$outboundSchema: z.ZodType< - TriggerEventToAllRequestDtoOverrides$Outbound, - z.ZodTypeDef, - TriggerEventToAllRequestDtoOverrides -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventToAllRequestDtoOverrides$ { - /** @deprecated use `TriggerEventToAllRequestDtoOverrides$inboundSchema` instead. */ - export const inboundSchema = - TriggerEventToAllRequestDtoOverrides$inboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoOverrides$outboundSchema` instead. */ - export const outboundSchema = - TriggerEventToAllRequestDtoOverrides$outboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoOverrides$Outbound` instead. */ - export type Outbound = TriggerEventToAllRequestDtoOverrides$Outbound; -} - -export function triggerEventToAllRequestDtoOverridesToJSON( - triggerEventToAllRequestDtoOverrides: TriggerEventToAllRequestDtoOverrides, -): string { - return JSON.stringify( - TriggerEventToAllRequestDtoOverrides$outboundSchema.parse( - triggerEventToAllRequestDtoOverrides, - ), - ); -} - -export function triggerEventToAllRequestDtoOverridesFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TriggerEventToAllRequestDtoOverrides$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TriggerEventToAllRequestDtoOverrides' from JSON`, - ); -} - -/** @internal */ -export const TriggerEventToAllRequestDtoActor$inboundSchema: z.ZodType< - TriggerEventToAllRequestDtoActor, - z.ZodTypeDef, - unknown -> = z.union([SubscriberPayloadDto$inboundSchema, z.string()]); - -/** @internal */ -export type TriggerEventToAllRequestDtoActor$Outbound = - | SubscriberPayloadDto$Outbound - | string; - -/** @internal */ -export const TriggerEventToAllRequestDtoActor$outboundSchema: z.ZodType< - TriggerEventToAllRequestDtoActor$Outbound, - z.ZodTypeDef, - TriggerEventToAllRequestDtoActor -> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventToAllRequestDtoActor$ { - /** @deprecated use `TriggerEventToAllRequestDtoActor$inboundSchema` instead. */ - export const inboundSchema = TriggerEventToAllRequestDtoActor$inboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoActor$outboundSchema` instead. */ - export const outboundSchema = TriggerEventToAllRequestDtoActor$outboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoActor$Outbound` instead. */ - export type Outbound = TriggerEventToAllRequestDtoActor$Outbound; -} - -export function triggerEventToAllRequestDtoActorToJSON( - triggerEventToAllRequestDtoActor: TriggerEventToAllRequestDtoActor, -): string { - return JSON.stringify( - TriggerEventToAllRequestDtoActor$outboundSchema.parse( - triggerEventToAllRequestDtoActor, - ), - ); -} - -export function triggerEventToAllRequestDtoActorFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TriggerEventToAllRequestDtoActor$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TriggerEventToAllRequestDtoActor' from JSON`, - ); -} - -/** @internal */ -export const TriggerEventToAllRequestDtoTenant$inboundSchema: z.ZodType< - TriggerEventToAllRequestDtoTenant, - z.ZodTypeDef, - unknown -> = z.union([TenantPayloadDto$inboundSchema, z.string()]); - -/** @internal */ -export type TriggerEventToAllRequestDtoTenant$Outbound = - | TenantPayloadDto$Outbound - | string; - -/** @internal */ -export const TriggerEventToAllRequestDtoTenant$outboundSchema: z.ZodType< - TriggerEventToAllRequestDtoTenant$Outbound, - z.ZodTypeDef, - TriggerEventToAllRequestDtoTenant -> = z.union([TenantPayloadDto$outboundSchema, z.string()]); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventToAllRequestDtoTenant$ { - /** @deprecated use `TriggerEventToAllRequestDtoTenant$inboundSchema` instead. */ - export const inboundSchema = TriggerEventToAllRequestDtoTenant$inboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoTenant$outboundSchema` instead. */ - export const outboundSchema = - TriggerEventToAllRequestDtoTenant$outboundSchema; - /** @deprecated use `TriggerEventToAllRequestDtoTenant$Outbound` instead. */ - export type Outbound = TriggerEventToAllRequestDtoTenant$Outbound; -} - -export function triggerEventToAllRequestDtoTenantToJSON( - triggerEventToAllRequestDtoTenant: TriggerEventToAllRequestDtoTenant, -): string { - return JSON.stringify( - TriggerEventToAllRequestDtoTenant$outboundSchema.parse( - triggerEventToAllRequestDtoTenant, - ), - ); -} - -export function triggerEventToAllRequestDtoTenantFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TriggerEventToAllRequestDtoTenant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TriggerEventToAllRequestDtoTenant' from JSON`, - ); -} - -/** @internal */ -export const TriggerEventToAllRequestDto$inboundSchema: z.ZodType< - TriggerEventToAllRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string(), - payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$inboundSchema), - overrides: z.lazy(() => TriggerEventToAllRequestDtoOverrides$inboundSchema) - .optional(), - transactionId: z.string().optional(), - actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), - tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), -}); - -/** @internal */ -export type TriggerEventToAllRequestDto$Outbound = { - name: string; - payload: TriggerEventToAllRequestDtoPayload$Outbound; - overrides?: TriggerEventToAllRequestDtoOverrides$Outbound | undefined; - transactionId?: string | undefined; - actor?: SubscriberPayloadDto$Outbound | string | undefined; - tenant?: TenantPayloadDto$Outbound | string | undefined; -}; - -/** @internal */ -export const TriggerEventToAllRequestDto$outboundSchema: z.ZodType< - TriggerEventToAllRequestDto$Outbound, - z.ZodTypeDef, - TriggerEventToAllRequestDto -> = z.object({ - name: z.string(), - payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$outboundSchema), - overrides: z.lazy(() => TriggerEventToAllRequestDtoOverrides$outboundSchema) - .optional(), - transactionId: z.string().optional(), - actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), - tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TriggerEventToAllRequestDto$ { - /** @deprecated use `TriggerEventToAllRequestDto$inboundSchema` instead. */ - export const inboundSchema = TriggerEventToAllRequestDto$inboundSchema; - /** @deprecated use `TriggerEventToAllRequestDto$outboundSchema` instead. */ - export const outboundSchema = TriggerEventToAllRequestDto$outboundSchema; - /** @deprecated use `TriggerEventToAllRequestDto$Outbound` instead. */ - export type Outbound = TriggerEventToAllRequestDto$Outbound; -} - -export function triggerEventToAllRequestDtoToJSON( - triggerEventToAllRequestDto: TriggerEventToAllRequestDto, -): string { - return JSON.stringify( - TriggerEventToAllRequestDto$outboundSchema.parse( - triggerEventToAllRequestDto, - ), - ); -} - -export function triggerEventToAllRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TriggerEventToAllRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TriggerEventToAllRequestDto' from JSON`, - ); -} diff --git a/src/models/components/unseencountresponse.ts b/src/models/components/unseencountresponse.ts deleted file mode 100644 index 9964517e..00000000 --- a/src/models/components/unseencountresponse.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type UnseenCountResponse = { - count: number; -}; - -/** @internal */ -export const UnseenCountResponse$inboundSchema: z.ZodType< - UnseenCountResponse, - z.ZodTypeDef, - unknown -> = z.object({ - count: z.number(), -}); - -/** @internal */ -export type UnseenCountResponse$Outbound = { - count: number; -}; - -/** @internal */ -export const UnseenCountResponse$outboundSchema: z.ZodType< - UnseenCountResponse$Outbound, - z.ZodTypeDef, - UnseenCountResponse -> = z.object({ - count: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UnseenCountResponse$ { - /** @deprecated use `UnseenCountResponse$inboundSchema` instead. */ - export const inboundSchema = UnseenCountResponse$inboundSchema; - /** @deprecated use `UnseenCountResponse$outboundSchema` instead. */ - export const outboundSchema = UnseenCountResponse$outboundSchema; - /** @deprecated use `UnseenCountResponse$Outbound` instead. */ - export type Outbound = UnseenCountResponse$Outbound; -} - -export function unseenCountResponseToJSON( - unseenCountResponse: UnseenCountResponse, -): string { - return JSON.stringify( - UnseenCountResponse$outboundSchema.parse(unseenCountResponse), - ); -} - -export function unseenCountResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => UnseenCountResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UnseenCountResponse' from JSON`, - ); -} diff --git a/src/models/components/updatebrandingdetailsdto.ts b/src/models/components/updatebrandingdetailsdto.ts deleted file mode 100644 index c86e70b7..00000000 --- a/src/models/components/updatebrandingdetailsdto.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type UpdateBrandingDetailsDto = { - color: string; - contentBackground: string; - fontColor: string; - fontFamily?: string | undefined; - logo: string; -}; - -/** @internal */ -export const UpdateBrandingDetailsDto$inboundSchema: z.ZodType< - UpdateBrandingDetailsDto, - z.ZodTypeDef, - unknown -> = z.object({ - color: z.string(), - contentBackground: z.string(), - fontColor: z.string(), - fontFamily: z.string().optional(), - logo: z.string(), -}); - -/** @internal */ -export type UpdateBrandingDetailsDto$Outbound = { - color: string; - contentBackground: string; - fontColor: string; - fontFamily?: string | undefined; - logo: string; -}; - -/** @internal */ -export const UpdateBrandingDetailsDto$outboundSchema: z.ZodType< - UpdateBrandingDetailsDto$Outbound, - z.ZodTypeDef, - UpdateBrandingDetailsDto -> = z.object({ - color: z.string(), - contentBackground: z.string(), - fontColor: z.string(), - fontFamily: z.string().optional(), - logo: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateBrandingDetailsDto$ { - /** @deprecated use `UpdateBrandingDetailsDto$inboundSchema` instead. */ - export const inboundSchema = UpdateBrandingDetailsDto$inboundSchema; - /** @deprecated use `UpdateBrandingDetailsDto$outboundSchema` instead. */ - export const outboundSchema = UpdateBrandingDetailsDto$outboundSchema; - /** @deprecated use `UpdateBrandingDetailsDto$Outbound` instead. */ - export type Outbound = UpdateBrandingDetailsDto$Outbound; -} diff --git a/src/models/components/updateintegrationrequestdto.ts b/src/models/components/updateintegrationrequestdto.ts deleted file mode 100644 index 690ac742..00000000 --- a/src/models/components/updateintegrationrequestdto.ts +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - CredentialsDto, - CredentialsDto$inboundSchema, - CredentialsDto$Outbound, - CredentialsDto$outboundSchema, -} from "./credentialsdto.js"; -import { - StepFilter, - StepFilter$inboundSchema, - StepFilter$Outbound, - StepFilter$outboundSchema, -} from "./stepfilter.js"; - -export type UpdateIntegrationRequestDto = { - name?: string | undefined; - identifier?: string | undefined; - environmentId?: string | undefined; - /** - * If the integration is active the validation on the credentials field will run - */ - active?: boolean | undefined; - credentials?: CredentialsDto | undefined; - /** - * If true, the Novu branding will be removed from the Inbox component - */ - removeNovuBranding?: boolean | undefined; - check?: boolean | undefined; - conditions?: Array | undefined; -}; - -/** @internal */ -export const UpdateIntegrationRequestDto$inboundSchema: z.ZodType< - UpdateIntegrationRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - name: z.string().optional(), - identifier: z.string().optional(), - _environmentId: z.string().optional(), - active: z.boolean().optional(), - credentials: CredentialsDto$inboundSchema.optional(), - removeNovuBranding: z.boolean().optional(), - check: z.boolean().optional(), - conditions: z.array(StepFilter$inboundSchema).optional(), -}).transform((v) => { - return remap$(v, { - "_environmentId": "environmentId", - }); -}); - -/** @internal */ -export type UpdateIntegrationRequestDto$Outbound = { - name?: string | undefined; - identifier?: string | undefined; - _environmentId?: string | undefined; - active?: boolean | undefined; - credentials?: CredentialsDto$Outbound | undefined; - removeNovuBranding?: boolean | undefined; - check?: boolean | undefined; - conditions?: Array | undefined; -}; - -/** @internal */ -export const UpdateIntegrationRequestDto$outboundSchema: z.ZodType< - UpdateIntegrationRequestDto$Outbound, - z.ZodTypeDef, - UpdateIntegrationRequestDto -> = z.object({ - name: z.string().optional(), - identifier: z.string().optional(), - environmentId: z.string().optional(), - active: z.boolean().optional(), - credentials: CredentialsDto$outboundSchema.optional(), - removeNovuBranding: z.boolean().optional(), - check: z.boolean().optional(), - conditions: z.array(StepFilter$outboundSchema).optional(), -}).transform((v) => { - return remap$(v, { - environmentId: "_environmentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateIntegrationRequestDto$ { - /** @deprecated use `UpdateIntegrationRequestDto$inboundSchema` instead. */ - export const inboundSchema = UpdateIntegrationRequestDto$inboundSchema; - /** @deprecated use `UpdateIntegrationRequestDto$outboundSchema` instead. */ - export const outboundSchema = UpdateIntegrationRequestDto$outboundSchema; - /** @deprecated use `UpdateIntegrationRequestDto$Outbound` instead. */ - export type Outbound = UpdateIntegrationRequestDto$Outbound; -} - -export function updateIntegrationRequestDtoToJSON( - updateIntegrationRequestDto: UpdateIntegrationRequestDto, -): string { - return JSON.stringify( - UpdateIntegrationRequestDto$outboundSchema.parse( - updateIntegrationRequestDto, - ), - ); -} - -export function updateIntegrationRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => UpdateIntegrationRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UpdateIntegrationRequestDto' from JSON`, - ); -} diff --git a/src/models/components/updatelayoutrequestdto.ts b/src/models/components/updatelayoutrequestdto.ts deleted file mode 100644 index dc810739..00000000 --- a/src/models/components/updatelayoutrequestdto.ts +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -/** - * User defined variables to render in the layout placeholders. - */ -export type Variables = {}; - -export type UpdateLayoutRequestDto = { - /** - * User defined content for the layout. - */ - content?: string | undefined; - /** - * User defined description of the layout - */ - description?: string | undefined; - /** - * User defined custom key that will be a unique identifier for the Layout updated. - */ - identifier: string; - /** - * Variable that defines if the layout is chosen as default when creating a layout. - */ - isDefault?: boolean | undefined; - /** - * User defined custom name and provided by the user that will name the Layout updated. - */ - name?: string | undefined; - /** - * User defined variables to render in the layout placeholders. - */ - variables?: Variables | undefined; -}; - -/** @internal */ -export const Variables$inboundSchema: z.ZodType< - Variables, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type Variables$Outbound = {}; - -/** @internal */ -export const Variables$outboundSchema: z.ZodType< - Variables$Outbound, - z.ZodTypeDef, - Variables -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Variables$ { - /** @deprecated use `Variables$inboundSchema` instead. */ - export const inboundSchema = Variables$inboundSchema; - /** @deprecated use `Variables$outboundSchema` instead. */ - export const outboundSchema = Variables$outboundSchema; - /** @deprecated use `Variables$Outbound` instead. */ - export type Outbound = Variables$Outbound; -} - -/** @internal */ -export const UpdateLayoutRequestDto$inboundSchema: z.ZodType< - UpdateLayoutRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - content: z.string().optional(), - description: z.string().optional(), - identifier: z.string(), - isDefault: z.boolean().optional(), - name: z.string().optional(), - variables: z.lazy(() => Variables$inboundSchema).optional(), -}); - -/** @internal */ -export type UpdateLayoutRequestDto$Outbound = { - content?: string | undefined; - description?: string | undefined; - identifier: string; - isDefault?: boolean | undefined; - name?: string | undefined; - variables?: Variables$Outbound | undefined; -}; - -/** @internal */ -export const UpdateLayoutRequestDto$outboundSchema: z.ZodType< - UpdateLayoutRequestDto$Outbound, - z.ZodTypeDef, - UpdateLayoutRequestDto -> = z.object({ - content: z.string().optional(), - description: z.string().optional(), - identifier: z.string(), - isDefault: z.boolean().optional(), - name: z.string().optional(), - variables: z.lazy(() => Variables$outboundSchema).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateLayoutRequestDto$ { - /** @deprecated use `UpdateLayoutRequestDto$inboundSchema` instead. */ - export const inboundSchema = UpdateLayoutRequestDto$inboundSchema; - /** @deprecated use `UpdateLayoutRequestDto$outboundSchema` instead. */ - export const outboundSchema = UpdateLayoutRequestDto$outboundSchema; - /** @deprecated use `UpdateLayoutRequestDto$Outbound` instead. */ - export type Outbound = UpdateLayoutRequestDto$Outbound; -} diff --git a/src/models/components/updatelayoutresponsedto.ts b/src/models/components/updatelayoutresponsedto.ts deleted file mode 100644 index 194cd34b..00000000 --- a/src/models/components/updatelayoutresponsedto.ts +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { ClosedEnum } from "../../types/enums.js"; - -export const UpdateLayoutResponseDtoChannel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type UpdateLayoutResponseDtoChannel = ClosedEnum< - typeof UpdateLayoutResponseDtoChannel ->; - -export type UpdateLayoutResponseDto = { - creatorId: string; - environmentId: string; - id?: string | undefined; - organizationId: string; - parentId?: string | undefined; - channel: UpdateLayoutResponseDtoChannel; - content: string; - contentType: string; - createdAt?: string | undefined; - description?: string | undefined; - identifier: string; - isDefault: boolean; - isDeleted: boolean; - name: string; - updatedAt?: string | undefined; - variables?: Array | undefined; -}; - -/** @internal */ -export const UpdateLayoutResponseDtoChannel$inboundSchema: z.ZodNativeEnum< - typeof UpdateLayoutResponseDtoChannel -> = z.nativeEnum(UpdateLayoutResponseDtoChannel); - -/** @internal */ -export const UpdateLayoutResponseDtoChannel$outboundSchema: z.ZodNativeEnum< - typeof UpdateLayoutResponseDtoChannel -> = UpdateLayoutResponseDtoChannel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateLayoutResponseDtoChannel$ { - /** @deprecated use `UpdateLayoutResponseDtoChannel$inboundSchema` instead. */ - export const inboundSchema = UpdateLayoutResponseDtoChannel$inboundSchema; - /** @deprecated use `UpdateLayoutResponseDtoChannel$outboundSchema` instead. */ - export const outboundSchema = UpdateLayoutResponseDtoChannel$outboundSchema; -} - -/** @internal */ -export const UpdateLayoutResponseDto$inboundSchema: z.ZodType< - UpdateLayoutResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _creatorId: z.string(), - _environmentId: z.string(), - _id: z.string().optional(), - _organizationId: z.string(), - _parentId: z.string().optional(), - channel: UpdateLayoutResponseDtoChannel$inboundSchema, - content: z.string(), - contentType: z.string(), - createdAt: z.string().optional(), - description: z.string().optional(), - identifier: z.string(), - isDefault: z.boolean(), - isDeleted: z.boolean(), - name: z.string(), - updatedAt: z.string().optional(), - variables: z.array(z.string()).optional(), -}).transform((v) => { - return remap$(v, { - "_creatorId": "creatorId", - "_environmentId": "environmentId", - "_id": "id", - "_organizationId": "organizationId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type UpdateLayoutResponseDto$Outbound = { - _creatorId: string; - _environmentId: string; - _id?: string | undefined; - _organizationId: string; - _parentId?: string | undefined; - channel: string; - content: string; - contentType: string; - createdAt?: string | undefined; - description?: string | undefined; - identifier: string; - isDefault: boolean; - isDeleted: boolean; - name: string; - updatedAt?: string | undefined; - variables?: Array | undefined; -}; - -/** @internal */ -export const UpdateLayoutResponseDto$outboundSchema: z.ZodType< - UpdateLayoutResponseDto$Outbound, - z.ZodTypeDef, - UpdateLayoutResponseDto -> = z.object({ - creatorId: z.string(), - environmentId: z.string(), - id: z.string().optional(), - organizationId: z.string(), - parentId: z.string().optional(), - channel: UpdateLayoutResponseDtoChannel$outboundSchema, - content: z.string(), - contentType: z.string(), - createdAt: z.string().optional(), - description: z.string().optional(), - identifier: z.string(), - isDefault: z.boolean(), - isDeleted: z.boolean(), - name: z.string(), - updatedAt: z.string().optional(), - variables: z.array(z.string()).optional(), -}).transform((v) => { - return remap$(v, { - creatorId: "_creatorId", - environmentId: "_environmentId", - id: "_id", - organizationId: "_organizationId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateLayoutResponseDto$ { - /** @deprecated use `UpdateLayoutResponseDto$inboundSchema` instead. */ - export const inboundSchema = UpdateLayoutResponseDto$inboundSchema; - /** @deprecated use `UpdateLayoutResponseDto$outboundSchema` instead. */ - export const outboundSchema = UpdateLayoutResponseDto$outboundSchema; - /** @deprecated use `UpdateLayoutResponseDto$Outbound` instead. */ - export type Outbound = UpdateLayoutResponseDto$Outbound; -} diff --git a/src/models/components/updatesubscriberchannelrequestdto.ts b/src/models/components/updatesubscriberchannelrequestdto.ts deleted file mode 100644 index 92418867..00000000 --- a/src/models/components/updatesubscriberchannelrequestdto.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - ChannelCredentials, - ChannelCredentials$inboundSchema, - ChannelCredentials$Outbound, - ChannelCredentials$outboundSchema, -} from "./channelcredentials.js"; - -/** - * The provider identifier for the credentials - */ -export const UpdateSubscriberChannelRequestDtoProviderId = { - Slack: "slack", - Discord: "discord", - Msteams: "msteams", - Mattermost: "mattermost", - Ryver: "ryver", - Zulip: "zulip", - GrafanaOnCall: "grafana-on-call", - Getstream: "getstream", - RocketChat: "rocket-chat", - WhatsappBusiness: "whatsapp-business", - Fcm: "fcm", - Apns: "apns", - Expo: "expo", - OneSignal: "one-signal", - Pushpad: "pushpad", - PushWebhook: "push-webhook", - PusherBeams: "pusher-beams", -} as const; -/** - * The provider identifier for the credentials - */ -export type UpdateSubscriberChannelRequestDtoProviderId = ClosedEnum< - typeof UpdateSubscriberChannelRequestDtoProviderId ->; - -export type UpdateSubscriberChannelRequestDto = { - /** - * The provider identifier for the credentials - */ - providerId: UpdateSubscriberChannelRequestDtoProviderId; - /** - * The integration identifier - */ - integrationIdentifier?: string | undefined; - /** - * Credentials payload for the specified provider - */ - credentials: ChannelCredentials; -}; - -/** @internal */ -export const UpdateSubscriberChannelRequestDtoProviderId$inboundSchema: - z.ZodNativeEnum = z - .nativeEnum(UpdateSubscriberChannelRequestDtoProviderId); - -/** @internal */ -export const UpdateSubscriberChannelRequestDtoProviderId$outboundSchema: - z.ZodNativeEnum = - UpdateSubscriberChannelRequestDtoProviderId$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberChannelRequestDtoProviderId$ { - /** @deprecated use `UpdateSubscriberChannelRequestDtoProviderId$inboundSchema` instead. */ - export const inboundSchema = - UpdateSubscriberChannelRequestDtoProviderId$inboundSchema; - /** @deprecated use `UpdateSubscriberChannelRequestDtoProviderId$outboundSchema` instead. */ - export const outboundSchema = - UpdateSubscriberChannelRequestDtoProviderId$outboundSchema; -} - -/** @internal */ -export const UpdateSubscriberChannelRequestDto$inboundSchema: z.ZodType< - UpdateSubscriberChannelRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - providerId: UpdateSubscriberChannelRequestDtoProviderId$inboundSchema, - integrationIdentifier: z.string().optional(), - credentials: ChannelCredentials$inboundSchema, -}); - -/** @internal */ -export type UpdateSubscriberChannelRequestDto$Outbound = { - providerId: string; - integrationIdentifier?: string | undefined; - credentials: ChannelCredentials$Outbound; -}; - -/** @internal */ -export const UpdateSubscriberChannelRequestDto$outboundSchema: z.ZodType< - UpdateSubscriberChannelRequestDto$Outbound, - z.ZodTypeDef, - UpdateSubscriberChannelRequestDto -> = z.object({ - providerId: UpdateSubscriberChannelRequestDtoProviderId$outboundSchema, - integrationIdentifier: z.string().optional(), - credentials: ChannelCredentials$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberChannelRequestDto$ { - /** @deprecated use `UpdateSubscriberChannelRequestDto$inboundSchema` instead. */ - export const inboundSchema = UpdateSubscriberChannelRequestDto$inboundSchema; - /** @deprecated use `UpdateSubscriberChannelRequestDto$outboundSchema` instead. */ - export const outboundSchema = - UpdateSubscriberChannelRequestDto$outboundSchema; - /** @deprecated use `UpdateSubscriberChannelRequestDto$Outbound` instead. */ - export type Outbound = UpdateSubscriberChannelRequestDto$Outbound; -} - -export function updateSubscriberChannelRequestDtoToJSON( - updateSubscriberChannelRequestDto: UpdateSubscriberChannelRequestDto, -): string { - return JSON.stringify( - UpdateSubscriberChannelRequestDto$outboundSchema.parse( - updateSubscriberChannelRequestDto, - ), - ); -} - -export function updateSubscriberChannelRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => UpdateSubscriberChannelRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UpdateSubscriberChannelRequestDto' from JSON`, - ); -} diff --git a/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts b/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts deleted file mode 100644 index b00510e0..00000000 --- a/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - ChannelPreference, - ChannelPreference$inboundSchema, - ChannelPreference$Outbound, - ChannelPreference$outboundSchema, -} from "./channelpreference.js"; - -export type UpdateSubscriberGlobalPreferencesRequestDto = { - /** - * Enable or disable the subscriber global preferences. - */ - enabled?: boolean | undefined; - /** - * The subscriber global preferences for every ChannelTypeEnum. - */ - preferences?: Array | undefined; -}; - -/** @internal */ -export const UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema: - z.ZodType< - UpdateSubscriberGlobalPreferencesRequestDto, - z.ZodTypeDef, - unknown - > = z.object({ - enabled: z.boolean().optional(), - preferences: z.array(ChannelPreference$inboundSchema).optional(), - }); - -/** @internal */ -export type UpdateSubscriberGlobalPreferencesRequestDto$Outbound = { - enabled?: boolean | undefined; - preferences?: Array | undefined; -}; - -/** @internal */ -export const UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema: - z.ZodType< - UpdateSubscriberGlobalPreferencesRequestDto$Outbound, - z.ZodTypeDef, - UpdateSubscriberGlobalPreferencesRequestDto - > = z.object({ - enabled: z.boolean().optional(), - preferences: z.array(ChannelPreference$outboundSchema).optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberGlobalPreferencesRequestDto$ { - /** @deprecated use `UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema` instead. */ - export const inboundSchema = - UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema; - /** @deprecated use `UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema` instead. */ - export const outboundSchema = - UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema; - /** @deprecated use `UpdateSubscriberGlobalPreferencesRequestDto$Outbound` instead. */ - export type Outbound = UpdateSubscriberGlobalPreferencesRequestDto$Outbound; -} - -export function updateSubscriberGlobalPreferencesRequestDtoToJSON( - updateSubscriberGlobalPreferencesRequestDto: - UpdateSubscriberGlobalPreferencesRequestDto, -): string { - return JSON.stringify( - UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema.parse( - updateSubscriberGlobalPreferencesRequestDto, - ), - ); -} - -export function updateSubscriberGlobalPreferencesRequestDtoFromJSON( - jsonString: string, -): SafeParseResult< - UpdateSubscriberGlobalPreferencesRequestDto, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'UpdateSubscriberGlobalPreferencesRequestDto' from JSON`, - ); -} diff --git a/src/models/components/updatesubscriberonlineflagrequestdto.ts b/src/models/components/updatesubscriberonlineflagrequestdto.ts deleted file mode 100644 index 5e3da370..00000000 --- a/src/models/components/updatesubscriberonlineflagrequestdto.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type UpdateSubscriberOnlineFlagRequestDto = { - isOnline: boolean; -}; - -/** @internal */ -export const UpdateSubscriberOnlineFlagRequestDto$inboundSchema: z.ZodType< - UpdateSubscriberOnlineFlagRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - isOnline: z.boolean(), -}); - -/** @internal */ -export type UpdateSubscriberOnlineFlagRequestDto$Outbound = { - isOnline: boolean; -}; - -/** @internal */ -export const UpdateSubscriberOnlineFlagRequestDto$outboundSchema: z.ZodType< - UpdateSubscriberOnlineFlagRequestDto$Outbound, - z.ZodTypeDef, - UpdateSubscriberOnlineFlagRequestDto -> = z.object({ - isOnline: z.boolean(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberOnlineFlagRequestDto$ { - /** @deprecated use `UpdateSubscriberOnlineFlagRequestDto$inboundSchema` instead. */ - export const inboundSchema = - UpdateSubscriberOnlineFlagRequestDto$inboundSchema; - /** @deprecated use `UpdateSubscriberOnlineFlagRequestDto$outboundSchema` instead. */ - export const outboundSchema = - UpdateSubscriberOnlineFlagRequestDto$outboundSchema; - /** @deprecated use `UpdateSubscriberOnlineFlagRequestDto$Outbound` instead. */ - export type Outbound = UpdateSubscriberOnlineFlagRequestDto$Outbound; -} - -export function updateSubscriberOnlineFlagRequestDtoToJSON( - updateSubscriberOnlineFlagRequestDto: UpdateSubscriberOnlineFlagRequestDto, -): string { - return JSON.stringify( - UpdateSubscriberOnlineFlagRequestDto$outboundSchema.parse( - updateSubscriberOnlineFlagRequestDto, - ), - ); -} - -export function updateSubscriberOnlineFlagRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - UpdateSubscriberOnlineFlagRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UpdateSubscriberOnlineFlagRequestDto' from JSON`, - ); -} diff --git a/src/models/components/updatesubscriberpreferencerequestdto.ts b/src/models/components/updatesubscriberpreferencerequestdto.ts deleted file mode 100644 index 4ae4866e..00000000 --- a/src/models/components/updatesubscriberpreferencerequestdto.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - ChannelPreference, - ChannelPreference$inboundSchema, - ChannelPreference$Outbound, - ChannelPreference$outboundSchema, -} from "./channelpreference.js"; - -export type UpdateSubscriberPreferenceRequestDto = { - /** - * The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - */ - channel?: ChannelPreference | undefined; - /** - * Sets if the workflow is fully enabled for all channels or not for the subscriber. - */ - enabled?: boolean | undefined; -}; - -/** @internal */ -export const UpdateSubscriberPreferenceRequestDto$inboundSchema: z.ZodType< - UpdateSubscriberPreferenceRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - channel: ChannelPreference$inboundSchema.optional(), - enabled: z.boolean().optional(), -}); - -/** @internal */ -export type UpdateSubscriberPreferenceRequestDto$Outbound = { - channel?: ChannelPreference$Outbound | undefined; - enabled?: boolean | undefined; -}; - -/** @internal */ -export const UpdateSubscriberPreferenceRequestDto$outboundSchema: z.ZodType< - UpdateSubscriberPreferenceRequestDto$Outbound, - z.ZodTypeDef, - UpdateSubscriberPreferenceRequestDto -> = z.object({ - channel: ChannelPreference$outboundSchema.optional(), - enabled: z.boolean().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberPreferenceRequestDto$ { - /** @deprecated use `UpdateSubscriberPreferenceRequestDto$inboundSchema` instead. */ - export const inboundSchema = - UpdateSubscriberPreferenceRequestDto$inboundSchema; - /** @deprecated use `UpdateSubscriberPreferenceRequestDto$outboundSchema` instead. */ - export const outboundSchema = - UpdateSubscriberPreferenceRequestDto$outboundSchema; - /** @deprecated use `UpdateSubscriberPreferenceRequestDto$Outbound` instead. */ - export type Outbound = UpdateSubscriberPreferenceRequestDto$Outbound; -} - -export function updateSubscriberPreferenceRequestDtoToJSON( - updateSubscriberPreferenceRequestDto: UpdateSubscriberPreferenceRequestDto, -): string { - return JSON.stringify( - UpdateSubscriberPreferenceRequestDto$outboundSchema.parse( - updateSubscriberPreferenceRequestDto, - ), - ); -} - -export function updateSubscriberPreferenceRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - UpdateSubscriberPreferenceRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UpdateSubscriberPreferenceRequestDto' from JSON`, - ); -} diff --git a/src/models/components/updatesubscriberpreferenceresponsedto.ts b/src/models/components/updatesubscriberpreferenceresponsedto.ts deleted file mode 100644 index c0185123..00000000 --- a/src/models/components/updatesubscriberpreferenceresponsedto.ts +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - Preference, - Preference$inboundSchema, - Preference$Outbound, - Preference$outboundSchema, -} from "./preference.js"; -import { - TemplateResponse, - TemplateResponse$inboundSchema, - TemplateResponse$Outbound, - TemplateResponse$outboundSchema, -} from "./templateresponse.js"; - -export type UpdateSubscriberPreferenceResponseDto = { - /** - * The workflow information and if it is critical or not - */ - template: TemplateResponse; - /** - * The preferences of the subscriber regarding the related workflow - */ - preference: Preference; -}; - -/** @internal */ -export const UpdateSubscriberPreferenceResponseDto$inboundSchema: z.ZodType< - UpdateSubscriberPreferenceResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - template: TemplateResponse$inboundSchema, - preference: Preference$inboundSchema, -}); - -/** @internal */ -export type UpdateSubscriberPreferenceResponseDto$Outbound = { - template: TemplateResponse$Outbound; - preference: Preference$Outbound; -}; - -/** @internal */ -export const UpdateSubscriberPreferenceResponseDto$outboundSchema: z.ZodType< - UpdateSubscriberPreferenceResponseDto$Outbound, - z.ZodTypeDef, - UpdateSubscriberPreferenceResponseDto -> = z.object({ - template: TemplateResponse$outboundSchema, - preference: Preference$outboundSchema, -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberPreferenceResponseDto$ { - /** @deprecated use `UpdateSubscriberPreferenceResponseDto$inboundSchema` instead. */ - export const inboundSchema = - UpdateSubscriberPreferenceResponseDto$inboundSchema; - /** @deprecated use `UpdateSubscriberPreferenceResponseDto$outboundSchema` instead. */ - export const outboundSchema = - UpdateSubscriberPreferenceResponseDto$outboundSchema; - /** @deprecated use `UpdateSubscriberPreferenceResponseDto$Outbound` instead. */ - export type Outbound = UpdateSubscriberPreferenceResponseDto$Outbound; -} - -export function updateSubscriberPreferenceResponseDtoToJSON( - updateSubscriberPreferenceResponseDto: UpdateSubscriberPreferenceResponseDto, -): string { - return JSON.stringify( - UpdateSubscriberPreferenceResponseDto$outboundSchema.parse( - updateSubscriberPreferenceResponseDto, - ), - ); -} - -export function updateSubscriberPreferenceResponseDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - UpdateSubscriberPreferenceResponseDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UpdateSubscriberPreferenceResponseDto' from JSON`, - ); -} diff --git a/src/models/components/updatesubscriberrequestdto.ts b/src/models/components/updatesubscriberrequestdto.ts deleted file mode 100644 index bd97d519..00000000 --- a/src/models/components/updatesubscriberrequestdto.ts +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type UpdateSubscriberRequestDtoData = {}; - -export type UpdateSubscriberRequestDto = { - email?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - phone?: string | undefined; - avatar?: string | undefined; - locale?: string | undefined; - data?: UpdateSubscriberRequestDtoData | undefined; - channels?: Array | undefined; -}; - -/** @internal */ -export const UpdateSubscriberRequestDtoData$inboundSchema: z.ZodType< - UpdateSubscriberRequestDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type UpdateSubscriberRequestDtoData$Outbound = {}; - -/** @internal */ -export const UpdateSubscriberRequestDtoData$outboundSchema: z.ZodType< - UpdateSubscriberRequestDtoData$Outbound, - z.ZodTypeDef, - UpdateSubscriberRequestDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberRequestDtoData$ { - /** @deprecated use `UpdateSubscriberRequestDtoData$inboundSchema` instead. */ - export const inboundSchema = UpdateSubscriberRequestDtoData$inboundSchema; - /** @deprecated use `UpdateSubscriberRequestDtoData$outboundSchema` instead. */ - export const outboundSchema = UpdateSubscriberRequestDtoData$outboundSchema; - /** @deprecated use `UpdateSubscriberRequestDtoData$Outbound` instead. */ - export type Outbound = UpdateSubscriberRequestDtoData$Outbound; -} - -export function updateSubscriberRequestDtoDataToJSON( - updateSubscriberRequestDtoData: UpdateSubscriberRequestDtoData, -): string { - return JSON.stringify( - UpdateSubscriberRequestDtoData$outboundSchema.parse( - updateSubscriberRequestDtoData, - ), - ); -} - -export function updateSubscriberRequestDtoDataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => UpdateSubscriberRequestDtoData$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UpdateSubscriberRequestDtoData' from JSON`, - ); -} - -/** @internal */ -export const UpdateSubscriberRequestDto$inboundSchema: z.ZodType< - UpdateSubscriberRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - email: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - data: z.lazy(() => UpdateSubscriberRequestDtoData$inboundSchema).optional(), - channels: z.array(z.string()).optional(), -}); - -/** @internal */ -export type UpdateSubscriberRequestDto$Outbound = { - email?: string | undefined; - firstName?: string | undefined; - lastName?: string | undefined; - phone?: string | undefined; - avatar?: string | undefined; - locale?: string | undefined; - data?: UpdateSubscriberRequestDtoData$Outbound | undefined; - channels?: Array | undefined; -}; - -/** @internal */ -export const UpdateSubscriberRequestDto$outboundSchema: z.ZodType< - UpdateSubscriberRequestDto$Outbound, - z.ZodTypeDef, - UpdateSubscriberRequestDto -> = z.object({ - email: z.string().optional(), - firstName: z.string().optional(), - lastName: z.string().optional(), - phone: z.string().optional(), - avatar: z.string().optional(), - locale: z.string().optional(), - data: z.lazy(() => UpdateSubscriberRequestDtoData$outboundSchema).optional(), - channels: z.array(z.string()).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateSubscriberRequestDto$ { - /** @deprecated use `UpdateSubscriberRequestDto$inboundSchema` instead. */ - export const inboundSchema = UpdateSubscriberRequestDto$inboundSchema; - /** @deprecated use `UpdateSubscriberRequestDto$outboundSchema` instead. */ - export const outboundSchema = UpdateSubscriberRequestDto$outboundSchema; - /** @deprecated use `UpdateSubscriberRequestDto$Outbound` instead. */ - export type Outbound = UpdateSubscriberRequestDto$Outbound; -} - -export function updateSubscriberRequestDtoToJSON( - updateSubscriberRequestDto: UpdateSubscriberRequestDto, -): string { - return JSON.stringify( - UpdateSubscriberRequestDto$outboundSchema.parse(updateSubscriberRequestDto), - ); -} - -export function updateSubscriberRequestDtoFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => UpdateSubscriberRequestDto$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'UpdateSubscriberRequestDto' from JSON`, - ); -} diff --git a/src/models/components/updatetenantrequestdto.ts b/src/models/components/updatetenantrequestdto.ts deleted file mode 100644 index 126e3cd0..00000000 --- a/src/models/components/updatetenantrequestdto.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type UpdateTenantRequestDtoData = {}; - -export type UpdateTenantRequestDto = { - data?: UpdateTenantRequestDtoData | undefined; - identifier?: string | undefined; - name?: string | undefined; -}; - -/** @internal */ -export const UpdateTenantRequestDtoData$inboundSchema: z.ZodType< - UpdateTenantRequestDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type UpdateTenantRequestDtoData$Outbound = {}; - -/** @internal */ -export const UpdateTenantRequestDtoData$outboundSchema: z.ZodType< - UpdateTenantRequestDtoData$Outbound, - z.ZodTypeDef, - UpdateTenantRequestDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateTenantRequestDtoData$ { - /** @deprecated use `UpdateTenantRequestDtoData$inboundSchema` instead. */ - export const inboundSchema = UpdateTenantRequestDtoData$inboundSchema; - /** @deprecated use `UpdateTenantRequestDtoData$outboundSchema` instead. */ - export const outboundSchema = UpdateTenantRequestDtoData$outboundSchema; - /** @deprecated use `UpdateTenantRequestDtoData$Outbound` instead. */ - export type Outbound = UpdateTenantRequestDtoData$Outbound; -} - -/** @internal */ -export const UpdateTenantRequestDto$inboundSchema: z.ZodType< - UpdateTenantRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.lazy(() => UpdateTenantRequestDtoData$inboundSchema).optional(), - identifier: z.string().optional(), - name: z.string().optional(), -}); - -/** @internal */ -export type UpdateTenantRequestDto$Outbound = { - data?: UpdateTenantRequestDtoData$Outbound | undefined; - identifier?: string | undefined; - name?: string | undefined; -}; - -/** @internal */ -export const UpdateTenantRequestDto$outboundSchema: z.ZodType< - UpdateTenantRequestDto$Outbound, - z.ZodTypeDef, - UpdateTenantRequestDto -> = z.object({ - data: z.lazy(() => UpdateTenantRequestDtoData$outboundSchema).optional(), - identifier: z.string().optional(), - name: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateTenantRequestDto$ { - /** @deprecated use `UpdateTenantRequestDto$inboundSchema` instead. */ - export const inboundSchema = UpdateTenantRequestDto$inboundSchema; - /** @deprecated use `UpdateTenantRequestDto$outboundSchema` instead. */ - export const outboundSchema = UpdateTenantRequestDto$outboundSchema; - /** @deprecated use `UpdateTenantRequestDto$Outbound` instead. */ - export type Outbound = UpdateTenantRequestDto$Outbound; -} diff --git a/src/models/components/updatetenantresponsedto.ts b/src/models/components/updatetenantresponsedto.ts deleted file mode 100644 index 242af071..00000000 --- a/src/models/components/updatetenantresponsedto.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; - -export type UpdateTenantResponseDtoData = {}; - -export type UpdateTenantResponseDto = { - environmentId: string; - id: string; - createdAt: string; - data?: UpdateTenantResponseDtoData | undefined; - identifier: string; - name?: string | undefined; - updatedAt: string; -}; - -/** @internal */ -export const UpdateTenantResponseDtoData$inboundSchema: z.ZodType< - UpdateTenantResponseDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type UpdateTenantResponseDtoData$Outbound = {}; - -/** @internal */ -export const UpdateTenantResponseDtoData$outboundSchema: z.ZodType< - UpdateTenantResponseDtoData$Outbound, - z.ZodTypeDef, - UpdateTenantResponseDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateTenantResponseDtoData$ { - /** @deprecated use `UpdateTenantResponseDtoData$inboundSchema` instead. */ - export const inboundSchema = UpdateTenantResponseDtoData$inboundSchema; - /** @deprecated use `UpdateTenantResponseDtoData$outboundSchema` instead. */ - export const outboundSchema = UpdateTenantResponseDtoData$outboundSchema; - /** @deprecated use `UpdateTenantResponseDtoData$Outbound` instead. */ - export type Outbound = UpdateTenantResponseDtoData$Outbound; -} - -/** @internal */ -export const UpdateTenantResponseDto$inboundSchema: z.ZodType< - UpdateTenantResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - _environmentId: z.string(), - _id: z.string(), - createdAt: z.string(), - data: z.lazy(() => UpdateTenantResponseDtoData$inboundSchema).optional(), - identifier: z.string(), - name: z.string().optional(), - updatedAt: z.string(), -}).transform((v) => { - return remap$(v, { - "_environmentId": "environmentId", - "_id": "id", - }); -}); - -/** @internal */ -export type UpdateTenantResponseDto$Outbound = { - _environmentId: string; - _id: string; - createdAt: string; - data?: UpdateTenantResponseDtoData$Outbound | undefined; - identifier: string; - name?: string | undefined; - updatedAt: string; -}; - -/** @internal */ -export const UpdateTenantResponseDto$outboundSchema: z.ZodType< - UpdateTenantResponseDto$Outbound, - z.ZodTypeDef, - UpdateTenantResponseDto -> = z.object({ - environmentId: z.string(), - id: z.string(), - createdAt: z.string(), - data: z.lazy(() => UpdateTenantResponseDtoData$outboundSchema).optional(), - identifier: z.string(), - name: z.string().optional(), - updatedAt: z.string(), -}).transform((v) => { - return remap$(v, { - environmentId: "_environmentId", - id: "_id", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateTenantResponseDto$ { - /** @deprecated use `UpdateTenantResponseDto$inboundSchema` instead. */ - export const inboundSchema = UpdateTenantResponseDto$inboundSchema; - /** @deprecated use `UpdateTenantResponseDto$outboundSchema` instead. */ - export const outboundSchema = UpdateTenantResponseDto$outboundSchema; - /** @deprecated use `UpdateTenantResponseDto$Outbound` instead. */ - export type Outbound = UpdateTenantResponseDto$Outbound; -} diff --git a/src/models/components/updateworkflowrequestdto.ts b/src/models/components/updateworkflowrequestdto.ts deleted file mode 100644 index aa289d24..00000000 --- a/src/models/components/updateworkflowrequestdto.ts +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { - PreferenceChannels, - PreferenceChannels$inboundSchema, - PreferenceChannels$Outbound, - PreferenceChannels$outboundSchema, -} from "./preferencechannels.js"; - -export type UpdateWorkflowRequestDtoData = {}; - -export type UpdateWorkflowRequestDto = { - critical?: boolean | undefined; - data?: UpdateWorkflowRequestDtoData | undefined; - description?: string | undefined; - identifier?: string | undefined; - name: string; - notificationGroupId: string; - preferenceSettings?: PreferenceChannels | undefined; - steps?: Array | undefined; - tags?: Array | undefined; -}; - -/** @internal */ -export const UpdateWorkflowRequestDtoData$inboundSchema: z.ZodType< - UpdateWorkflowRequestDtoData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type UpdateWorkflowRequestDtoData$Outbound = {}; - -/** @internal */ -export const UpdateWorkflowRequestDtoData$outboundSchema: z.ZodType< - UpdateWorkflowRequestDtoData$Outbound, - z.ZodTypeDef, - UpdateWorkflowRequestDtoData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateWorkflowRequestDtoData$ { - /** @deprecated use `UpdateWorkflowRequestDtoData$inboundSchema` instead. */ - export const inboundSchema = UpdateWorkflowRequestDtoData$inboundSchema; - /** @deprecated use `UpdateWorkflowRequestDtoData$outboundSchema` instead. */ - export const outboundSchema = UpdateWorkflowRequestDtoData$outboundSchema; - /** @deprecated use `UpdateWorkflowRequestDtoData$Outbound` instead. */ - export type Outbound = UpdateWorkflowRequestDtoData$Outbound; -} - -/** @internal */ -export const UpdateWorkflowRequestDto$inboundSchema: z.ZodType< - UpdateWorkflowRequestDto, - z.ZodTypeDef, - unknown -> = z.object({ - critical: z.boolean().optional(), - data: z.lazy(() => UpdateWorkflowRequestDtoData$inboundSchema).optional(), - description: z.string().optional(), - identifier: z.string().optional(), - name: z.string(), - notificationGroupId: z.string(), - preferenceSettings: PreferenceChannels$inboundSchema.optional(), - steps: z.array(z.string()).optional(), - tags: z.array(z.string()).optional(), -}); - -/** @internal */ -export type UpdateWorkflowRequestDto$Outbound = { - critical?: boolean | undefined; - data?: UpdateWorkflowRequestDtoData$Outbound | undefined; - description?: string | undefined; - identifier?: string | undefined; - name: string; - notificationGroupId: string; - preferenceSettings?: PreferenceChannels$Outbound | undefined; - steps?: Array | undefined; - tags?: Array | undefined; -}; - -/** @internal */ -export const UpdateWorkflowRequestDto$outboundSchema: z.ZodType< - UpdateWorkflowRequestDto$Outbound, - z.ZodTypeDef, - UpdateWorkflowRequestDto -> = z.object({ - critical: z.boolean().optional(), - data: z.lazy(() => UpdateWorkflowRequestDtoData$outboundSchema).optional(), - description: z.string().optional(), - identifier: z.string().optional(), - name: z.string(), - notificationGroupId: z.string(), - preferenceSettings: PreferenceChannels$outboundSchema.optional(), - steps: z.array(z.string()).optional(), - tags: z.array(z.string()).optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace UpdateWorkflowRequestDto$ { - /** @deprecated use `UpdateWorkflowRequestDto$inboundSchema` instead. */ - export const inboundSchema = UpdateWorkflowRequestDto$inboundSchema; - /** @deprecated use `UpdateWorkflowRequestDto$outboundSchema` instead. */ - export const outboundSchema = UpdateWorkflowRequestDto$outboundSchema; - /** @deprecated use `UpdateWorkflowRequestDto$Outbound` instead. */ - export type Outbound = UpdateWorkflowRequestDto$Outbound; -} diff --git a/src/models/components/variablesresponsedto.ts b/src/models/components/variablesresponsedto.ts deleted file mode 100644 index 2cbba0f9..00000000 --- a/src/models/components/variablesresponsedto.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type System = {}; - -export type Translations = {}; - -export type VariablesResponseDto = { - system: System; - translations: Translations; -}; - -/** @internal */ -export const System$inboundSchema: z.ZodType = z - .object({}); - -/** @internal */ -export type System$Outbound = {}; - -/** @internal */ -export const System$outboundSchema: z.ZodType< - System$Outbound, - z.ZodTypeDef, - System -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace System$ { - /** @deprecated use `System$inboundSchema` instead. */ - export const inboundSchema = System$inboundSchema; - /** @deprecated use `System$outboundSchema` instead. */ - export const outboundSchema = System$outboundSchema; - /** @deprecated use `System$Outbound` instead. */ - export type Outbound = System$Outbound; -} - -/** @internal */ -export const Translations$inboundSchema: z.ZodType< - Translations, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type Translations$Outbound = {}; - -/** @internal */ -export const Translations$outboundSchema: z.ZodType< - Translations$Outbound, - z.ZodTypeDef, - Translations -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Translations$ { - /** @deprecated use `Translations$inboundSchema` instead. */ - export const inboundSchema = Translations$inboundSchema; - /** @deprecated use `Translations$outboundSchema` instead. */ - export const outboundSchema = Translations$outboundSchema; - /** @deprecated use `Translations$Outbound` instead. */ - export type Outbound = Translations$Outbound; -} - -/** @internal */ -export const VariablesResponseDto$inboundSchema: z.ZodType< - VariablesResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - system: z.lazy(() => System$inboundSchema), - translations: z.lazy(() => Translations$inboundSchema), -}); - -/** @internal */ -export type VariablesResponseDto$Outbound = { - system: System$Outbound; - translations: Translations$Outbound; -}; - -/** @internal */ -export const VariablesResponseDto$outboundSchema: z.ZodType< - VariablesResponseDto$Outbound, - z.ZodTypeDef, - VariablesResponseDto -> = z.object({ - system: z.lazy(() => System$outboundSchema), - translations: z.lazy(() => Translations$outboundSchema), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace VariablesResponseDto$ { - /** @deprecated use `VariablesResponseDto$inboundSchema` instead. */ - export const inboundSchema = VariablesResponseDto$inboundSchema; - /** @deprecated use `VariablesResponseDto$outboundSchema` instead. */ - export const outboundSchema = VariablesResponseDto$outboundSchema; - /** @deprecated use `VariablesResponseDto$Outbound` instead. */ - export type Outbound = VariablesResponseDto$Outbound; -} diff --git a/src/models/components/workflowresponse.ts b/src/models/components/workflowresponse.ts deleted file mode 100644 index 45f31bdd..00000000 --- a/src/models/components/workflowresponse.ts +++ /dev/null @@ -1,293 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; -import { - NotificationGroup, - NotificationGroup$inboundSchema, - NotificationGroup$Outbound, - NotificationGroup$outboundSchema, -} from "./notificationgroup.js"; -import { - NotificationStep, - NotificationStep$inboundSchema, - NotificationStep$Outbound, - NotificationStep$outboundSchema, -} from "./notificationstep.js"; -import { - NotificationTrigger, - NotificationTrigger$inboundSchema, - NotificationTrigger$Outbound, - NotificationTrigger$outboundSchema, -} from "./notificationtrigger.js"; -import { - PreferenceChannels, - PreferenceChannels$inboundSchema, - PreferenceChannels$Outbound, - PreferenceChannels$outboundSchema, -} from "./preferencechannels.js"; - -export type WorkflowResponseData = {}; - -export type WorkflowIntegrationStatus = {}; - -export type WorkflowResponse = { - id?: string | undefined; - name: string; - description: string; - active: boolean; - draft: boolean; - preferenceSettings: PreferenceChannels; - critical: boolean; - tags: Array; - steps: Array; - organizationId: string; - creatorId: string; - environmentId: string; - triggers: Array; - notificationGroupId: string; - parentId?: string | undefined; - deleted: boolean; - deletedAt: string; - deletedBy: string; - notificationGroup?: NotificationGroup | undefined; - data?: WorkflowResponseData | undefined; - workflowIntegrationStatus?: WorkflowIntegrationStatus | undefined; -}; - -/** @internal */ -export const WorkflowResponseData$inboundSchema: z.ZodType< - WorkflowResponseData, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type WorkflowResponseData$Outbound = {}; - -/** @internal */ -export const WorkflowResponseData$outboundSchema: z.ZodType< - WorkflowResponseData$Outbound, - z.ZodTypeDef, - WorkflowResponseData -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowResponseData$ { - /** @deprecated use `WorkflowResponseData$inboundSchema` instead. */ - export const inboundSchema = WorkflowResponseData$inboundSchema; - /** @deprecated use `WorkflowResponseData$outboundSchema` instead. */ - export const outboundSchema = WorkflowResponseData$outboundSchema; - /** @deprecated use `WorkflowResponseData$Outbound` instead. */ - export type Outbound = WorkflowResponseData$Outbound; -} - -export function workflowResponseDataToJSON( - workflowResponseData: WorkflowResponseData, -): string { - return JSON.stringify( - WorkflowResponseData$outboundSchema.parse(workflowResponseData), - ); -} - -export function workflowResponseDataFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => WorkflowResponseData$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'WorkflowResponseData' from JSON`, - ); -} - -/** @internal */ -export const WorkflowIntegrationStatus$inboundSchema: z.ZodType< - WorkflowIntegrationStatus, - z.ZodTypeDef, - unknown -> = z.object({}); - -/** @internal */ -export type WorkflowIntegrationStatus$Outbound = {}; - -/** @internal */ -export const WorkflowIntegrationStatus$outboundSchema: z.ZodType< - WorkflowIntegrationStatus$Outbound, - z.ZodTypeDef, - WorkflowIntegrationStatus -> = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowIntegrationStatus$ { - /** @deprecated use `WorkflowIntegrationStatus$inboundSchema` instead. */ - export const inboundSchema = WorkflowIntegrationStatus$inboundSchema; - /** @deprecated use `WorkflowIntegrationStatus$outboundSchema` instead. */ - export const outboundSchema = WorkflowIntegrationStatus$outboundSchema; - /** @deprecated use `WorkflowIntegrationStatus$Outbound` instead. */ - export type Outbound = WorkflowIntegrationStatus$Outbound; -} - -export function workflowIntegrationStatusToJSON( - workflowIntegrationStatus: WorkflowIntegrationStatus, -): string { - return JSON.stringify( - WorkflowIntegrationStatus$outboundSchema.parse(workflowIntegrationStatus), - ); -} - -export function workflowIntegrationStatusFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => WorkflowIntegrationStatus$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'WorkflowIntegrationStatus' from JSON`, - ); -} - -/** @internal */ -export const WorkflowResponse$inboundSchema: z.ZodType< - WorkflowResponse, - z.ZodTypeDef, - unknown -> = z.object({ - _id: z.string().optional(), - name: z.string(), - description: z.string(), - active: z.boolean(), - draft: z.boolean(), - preferenceSettings: PreferenceChannels$inboundSchema, - critical: z.boolean(), - tags: z.array(z.string()), - steps: z.array(NotificationStep$inboundSchema), - _organizationId: z.string(), - _creatorId: z.string(), - _environmentId: z.string(), - triggers: z.array(NotificationTrigger$inboundSchema), - _notificationGroupId: z.string(), - _parentId: z.string().optional(), - deleted: z.boolean(), - deletedAt: z.string(), - deletedBy: z.string(), - notificationGroup: NotificationGroup$inboundSchema.optional(), - data: z.lazy(() => WorkflowResponseData$inboundSchema).optional(), - workflowIntegrationStatus: z.lazy(() => - WorkflowIntegrationStatus$inboundSchema - ).optional(), -}).transform((v) => { - return remap$(v, { - "_id": "id", - "_organizationId": "organizationId", - "_creatorId": "creatorId", - "_environmentId": "environmentId", - "_notificationGroupId": "notificationGroupId", - "_parentId": "parentId", - }); -}); - -/** @internal */ -export type WorkflowResponse$Outbound = { - _id?: string | undefined; - name: string; - description: string; - active: boolean; - draft: boolean; - preferenceSettings: PreferenceChannels$Outbound; - critical: boolean; - tags: Array; - steps: Array; - _organizationId: string; - _creatorId: string; - _environmentId: string; - triggers: Array; - _notificationGroupId: string; - _parentId?: string | undefined; - deleted: boolean; - deletedAt: string; - deletedBy: string; - notificationGroup?: NotificationGroup$Outbound | undefined; - data?: WorkflowResponseData$Outbound | undefined; - workflowIntegrationStatus?: WorkflowIntegrationStatus$Outbound | undefined; -}; - -/** @internal */ -export const WorkflowResponse$outboundSchema: z.ZodType< - WorkflowResponse$Outbound, - z.ZodTypeDef, - WorkflowResponse -> = z.object({ - id: z.string().optional(), - name: z.string(), - description: z.string(), - active: z.boolean(), - draft: z.boolean(), - preferenceSettings: PreferenceChannels$outboundSchema, - critical: z.boolean(), - tags: z.array(z.string()), - steps: z.array(NotificationStep$outboundSchema), - organizationId: z.string(), - creatorId: z.string(), - environmentId: z.string(), - triggers: z.array(NotificationTrigger$outboundSchema), - notificationGroupId: z.string(), - parentId: z.string().optional(), - deleted: z.boolean(), - deletedAt: z.string(), - deletedBy: z.string(), - notificationGroup: NotificationGroup$outboundSchema.optional(), - data: z.lazy(() => WorkflowResponseData$outboundSchema).optional(), - workflowIntegrationStatus: z.lazy(() => - WorkflowIntegrationStatus$outboundSchema - ).optional(), -}).transform((v) => { - return remap$(v, { - id: "_id", - organizationId: "_organizationId", - creatorId: "_creatorId", - environmentId: "_environmentId", - notificationGroupId: "_notificationGroupId", - parentId: "_parentId", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowResponse$ { - /** @deprecated use `WorkflowResponse$inboundSchema` instead. */ - export const inboundSchema = WorkflowResponse$inboundSchema; - /** @deprecated use `WorkflowResponse$outboundSchema` instead. */ - export const outboundSchema = WorkflowResponse$outboundSchema; - /** @deprecated use `WorkflowResponse$Outbound` instead. */ - export type Outbound = WorkflowResponse$Outbound; -} - -export function workflowResponseToJSON( - workflowResponse: WorkflowResponse, -): string { - return JSON.stringify( - WorkflowResponse$outboundSchema.parse(workflowResponse), - ); -} - -export function workflowResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => WorkflowResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'WorkflowResponse' from JSON`, - ); -} diff --git a/src/models/components/workflowsresponsedto.ts b/src/models/components/workflowsresponsedto.ts deleted file mode 100644 index af8e74d6..00000000 --- a/src/models/components/workflowsresponsedto.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type WorkflowsResponseDto = { - data: Array; - page: number; - pageSize: number; - totalCount: number; -}; - -/** @internal */ -export const WorkflowsResponseDto$inboundSchema: z.ZodType< - WorkflowsResponseDto, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.array(z.string()), - page: z.number(), - pageSize: z.number(), - totalCount: z.number(), -}); - -/** @internal */ -export type WorkflowsResponseDto$Outbound = { - data: Array; - page: number; - pageSize: number; - totalCount: number; -}; - -/** @internal */ -export const WorkflowsResponseDto$outboundSchema: z.ZodType< - WorkflowsResponseDto$Outbound, - z.ZodTypeDef, - WorkflowsResponseDto -> = z.object({ - data: z.array(z.string()), - page: z.number(), - pageSize: z.number(), - totalCount: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowsResponseDto$ { - /** @deprecated use `WorkflowsResponseDto$inboundSchema` instead. */ - export const inboundSchema = WorkflowsResponseDto$inboundSchema; - /** @deprecated use `WorkflowsResponseDto$outboundSchema` instead. */ - export const outboundSchema = WorkflowsResponseDto$outboundSchema; - /** @deprecated use `WorkflowsResponseDto$Outbound` instead. */ - export type Outbound = WorkflowsResponseDto$Outbound; -} diff --git a/src/models/errors/httpclienterrors.ts b/src/models/errors/httpclienterrors.ts deleted file mode 100644 index b34f6121..00000000 --- a/src/models/errors/httpclienterrors.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -/** - * Base class for all HTTP errors. - */ -export class HTTPClientError extends Error { - /** The underlying cause of the error. */ - override readonly cause: unknown; - override name = "HTTPClientError"; - constructor(message: string, opts?: { cause?: unknown }) { - let msg = message; - if (opts?.cause) { - msg += `: ${opts.cause}`; - } - - super(msg, opts); - // In older runtimes, the cause field would not have been assigned through - // the super() call. - if (typeof this.cause === "undefined") { - this.cause = opts?.cause; - } - } -} - -/** - * An error to capture unrecognised or unexpected errors when making HTTP calls. - */ -export class UnexpectedClientError extends HTTPClientError { - override name = "UnexpectedClientError"; -} - -/** - * An error that is raised when any inputs used to create a request are invalid. - */ -export class InvalidRequestError extends HTTPClientError { - override name = "InvalidRequestError"; -} - -/** - * An error that is raised when a HTTP request was aborted by the client error. - */ -export class RequestAbortedError extends HTTPClientError { - override readonly name = "RequestAbortedError"; -} - -/** - * An error that is raised when a HTTP request timed out due to an AbortSignal - * signal timeout. - */ -export class RequestTimeoutError extends HTTPClientError { - override readonly name = "RequestTimeoutError"; -} - -/** - * An error that is raised when a HTTP client is unable to make a request to - * a server. - */ -export class ConnectionError extends HTTPClientError { - override readonly name = "ConnectionError"; -} diff --git a/src/models/errors/index.ts b/src/models/errors/index.ts deleted file mode 100644 index 900ee9d5..00000000 --- a/src/models/errors/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export * from "./httpclienterrors.js"; -export * from "./sdkerror.js"; -export * from "./sdkvalidationerror.js"; diff --git a/src/models/errors/sdkerror.ts b/src/models/errors/sdkerror.ts deleted file mode 100644 index 001f4659..00000000 --- a/src/models/errors/sdkerror.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export class SDKError extends Error { - public readonly statusCode: number; - public readonly contentType: string; - - constructor( - message: string, - public readonly rawResponse: Response, - public readonly body: string = "", - ) { - const statusCode = rawResponse.status; - const contentType = rawResponse.headers.get("content-type") || ""; - const bodyString = body.length > 0 ? `\n${body}` : ""; - - super( - `${message}: Status ${statusCode} Content-Type ${contentType} Body ${bodyString}`, - ); - - this.statusCode = statusCode; - this.contentType = contentType; - - this.name = "SDKError"; - } -} diff --git a/src/models/errors/sdkvalidationerror.ts b/src/models/errors/sdkvalidationerror.ts deleted file mode 100644 index 16929b9e..00000000 --- a/src/models/errors/sdkvalidationerror.ts +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export class SDKValidationError extends Error { - /** - * The raw value that failed validation. - */ - public readonly rawValue: unknown; - - /** - * The raw message that failed validation. - */ - public readonly rawMessage: unknown; - - constructor(message: string, cause: unknown, rawValue: unknown) { - super(`${message}: ${cause}`); - this.name = "SDKValidationError"; - this.cause = cause; - this.rawValue = rawValue; - this.rawMessage = message; - } - - /** - * Return a pretty-formatted error message if the underlying validation error - * is a ZodError or some other recognized error type, otherwise return the - * default error message. - */ - public pretty(): string { - if (this.cause instanceof z.ZodError) { - return `${this.rawMessage}\n${formatZodError(this.cause)}`; - } else { - return this.toString(); - } - } -} - -export function formatZodError(err: z.ZodError, level = 0): string { - let pre = " ".repeat(level); - pre = level > 0 ? `│${pre}` : pre; - pre += " ".repeat(level); - - let message = ""; - const append = (str: string) => (message += `\n${pre}${str}`); - - const len = err.issues.length; - const headline = len === 1 ? `${len} issue found` : `${len} issues found`; - - if (len) { - append(`┌ ${headline}:`); - } - - for (const issue of err.issues) { - let path = issue.path.join("."); - path = path ? `.${path}` : ""; - append(`│ • [${path}]: ${issue.message} (${issue.code})`); - switch (issue.code) { - case "invalid_literal": - case "invalid_type": { - append(`│ Want: ${issue.expected}`); - append(`│ Got: ${issue.received}`); - break; - } - case "unrecognized_keys": { - append(`│ Keys: ${issue.keys.join(", ")}`); - break; - } - case "invalid_enum_value": { - append(`│ Allowed: ${issue.options.join(", ")}`); - append(`│ Got: ${issue.received}`); - break; - } - case "invalid_union_discriminator": { - append(`│ Allowed: ${issue.options.join(", ")}`); - break; - } - case "invalid_union": { - const len = issue.unionErrors.length; - append( - `│ ✖︎ Attemped to deserialize into one of ${len} union members:`, - ); - issue.unionErrors.forEach((err, i) => { - append(`│ ✖︎ Member ${i + 1} of ${len}`); - append(`${formatZodError(err, level + 1)}`); - }); - } - } - } - - if (err.issues.length) { - append(`└─*`); - } - - return message.slice(1); -} diff --git a/src/models/operations/changescontrollerapplydiff.ts b/src/models/operations/changescontrollerapplydiff.ts deleted file mode 100644 index 45467b86..00000000 --- a/src/models/operations/changescontrollerapplydiff.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type ChangesControllerApplyDiffRequest = { - changeId: string; -}; - -/** @internal */ -export const ChangesControllerApplyDiffRequest$inboundSchema: z.ZodType< - ChangesControllerApplyDiffRequest, - z.ZodTypeDef, - unknown -> = z.object({ - changeId: z.string(), -}); - -/** @internal */ -export type ChangesControllerApplyDiffRequest$Outbound = { - changeId: string; -}; - -/** @internal */ -export const ChangesControllerApplyDiffRequest$outboundSchema: z.ZodType< - ChangesControllerApplyDiffRequest$Outbound, - z.ZodTypeDef, - ChangesControllerApplyDiffRequest -> = z.object({ - changeId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChangesControllerApplyDiffRequest$ { - /** @deprecated use `ChangesControllerApplyDiffRequest$inboundSchema` instead. */ - export const inboundSchema = ChangesControllerApplyDiffRequest$inboundSchema; - /** @deprecated use `ChangesControllerApplyDiffRequest$outboundSchema` instead. */ - export const outboundSchema = - ChangesControllerApplyDiffRequest$outboundSchema; - /** @deprecated use `ChangesControllerApplyDiffRequest$Outbound` instead. */ - export type Outbound = ChangesControllerApplyDiffRequest$Outbound; -} diff --git a/src/models/operations/changescontrollergetchanges.ts b/src/models/operations/changescontrollergetchanges.ts deleted file mode 100644 index fc7ab666..00000000 --- a/src/models/operations/changescontrollergetchanges.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type ChangesControllerGetChangesRequest = { - page?: number | undefined; - limit?: number | undefined; - promoted?: string | undefined; -}; - -/** @internal */ -export const ChangesControllerGetChangesRequest$inboundSchema: z.ZodType< - ChangesControllerGetChangesRequest, - z.ZodTypeDef, - unknown -> = z.object({ - page: z.number().optional(), - limit: z.number().default(10), - promoted: z.string().default("false"), -}); - -/** @internal */ -export type ChangesControllerGetChangesRequest$Outbound = { - page?: number | undefined; - limit: number; - promoted: string; -}; - -/** @internal */ -export const ChangesControllerGetChangesRequest$outboundSchema: z.ZodType< - ChangesControllerGetChangesRequest$Outbound, - z.ZodTypeDef, - ChangesControllerGetChangesRequest -> = z.object({ - page: z.number().optional(), - limit: z.number().default(10), - promoted: z.string().default("false"), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ChangesControllerGetChangesRequest$ { - /** @deprecated use `ChangesControllerGetChangesRequest$inboundSchema` instead. */ - export const inboundSchema = ChangesControllerGetChangesRequest$inboundSchema; - /** @deprecated use `ChangesControllerGetChangesRequest$outboundSchema` instead. */ - export const outboundSchema = - ChangesControllerGetChangesRequest$outboundSchema; - /** @deprecated use `ChangesControllerGetChangesRequest$Outbound` instead. */ - export type Outbound = ChangesControllerGetChangesRequest$Outbound; -} diff --git a/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts b/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts deleted file mode 100644 index a80d8b06..00000000 --- a/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EnvironmentsControllerV1GetCurrentEnvironmentResponse = { - headers: { [k: string]: Array }; - result: components.EnvironmentResponseDto; -}; - -/** @internal */ -export const EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema: - z.ZodType< - EnvironmentsControllerV1GetCurrentEnvironmentResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.EnvironmentResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.EnvironmentResponseDto$Outbound; -}; - -/** @internal */ -export const EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema: - z.ZodType< - EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound, - z.ZodTypeDef, - EnvironmentsControllerV1GetCurrentEnvironmentResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.EnvironmentResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EnvironmentsControllerV1GetCurrentEnvironmentResponse$ { - /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema` instead. */ - export const inboundSchema = - EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema; - /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema` instead. */ - export const outboundSchema = - EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema; - /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound` instead. */ - export type Outbound = - EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound; -} - -export function environmentsControllerV1GetCurrentEnvironmentResponseToJSON( - environmentsControllerV1GetCurrentEnvironmentResponse: - EnvironmentsControllerV1GetCurrentEnvironmentResponse, -): string { - return JSON.stringify( - EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema.parse( - environmentsControllerV1GetCurrentEnvironmentResponse, - ), - ); -} - -export function environmentsControllerV1GetCurrentEnvironmentResponseFromJSON( - jsonString: string, -): SafeParseResult< - EnvironmentsControllerV1GetCurrentEnvironmentResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'EnvironmentsControllerV1GetCurrentEnvironmentResponse' from JSON`, - ); -} diff --git a/src/models/operations/environmentscontrollerv1listmyenvironments.ts b/src/models/operations/environmentscontrollerv1listmyenvironments.ts deleted file mode 100644 index c2892d2f..00000000 --- a/src/models/operations/environmentscontrollerv1listmyenvironments.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EnvironmentsControllerV1ListMyEnvironmentsResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema: - z.ZodType< - EnvironmentsControllerV1ListMyEnvironmentsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.EnvironmentResponseDto$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema: - z.ZodType< - EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound, - z.ZodTypeDef, - EnvironmentsControllerV1ListMyEnvironmentsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.EnvironmentResponseDto$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EnvironmentsControllerV1ListMyEnvironmentsResponse$ { - /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema` instead. */ - export const inboundSchema = - EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema; - /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema` instead. */ - export const outboundSchema = - EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema; - /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound` instead. */ - export type Outbound = - EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound; -} - -export function environmentsControllerV1ListMyEnvironmentsResponseToJSON( - environmentsControllerV1ListMyEnvironmentsResponse: - EnvironmentsControllerV1ListMyEnvironmentsResponse, -): string { - return JSON.stringify( - EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema.parse( - environmentsControllerV1ListMyEnvironmentsResponse, - ), - ); -} - -export function environmentsControllerV1ListMyEnvironmentsResponseFromJSON( - jsonString: string, -): SafeParseResult< - EnvironmentsControllerV1ListMyEnvironmentsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'EnvironmentsControllerV1ListMyEnvironmentsResponse' from JSON`, - ); -} diff --git a/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts b/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts deleted file mode 100644 index d34a04cf..00000000 --- a/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EnvironmentsControllerV1ListOrganizationApiKeysResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema: - z.ZodType< - EnvironmentsControllerV1ListOrganizationApiKeysResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.ApiKey$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema: - z.ZodType< - EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound, - z.ZodTypeDef, - EnvironmentsControllerV1ListOrganizationApiKeysResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.ApiKey$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EnvironmentsControllerV1ListOrganizationApiKeysResponse$ { - /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema` instead. */ - export const inboundSchema = - EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema; - /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema` instead. */ - export const outboundSchema = - EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema; - /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound` instead. */ - export type Outbound = - EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound; -} - -export function environmentsControllerV1ListOrganizationApiKeysResponseToJSON( - environmentsControllerV1ListOrganizationApiKeysResponse: - EnvironmentsControllerV1ListOrganizationApiKeysResponse, -): string { - return JSON.stringify( - EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema - .parse(environmentsControllerV1ListOrganizationApiKeysResponse), - ); -} - -export function environmentsControllerV1ListOrganizationApiKeysResponseFromJSON( - jsonString: string, -): SafeParseResult< - EnvironmentsControllerV1ListOrganizationApiKeysResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'EnvironmentsControllerV1ListOrganizationApiKeysResponse' from JSON`, - ); -} diff --git a/src/models/operations/eventscontrollerbroadcasteventtoall.ts b/src/models/operations/eventscontrollerbroadcasteventtoall.ts deleted file mode 100644 index fe501917..00000000 --- a/src/models/operations/eventscontrollerbroadcasteventtoall.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EventsControllerBroadcastEventToAllResponse = { - headers: { [k: string]: Array }; - result: components.TriggerEventResponseDto; -}; - -/** @internal */ -export const EventsControllerBroadcastEventToAllResponse$inboundSchema: - z.ZodType< - EventsControllerBroadcastEventToAllResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.TriggerEventResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type EventsControllerBroadcastEventToAllResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.TriggerEventResponseDto$Outbound; -}; - -/** @internal */ -export const EventsControllerBroadcastEventToAllResponse$outboundSchema: - z.ZodType< - EventsControllerBroadcastEventToAllResponse$Outbound, - z.ZodTypeDef, - EventsControllerBroadcastEventToAllResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.TriggerEventResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EventsControllerBroadcastEventToAllResponse$ { - /** @deprecated use `EventsControllerBroadcastEventToAllResponse$inboundSchema` instead. */ - export const inboundSchema = - EventsControllerBroadcastEventToAllResponse$inboundSchema; - /** @deprecated use `EventsControllerBroadcastEventToAllResponse$outboundSchema` instead. */ - export const outboundSchema = - EventsControllerBroadcastEventToAllResponse$outboundSchema; - /** @deprecated use `EventsControllerBroadcastEventToAllResponse$Outbound` instead. */ - export type Outbound = EventsControllerBroadcastEventToAllResponse$Outbound; -} - -export function eventsControllerBroadcastEventToAllResponseToJSON( - eventsControllerBroadcastEventToAllResponse: - EventsControllerBroadcastEventToAllResponse, -): string { - return JSON.stringify( - EventsControllerBroadcastEventToAllResponse$outboundSchema.parse( - eventsControllerBroadcastEventToAllResponse, - ), - ); -} - -export function eventsControllerBroadcastEventToAllResponseFromJSON( - jsonString: string, -): SafeParseResult< - EventsControllerBroadcastEventToAllResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - EventsControllerBroadcastEventToAllResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'EventsControllerBroadcastEventToAllResponse' from JSON`, - ); -} diff --git a/src/models/operations/eventscontrollercancel.ts b/src/models/operations/eventscontrollercancel.ts deleted file mode 100644 index 1eed1469..00000000 --- a/src/models/operations/eventscontrollercancel.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EventsControllerCancelRequest = { - transactionId: string; -}; - -export type EventsControllerCancelResponse = { - headers: { [k: string]: Array }; - result: components.DataBooleanDto; -}; - -/** @internal */ -export const EventsControllerCancelRequest$inboundSchema: z.ZodType< - EventsControllerCancelRequest, - z.ZodTypeDef, - unknown -> = z.object({ - transactionId: z.string(), -}); - -/** @internal */ -export type EventsControllerCancelRequest$Outbound = { - transactionId: string; -}; - -/** @internal */ -export const EventsControllerCancelRequest$outboundSchema: z.ZodType< - EventsControllerCancelRequest$Outbound, - z.ZodTypeDef, - EventsControllerCancelRequest -> = z.object({ - transactionId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EventsControllerCancelRequest$ { - /** @deprecated use `EventsControllerCancelRequest$inboundSchema` instead. */ - export const inboundSchema = EventsControllerCancelRequest$inboundSchema; - /** @deprecated use `EventsControllerCancelRequest$outboundSchema` instead. */ - export const outboundSchema = EventsControllerCancelRequest$outboundSchema; - /** @deprecated use `EventsControllerCancelRequest$Outbound` instead. */ - export type Outbound = EventsControllerCancelRequest$Outbound; -} - -export function eventsControllerCancelRequestToJSON( - eventsControllerCancelRequest: EventsControllerCancelRequest, -): string { - return JSON.stringify( - EventsControllerCancelRequest$outboundSchema.parse( - eventsControllerCancelRequest, - ), - ); -} - -export function eventsControllerCancelRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => EventsControllerCancelRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'EventsControllerCancelRequest' from JSON`, - ); -} - -/** @internal */ -export const EventsControllerCancelResponse$inboundSchema: z.ZodType< - EventsControllerCancelResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.DataBooleanDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type EventsControllerCancelResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.DataBooleanDto$Outbound; -}; - -/** @internal */ -export const EventsControllerCancelResponse$outboundSchema: z.ZodType< - EventsControllerCancelResponse$Outbound, - z.ZodTypeDef, - EventsControllerCancelResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.DataBooleanDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EventsControllerCancelResponse$ { - /** @deprecated use `EventsControllerCancelResponse$inboundSchema` instead. */ - export const inboundSchema = EventsControllerCancelResponse$inboundSchema; - /** @deprecated use `EventsControllerCancelResponse$outboundSchema` instead. */ - export const outboundSchema = EventsControllerCancelResponse$outboundSchema; - /** @deprecated use `EventsControllerCancelResponse$Outbound` instead. */ - export type Outbound = EventsControllerCancelResponse$Outbound; -} - -export function eventsControllerCancelResponseToJSON( - eventsControllerCancelResponse: EventsControllerCancelResponse, -): string { - return JSON.stringify( - EventsControllerCancelResponse$outboundSchema.parse( - eventsControllerCancelResponse, - ), - ); -} - -export function eventsControllerCancelResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => EventsControllerCancelResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'EventsControllerCancelResponse' from JSON`, - ); -} diff --git a/src/models/operations/eventscontrollertrigger.ts b/src/models/operations/eventscontrollertrigger.ts deleted file mode 100644 index 25a5fcaa..00000000 --- a/src/models/operations/eventscontrollertrigger.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EventsControllerTriggerResponse = { - headers: { [k: string]: Array }; - result: components.TriggerEventResponseDto; -}; - -/** @internal */ -export const EventsControllerTriggerResponse$inboundSchema: z.ZodType< - EventsControllerTriggerResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.TriggerEventResponseDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type EventsControllerTriggerResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.TriggerEventResponseDto$Outbound; -}; - -/** @internal */ -export const EventsControllerTriggerResponse$outboundSchema: z.ZodType< - EventsControllerTriggerResponse$Outbound, - z.ZodTypeDef, - EventsControllerTriggerResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.TriggerEventResponseDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EventsControllerTriggerResponse$ { - /** @deprecated use `EventsControllerTriggerResponse$inboundSchema` instead. */ - export const inboundSchema = EventsControllerTriggerResponse$inboundSchema; - /** @deprecated use `EventsControllerTriggerResponse$outboundSchema` instead. */ - export const outboundSchema = EventsControllerTriggerResponse$outboundSchema; - /** @deprecated use `EventsControllerTriggerResponse$Outbound` instead. */ - export type Outbound = EventsControllerTriggerResponse$Outbound; -} - -export function eventsControllerTriggerResponseToJSON( - eventsControllerTriggerResponse: EventsControllerTriggerResponse, -): string { - return JSON.stringify( - EventsControllerTriggerResponse$outboundSchema.parse( - eventsControllerTriggerResponse, - ), - ); -} - -export function eventsControllerTriggerResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => EventsControllerTriggerResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'EventsControllerTriggerResponse' from JSON`, - ); -} diff --git a/src/models/operations/eventscontrollertriggerbulk.ts b/src/models/operations/eventscontrollertriggerbulk.ts deleted file mode 100644 index 45aa1492..00000000 --- a/src/models/operations/eventscontrollertriggerbulk.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type EventsControllerTriggerBulkResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const EventsControllerTriggerBulkResponse$inboundSchema: z.ZodType< - EventsControllerTriggerBulkResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.TriggerEventResponseDto$inboundSchema), -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type EventsControllerTriggerBulkResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const EventsControllerTriggerBulkResponse$outboundSchema: z.ZodType< - EventsControllerTriggerBulkResponse$Outbound, - z.ZodTypeDef, - EventsControllerTriggerBulkResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.TriggerEventResponseDto$outboundSchema), -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace EventsControllerTriggerBulkResponse$ { - /** @deprecated use `EventsControllerTriggerBulkResponse$inboundSchema` instead. */ - export const inboundSchema = - EventsControllerTriggerBulkResponse$inboundSchema; - /** @deprecated use `EventsControllerTriggerBulkResponse$outboundSchema` instead. */ - export const outboundSchema = - EventsControllerTriggerBulkResponse$outboundSchema; - /** @deprecated use `EventsControllerTriggerBulkResponse$Outbound` instead. */ - export type Outbound = EventsControllerTriggerBulkResponse$Outbound; -} - -export function eventsControllerTriggerBulkResponseToJSON( - eventsControllerTriggerBulkResponse: EventsControllerTriggerBulkResponse, -): string { - return JSON.stringify( - EventsControllerTriggerBulkResponse$outboundSchema.parse( - eventsControllerTriggerBulkResponse, - ), - ); -} - -export function eventsControllerTriggerBulkResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - EventsControllerTriggerBulkResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'EventsControllerTriggerBulkResponse' from JSON`, - ); -} diff --git a/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts b/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts deleted file mode 100644 index 75dbbf34..00000000 --- a/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = - { - notificationId: string; - subscriberId: string; - }; - -export type ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse = - { - headers: { [k: string]: Array }; - result: Array; - }; - -/** @internal */ -export const ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema: - z.ZodType< - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, - z.ZodTypeDef, - unknown - > = z.object({ - notificationId: z.string(), - subscriberId: z.string(), - }); - -/** @internal */ -export type ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound = - { - notificationId: string; - subscriberId: string; - }; - -/** @internal */ -export const ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema: - z.ZodType< - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound, - z.ZodTypeDef, - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest - > = z.object({ - notificationId: z.string(), - subscriberId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$ { - /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema` instead. */ - export const inboundSchema = - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema; - /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema` instead. */ - export const outboundSchema = - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema; - /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound` instead. */ - export type Outbound = - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound; -} - -export function executionDetailsControllerGetExecutionDetailsForNotificationRequestToJSON( - executionDetailsControllerGetExecutionDetailsForNotificationRequest: - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, -): string { - return JSON.stringify( - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema - .parse( - executionDetailsControllerGetExecutionDetailsForNotificationRequest, - ), - ); -} - -export function executionDetailsControllerGetExecutionDetailsForNotificationRequestFromJSON( - jsonString: string, -): SafeParseResult< - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest' from JSON`, - ); -} - -/** @internal */ -export const ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema: - z.ZodType< - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.ExecutionDetailsResponseDto$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: Array; - }; - -/** @internal */ -export const ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema: - z.ZodType< - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound, - z.ZodTypeDef, - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.ExecutionDetailsResponseDto$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$ { - /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema` instead. */ - export const inboundSchema = - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema; - /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema` instead. */ - export const outboundSchema = - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema; - /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound` instead. */ - export type Outbound = - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound; -} - -export function executionDetailsControllerGetExecutionDetailsForNotificationResponseToJSON( - executionDetailsControllerGetExecutionDetailsForNotificationResponse: - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, -): string { - return JSON.stringify( - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema - .parse( - executionDetailsControllerGetExecutionDetailsForNotificationResponse, - ), - ); -} - -export function executionDetailsControllerGetExecutionDetailsForNotificationResponseFromJSON( - jsonString: string, -): SafeParseResult< - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse' from JSON`, - ); -} diff --git a/src/models/operations/feedscontrollerdeletefeedbyid.ts b/src/models/operations/feedscontrollerdeletefeedbyid.ts deleted file mode 100644 index 0524d351..00000000 --- a/src/models/operations/feedscontrollerdeletefeedbyid.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type FeedsControllerDeleteFeedByIdRequest = { - feedId: string; -}; - -/** @internal */ -export const FeedsControllerDeleteFeedByIdRequest$inboundSchema: z.ZodType< - FeedsControllerDeleteFeedByIdRequest, - z.ZodTypeDef, - unknown -> = z.object({ - feedId: z.string(), -}); - -/** @internal */ -export type FeedsControllerDeleteFeedByIdRequest$Outbound = { - feedId: string; -}; - -/** @internal */ -export const FeedsControllerDeleteFeedByIdRequest$outboundSchema: z.ZodType< - FeedsControllerDeleteFeedByIdRequest$Outbound, - z.ZodTypeDef, - FeedsControllerDeleteFeedByIdRequest -> = z.object({ - feedId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace FeedsControllerDeleteFeedByIdRequest$ { - /** @deprecated use `FeedsControllerDeleteFeedByIdRequest$inboundSchema` instead. */ - export const inboundSchema = - FeedsControllerDeleteFeedByIdRequest$inboundSchema; - /** @deprecated use `FeedsControllerDeleteFeedByIdRequest$outboundSchema` instead. */ - export const outboundSchema = - FeedsControllerDeleteFeedByIdRequest$outboundSchema; - /** @deprecated use `FeedsControllerDeleteFeedByIdRequest$Outbound` instead. */ - export type Outbound = FeedsControllerDeleteFeedByIdRequest$Outbound; -} diff --git a/src/models/operations/index.ts b/src/models/operations/index.ts deleted file mode 100644 index 5d8c728f..00000000 --- a/src/models/operations/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export * from "./environmentscontrollerv1getcurrentenvironment.js"; -export * from "./environmentscontrollerv1listmyenvironments.js"; -export * from "./environmentscontrollerv1listorganizationapikeys.js"; -export * from "./eventscontrollerbroadcasteventtoall.js"; -export * from "./eventscontrollercancel.js"; -export * from "./eventscontrollertrigger.js"; -export * from "./eventscontrollertriggerbulk.js"; -export * from "./executiondetailscontrollergetexecutiondetailsfornotification.js"; -export * from "./integrationscontrollercreateintegration.js"; -export * from "./integrationscontrollergetactiveintegrations.js"; -export * from "./integrationscontrollergetwebhooksupportstatus.js"; -export * from "./integrationscontrollerlistintegrations.js"; -export * from "./integrationscontrollerremoveintegration.js"; -export * from "./integrationscontrollersetintegrationasprimary.js"; -export * from "./integrationscontrollerupdateintegrationbyid.js"; -export * from "./messagescontrollerdeletemessage.js"; -export * from "./messagescontrollerdeletemessagesbytransactionid.js"; -export * from "./messagescontrollergetmessages.js"; -export * from "./notificationgroupscontrollercreatenotificationgroup.js"; -export * from "./notificationgroupscontrollerdeletenotificationgroup.js"; -export * from "./notificationgroupscontrollergetnotificationgroup.js"; -export * from "./notificationgroupscontrollerlistnotificationgroups.js"; -export * from "./notificationgroupscontrollerupdatenotificationgroup.js"; -export * from "./notificationscontrollergetactivitygraphstats.js"; -export * from "./notificationscontrollergetactivitystats.js"; -export * from "./notificationscontrollergetnotification.js"; -export * from "./notificationscontrollerlistnotifications.js"; -export * from "./subscriberscontrollerbulkcreatesubscribers.js"; -export * from "./subscriberscontrollerchataccessoauth.js"; -export * from "./subscriberscontrollerchatoauthcallback.js"; -export * from "./subscriberscontrollercreatesubscriber.js"; -export * from "./subscriberscontrollerdeletesubscribercredentials.js"; -export * from "./subscriberscontrollergetnotificationsfeed.js"; -export * from "./subscriberscontrollergetsubscriber.js"; -export * from "./subscriberscontrollergetsubscriberpreferencebylevel.js"; -export * from "./subscriberscontrollergetunseencount.js"; -export * from "./subscriberscontrollerlistsubscriberpreferences.js"; -export * from "./subscriberscontrollerlistsubscribers.js"; -export * from "./subscriberscontrollermarkactionasseen.js"; -export * from "./subscriberscontrollermarkallunreadasread.js"; -export * from "./subscriberscontrollermarkmessagesas.js"; -export * from "./subscriberscontrollermodifysubscriberchannel.js"; -export * from "./subscriberscontrollerremovesubscriber.js"; -export * from "./subscriberscontrollerupdatesubscriber.js"; -export * from "./subscriberscontrollerupdatesubscriberchannel.js"; -export * from "./subscriberscontrollerupdatesubscriberglobalpreferences.js"; -export * from "./subscriberscontrollerupdatesubscriberonlineflag.js"; -export * from "./subscriberscontrollerupdatesubscriberpreference.js"; -export * from "./topicscontrolleraddsubscribers.js"; -export * from "./topicscontrollercreatetopic.js"; -export * from "./topicscontrollerdeletetopic.js"; -export * from "./topicscontrollergettopic.js"; -export * from "./topicscontrollergettopicsubscriber.js"; -export * from "./topicscontrollerlisttopics.js"; -export * from "./topicscontrollerremovesubscribers.js"; -export * from "./topicscontrollerrenametopic.js"; diff --git a/src/models/operations/integrationscontrollercreateintegration.ts b/src/models/operations/integrationscontrollercreateintegration.ts deleted file mode 100644 index 8e603d05..00000000 --- a/src/models/operations/integrationscontrollercreateintegration.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type IntegrationsControllerCreateIntegrationResponse = { - headers: { [k: string]: Array }; - result: components.IntegrationResponseDto; -}; - -/** @internal */ -export const IntegrationsControllerCreateIntegrationResponse$inboundSchema: - z.ZodType< - IntegrationsControllerCreateIntegrationResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.IntegrationResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type IntegrationsControllerCreateIntegrationResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.IntegrationResponseDto$Outbound; -}; - -/** @internal */ -export const IntegrationsControllerCreateIntegrationResponse$outboundSchema: - z.ZodType< - IntegrationsControllerCreateIntegrationResponse$Outbound, - z.ZodTypeDef, - IntegrationsControllerCreateIntegrationResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.IntegrationResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerCreateIntegrationResponse$ { - /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerCreateIntegrationResponse$inboundSchema; - /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerCreateIntegrationResponse$outboundSchema; - /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$Outbound` instead. */ - export type Outbound = - IntegrationsControllerCreateIntegrationResponse$Outbound; -} - -export function integrationsControllerCreateIntegrationResponseToJSON( - integrationsControllerCreateIntegrationResponse: - IntegrationsControllerCreateIntegrationResponse, -): string { - return JSON.stringify( - IntegrationsControllerCreateIntegrationResponse$outboundSchema.parse( - integrationsControllerCreateIntegrationResponse, - ), - ); -} - -export function integrationsControllerCreateIntegrationResponseFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerCreateIntegrationResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerCreateIntegrationResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerCreateIntegrationResponse' from JSON`, - ); -} diff --git a/src/models/operations/integrationscontrollergetactiveintegrations.ts b/src/models/operations/integrationscontrollergetactiveintegrations.ts deleted file mode 100644 index 44eab8ee..00000000 --- a/src/models/operations/integrationscontrollergetactiveintegrations.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type IntegrationsControllerGetActiveIntegrationsResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema: - z.ZodType< - IntegrationsControllerGetActiveIntegrationsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.IntegrationResponseDto$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type IntegrationsControllerGetActiveIntegrationsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema: - z.ZodType< - IntegrationsControllerGetActiveIntegrationsResponse$Outbound, - z.ZodTypeDef, - IntegrationsControllerGetActiveIntegrationsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.IntegrationResponseDto$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerGetActiveIntegrationsResponse$ { - /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema; - /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema; - /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$Outbound` instead. */ - export type Outbound = - IntegrationsControllerGetActiveIntegrationsResponse$Outbound; -} - -export function integrationsControllerGetActiveIntegrationsResponseToJSON( - integrationsControllerGetActiveIntegrationsResponse: - IntegrationsControllerGetActiveIntegrationsResponse, -): string { - return JSON.stringify( - IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema.parse( - integrationsControllerGetActiveIntegrationsResponse, - ), - ); -} - -export function integrationsControllerGetActiveIntegrationsResponseFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerGetActiveIntegrationsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerGetActiveIntegrationsResponse' from JSON`, - ); -} diff --git a/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts b/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts deleted file mode 100644 index 326ed208..00000000 --- a/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type IntegrationsControllerGetWebhookSupportStatusRequest = { - providerOrIntegrationId: string; -}; - -export type IntegrationsControllerGetWebhookSupportStatusResponse = { - headers: { [k: string]: Array }; - result: boolean; -}; - -/** @internal */ -export const IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema: - z.ZodType< - IntegrationsControllerGetWebhookSupportStatusRequest, - z.ZodTypeDef, - unknown - > = z.object({ - providerOrIntegrationId: z.string(), - }); - -/** @internal */ -export type IntegrationsControllerGetWebhookSupportStatusRequest$Outbound = { - providerOrIntegrationId: string; -}; - -/** @internal */ -export const IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema: - z.ZodType< - IntegrationsControllerGetWebhookSupportStatusRequest$Outbound, - z.ZodTypeDef, - IntegrationsControllerGetWebhookSupportStatusRequest - > = z.object({ - providerOrIntegrationId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerGetWebhookSupportStatusRequest$ { - /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema; - /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema; - /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusRequest$Outbound` instead. */ - export type Outbound = - IntegrationsControllerGetWebhookSupportStatusRequest$Outbound; -} - -export function integrationsControllerGetWebhookSupportStatusRequestToJSON( - integrationsControllerGetWebhookSupportStatusRequest: - IntegrationsControllerGetWebhookSupportStatusRequest, -): string { - return JSON.stringify( - IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema.parse( - integrationsControllerGetWebhookSupportStatusRequest, - ), - ); -} - -export function integrationsControllerGetWebhookSupportStatusRequestFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerGetWebhookSupportStatusRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerGetWebhookSupportStatusRequest' from JSON`, - ); -} - -/** @internal */ -export const IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema: - z.ZodType< - IntegrationsControllerGetWebhookSupportStatusResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.boolean(), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type IntegrationsControllerGetWebhookSupportStatusResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: boolean; -}; - -/** @internal */ -export const IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema: - z.ZodType< - IntegrationsControllerGetWebhookSupportStatusResponse$Outbound, - z.ZodTypeDef, - IntegrationsControllerGetWebhookSupportStatusResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.boolean(), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerGetWebhookSupportStatusResponse$ { - /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema; - /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema; - /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$Outbound` instead. */ - export type Outbound = - IntegrationsControllerGetWebhookSupportStatusResponse$Outbound; -} - -export function integrationsControllerGetWebhookSupportStatusResponseToJSON( - integrationsControllerGetWebhookSupportStatusResponse: - IntegrationsControllerGetWebhookSupportStatusResponse, -): string { - return JSON.stringify( - IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema.parse( - integrationsControllerGetWebhookSupportStatusResponse, - ), - ); -} - -export function integrationsControllerGetWebhookSupportStatusResponseFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerGetWebhookSupportStatusResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerGetWebhookSupportStatusResponse' from JSON`, - ); -} diff --git a/src/models/operations/integrationscontrollerlistintegrations.ts b/src/models/operations/integrationscontrollerlistintegrations.ts deleted file mode 100644 index 6b0b65f9..00000000 --- a/src/models/operations/integrationscontrollerlistintegrations.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type IntegrationsControllerListIntegrationsResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const IntegrationsControllerListIntegrationsResponse$inboundSchema: - z.ZodType< - IntegrationsControllerListIntegrationsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.IntegrationResponseDto$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type IntegrationsControllerListIntegrationsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const IntegrationsControllerListIntegrationsResponse$outboundSchema: - z.ZodType< - IntegrationsControllerListIntegrationsResponse$Outbound, - z.ZodTypeDef, - IntegrationsControllerListIntegrationsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.IntegrationResponseDto$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerListIntegrationsResponse$ { - /** @deprecated use `IntegrationsControllerListIntegrationsResponse$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerListIntegrationsResponse$inboundSchema; - /** @deprecated use `IntegrationsControllerListIntegrationsResponse$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerListIntegrationsResponse$outboundSchema; - /** @deprecated use `IntegrationsControllerListIntegrationsResponse$Outbound` instead. */ - export type Outbound = - IntegrationsControllerListIntegrationsResponse$Outbound; -} - -export function integrationsControllerListIntegrationsResponseToJSON( - integrationsControllerListIntegrationsResponse: - IntegrationsControllerListIntegrationsResponse, -): string { - return JSON.stringify( - IntegrationsControllerListIntegrationsResponse$outboundSchema.parse( - integrationsControllerListIntegrationsResponse, - ), - ); -} - -export function integrationsControllerListIntegrationsResponseFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerListIntegrationsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerListIntegrationsResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerListIntegrationsResponse' from JSON`, - ); -} diff --git a/src/models/operations/integrationscontrollerremoveintegration.ts b/src/models/operations/integrationscontrollerremoveintegration.ts deleted file mode 100644 index bcdec774..00000000 --- a/src/models/operations/integrationscontrollerremoveintegration.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type IntegrationsControllerRemoveIntegrationRequest = { - integrationId: string; -}; - -export type IntegrationsControllerRemoveIntegrationResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const IntegrationsControllerRemoveIntegrationRequest$inboundSchema: - z.ZodType< - IntegrationsControllerRemoveIntegrationRequest, - z.ZodTypeDef, - unknown - > = z.object({ - integrationId: z.string(), - }); - -/** @internal */ -export type IntegrationsControllerRemoveIntegrationRequest$Outbound = { - integrationId: string; -}; - -/** @internal */ -export const IntegrationsControllerRemoveIntegrationRequest$outboundSchema: - z.ZodType< - IntegrationsControllerRemoveIntegrationRequest$Outbound, - z.ZodTypeDef, - IntegrationsControllerRemoveIntegrationRequest - > = z.object({ - integrationId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerRemoveIntegrationRequest$ { - /** @deprecated use `IntegrationsControllerRemoveIntegrationRequest$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerRemoveIntegrationRequest$inboundSchema; - /** @deprecated use `IntegrationsControllerRemoveIntegrationRequest$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerRemoveIntegrationRequest$outboundSchema; - /** @deprecated use `IntegrationsControllerRemoveIntegrationRequest$Outbound` instead. */ - export type Outbound = - IntegrationsControllerRemoveIntegrationRequest$Outbound; -} - -export function integrationsControllerRemoveIntegrationRequestToJSON( - integrationsControllerRemoveIntegrationRequest: - IntegrationsControllerRemoveIntegrationRequest, -): string { - return JSON.stringify( - IntegrationsControllerRemoveIntegrationRequest$outboundSchema.parse( - integrationsControllerRemoveIntegrationRequest, - ), - ); -} - -export function integrationsControllerRemoveIntegrationRequestFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerRemoveIntegrationRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerRemoveIntegrationRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerRemoveIntegrationRequest' from JSON`, - ); -} - -/** @internal */ -export const IntegrationsControllerRemoveIntegrationResponse$inboundSchema: - z.ZodType< - IntegrationsControllerRemoveIntegrationResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.IntegrationResponseDto$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type IntegrationsControllerRemoveIntegrationResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const IntegrationsControllerRemoveIntegrationResponse$outboundSchema: - z.ZodType< - IntegrationsControllerRemoveIntegrationResponse$Outbound, - z.ZodTypeDef, - IntegrationsControllerRemoveIntegrationResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.IntegrationResponseDto$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerRemoveIntegrationResponse$ { - /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerRemoveIntegrationResponse$inboundSchema; - /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerRemoveIntegrationResponse$outboundSchema; - /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$Outbound` instead. */ - export type Outbound = - IntegrationsControllerRemoveIntegrationResponse$Outbound; -} - -export function integrationsControllerRemoveIntegrationResponseToJSON( - integrationsControllerRemoveIntegrationResponse: - IntegrationsControllerRemoveIntegrationResponse, -): string { - return JSON.stringify( - IntegrationsControllerRemoveIntegrationResponse$outboundSchema.parse( - integrationsControllerRemoveIntegrationResponse, - ), - ); -} - -export function integrationsControllerRemoveIntegrationResponseFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerRemoveIntegrationResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerRemoveIntegrationResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerRemoveIntegrationResponse' from JSON`, - ); -} diff --git a/src/models/operations/integrationscontrollersetintegrationasprimary.ts b/src/models/operations/integrationscontrollersetintegrationasprimary.ts deleted file mode 100644 index 454f8440..00000000 --- a/src/models/operations/integrationscontrollersetintegrationasprimary.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type IntegrationsControllerSetIntegrationAsPrimaryRequest = { - integrationId: string; -}; - -export type IntegrationsControllerSetIntegrationAsPrimaryResponse = { - headers: { [k: string]: Array }; - result: components.IntegrationResponseDto; -}; - -/** @internal */ -export const IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema: - z.ZodType< - IntegrationsControllerSetIntegrationAsPrimaryRequest, - z.ZodTypeDef, - unknown - > = z.object({ - integrationId: z.string(), - }); - -/** @internal */ -export type IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound = { - integrationId: string; -}; - -/** @internal */ -export const IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema: - z.ZodType< - IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound, - z.ZodTypeDef, - IntegrationsControllerSetIntegrationAsPrimaryRequest - > = z.object({ - integrationId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerSetIntegrationAsPrimaryRequest$ { - /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema; - /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema; - /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound` instead. */ - export type Outbound = - IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound; -} - -export function integrationsControllerSetIntegrationAsPrimaryRequestToJSON( - integrationsControllerSetIntegrationAsPrimaryRequest: - IntegrationsControllerSetIntegrationAsPrimaryRequest, -): string { - return JSON.stringify( - IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema.parse( - integrationsControllerSetIntegrationAsPrimaryRequest, - ), - ); -} - -export function integrationsControllerSetIntegrationAsPrimaryRequestFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerSetIntegrationAsPrimaryRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerSetIntegrationAsPrimaryRequest' from JSON`, - ); -} - -/** @internal */ -export const IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema: - z.ZodType< - IntegrationsControllerSetIntegrationAsPrimaryResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.IntegrationResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.IntegrationResponseDto$Outbound; -}; - -/** @internal */ -export const IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema: - z.ZodType< - IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound, - z.ZodTypeDef, - IntegrationsControllerSetIntegrationAsPrimaryResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.IntegrationResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerSetIntegrationAsPrimaryResponse$ { - /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema; - /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema; - /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound` instead. */ - export type Outbound = - IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound; -} - -export function integrationsControllerSetIntegrationAsPrimaryResponseToJSON( - integrationsControllerSetIntegrationAsPrimaryResponse: - IntegrationsControllerSetIntegrationAsPrimaryResponse, -): string { - return JSON.stringify( - IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema.parse( - integrationsControllerSetIntegrationAsPrimaryResponse, - ), - ); -} - -export function integrationsControllerSetIntegrationAsPrimaryResponseFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerSetIntegrationAsPrimaryResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerSetIntegrationAsPrimaryResponse' from JSON`, - ); -} diff --git a/src/models/operations/integrationscontrollerupdateintegrationbyid.ts b/src/models/operations/integrationscontrollerupdateintegrationbyid.ts deleted file mode 100644 index f3bd1193..00000000 --- a/src/models/operations/integrationscontrollerupdateintegrationbyid.ts +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type IntegrationsControllerUpdateIntegrationByIdRequest = { - integrationId: string; - updateIntegrationRequestDto: components.UpdateIntegrationRequestDto; -}; - -export type IntegrationsControllerUpdateIntegrationByIdResponse = { - headers: { [k: string]: Array }; - result: components.IntegrationResponseDto; -}; - -/** @internal */ -export const IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema: - z.ZodType< - IntegrationsControllerUpdateIntegrationByIdRequest, - z.ZodTypeDef, - unknown - > = z.object({ - integrationId: z.string(), - UpdateIntegrationRequestDto: - components.UpdateIntegrationRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateIntegrationRequestDto": "updateIntegrationRequestDto", - }); - }); - -/** @internal */ -export type IntegrationsControllerUpdateIntegrationByIdRequest$Outbound = { - integrationId: string; - UpdateIntegrationRequestDto: components.UpdateIntegrationRequestDto$Outbound; -}; - -/** @internal */ -export const IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema: - z.ZodType< - IntegrationsControllerUpdateIntegrationByIdRequest$Outbound, - z.ZodTypeDef, - IntegrationsControllerUpdateIntegrationByIdRequest - > = z.object({ - integrationId: z.string(), - updateIntegrationRequestDto: - components.UpdateIntegrationRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateIntegrationRequestDto: "UpdateIntegrationRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerUpdateIntegrationByIdRequest$ { - /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema; - /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema; - /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdRequest$Outbound` instead. */ - export type Outbound = - IntegrationsControllerUpdateIntegrationByIdRequest$Outbound; -} - -export function integrationsControllerUpdateIntegrationByIdRequestToJSON( - integrationsControllerUpdateIntegrationByIdRequest: - IntegrationsControllerUpdateIntegrationByIdRequest, -): string { - return JSON.stringify( - IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema.parse( - integrationsControllerUpdateIntegrationByIdRequest, - ), - ); -} - -export function integrationsControllerUpdateIntegrationByIdRequestFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerUpdateIntegrationByIdRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerUpdateIntegrationByIdRequest' from JSON`, - ); -} - -/** @internal */ -export const IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema: - z.ZodType< - IntegrationsControllerUpdateIntegrationByIdResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.IntegrationResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type IntegrationsControllerUpdateIntegrationByIdResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.IntegrationResponseDto$Outbound; -}; - -/** @internal */ -export const IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema: - z.ZodType< - IntegrationsControllerUpdateIntegrationByIdResponse$Outbound, - z.ZodTypeDef, - IntegrationsControllerUpdateIntegrationByIdResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.IntegrationResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace IntegrationsControllerUpdateIntegrationByIdResponse$ { - /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema` instead. */ - export const inboundSchema = - IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema; - /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema` instead. */ - export const outboundSchema = - IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema; - /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$Outbound` instead. */ - export type Outbound = - IntegrationsControllerUpdateIntegrationByIdResponse$Outbound; -} - -export function integrationsControllerUpdateIntegrationByIdResponseToJSON( - integrationsControllerUpdateIntegrationByIdResponse: - IntegrationsControllerUpdateIntegrationByIdResponse, -): string { - return JSON.stringify( - IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema.parse( - integrationsControllerUpdateIntegrationByIdResponse, - ), - ); -} - -export function integrationsControllerUpdateIntegrationByIdResponseFromJSON( - jsonString: string, -): SafeParseResult< - IntegrationsControllerUpdateIntegrationByIdResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'IntegrationsControllerUpdateIntegrationByIdResponse' from JSON`, - ); -} diff --git a/src/models/operations/layoutscontrollerdeletelayout.ts b/src/models/operations/layoutscontrollerdeletelayout.ts deleted file mode 100644 index a9f863fc..00000000 --- a/src/models/operations/layoutscontrollerdeletelayout.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type LayoutsControllerDeleteLayoutRequest = { - /** - * The layout id - */ - layoutId: string; -}; - -/** @internal */ -export const LayoutsControllerDeleteLayoutRequest$inboundSchema: z.ZodType< - LayoutsControllerDeleteLayoutRequest, - z.ZodTypeDef, - unknown -> = z.object({ - layoutId: z.string(), -}); - -/** @internal */ -export type LayoutsControllerDeleteLayoutRequest$Outbound = { - layoutId: string; -}; - -/** @internal */ -export const LayoutsControllerDeleteLayoutRequest$outboundSchema: z.ZodType< - LayoutsControllerDeleteLayoutRequest$Outbound, - z.ZodTypeDef, - LayoutsControllerDeleteLayoutRequest -> = z.object({ - layoutId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace LayoutsControllerDeleteLayoutRequest$ { - /** @deprecated use `LayoutsControllerDeleteLayoutRequest$inboundSchema` instead. */ - export const inboundSchema = - LayoutsControllerDeleteLayoutRequest$inboundSchema; - /** @deprecated use `LayoutsControllerDeleteLayoutRequest$outboundSchema` instead. */ - export const outboundSchema = - LayoutsControllerDeleteLayoutRequest$outboundSchema; - /** @deprecated use `LayoutsControllerDeleteLayoutRequest$Outbound` instead. */ - export type Outbound = LayoutsControllerDeleteLayoutRequest$Outbound; -} diff --git a/src/models/operations/layoutscontrollergetlayout.ts b/src/models/operations/layoutscontrollergetlayout.ts deleted file mode 100644 index 972044e8..00000000 --- a/src/models/operations/layoutscontrollergetlayout.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type LayoutsControllerGetLayoutRequest = { - /** - * The layout id - */ - layoutId: string; -}; - -/** @internal */ -export const LayoutsControllerGetLayoutRequest$inboundSchema: z.ZodType< - LayoutsControllerGetLayoutRequest, - z.ZodTypeDef, - unknown -> = z.object({ - layoutId: z.string(), -}); - -/** @internal */ -export type LayoutsControllerGetLayoutRequest$Outbound = { - layoutId: string; -}; - -/** @internal */ -export const LayoutsControllerGetLayoutRequest$outboundSchema: z.ZodType< - LayoutsControllerGetLayoutRequest$Outbound, - z.ZodTypeDef, - LayoutsControllerGetLayoutRequest -> = z.object({ - layoutId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace LayoutsControllerGetLayoutRequest$ { - /** @deprecated use `LayoutsControllerGetLayoutRequest$inboundSchema` instead. */ - export const inboundSchema = LayoutsControllerGetLayoutRequest$inboundSchema; - /** @deprecated use `LayoutsControllerGetLayoutRequest$outboundSchema` instead. */ - export const outboundSchema = - LayoutsControllerGetLayoutRequest$outboundSchema; - /** @deprecated use `LayoutsControllerGetLayoutRequest$Outbound` instead. */ - export type Outbound = LayoutsControllerGetLayoutRequest$Outbound; -} diff --git a/src/models/operations/layoutscontrollerlistlayouts.ts b/src/models/operations/layoutscontrollerlistlayouts.ts deleted file mode 100644 index 3d7e1a80..00000000 --- a/src/models/operations/layoutscontrollerlistlayouts.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { ClosedEnum } from "../../types/enums.js"; - -/** - * Direction of the sorting query param - */ -export const OrderBy = { - Asc: "ASC", - Desc: "DESC", -} as const; -/** - * Direction of the sorting query param - */ -export type OrderBy = ClosedEnum; - -export type LayoutsControllerListLayoutsRequest = { - /** - * Number of page for pagination - */ - page?: number | undefined; - /** - * Size of page for pagination - */ - pageSize?: number | undefined; - /** - * Sort field. Currently only supported `createdAt` - */ - sortBy?: string | undefined; - /** - * Direction of the sorting query param - */ - orderBy?: OrderBy | undefined; -}; - -/** @internal */ -export const OrderBy$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(OrderBy); - -/** @internal */ -export const OrderBy$outboundSchema: z.ZodNativeEnum = - OrderBy$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace OrderBy$ { - /** @deprecated use `OrderBy$inboundSchema` instead. */ - export const inboundSchema = OrderBy$inboundSchema; - /** @deprecated use `OrderBy$outboundSchema` instead. */ - export const outboundSchema = OrderBy$outboundSchema; -} - -/** @internal */ -export const LayoutsControllerListLayoutsRequest$inboundSchema: z.ZodType< - LayoutsControllerListLayoutsRequest, - z.ZodTypeDef, - unknown -> = z.object({ - page: z.number().optional(), - pageSize: z.number().optional(), - sortBy: z.string().optional(), - orderBy: OrderBy$inboundSchema.optional(), -}); - -/** @internal */ -export type LayoutsControllerListLayoutsRequest$Outbound = { - page?: number | undefined; - pageSize?: number | undefined; - sortBy?: string | undefined; - orderBy?: string | undefined; -}; - -/** @internal */ -export const LayoutsControllerListLayoutsRequest$outboundSchema: z.ZodType< - LayoutsControllerListLayoutsRequest$Outbound, - z.ZodTypeDef, - LayoutsControllerListLayoutsRequest -> = z.object({ - page: z.number().optional(), - pageSize: z.number().optional(), - sortBy: z.string().optional(), - orderBy: OrderBy$outboundSchema.optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace LayoutsControllerListLayoutsRequest$ { - /** @deprecated use `LayoutsControllerListLayoutsRequest$inboundSchema` instead. */ - export const inboundSchema = - LayoutsControllerListLayoutsRequest$inboundSchema; - /** @deprecated use `LayoutsControllerListLayoutsRequest$outboundSchema` instead. */ - export const outboundSchema = - LayoutsControllerListLayoutsRequest$outboundSchema; - /** @deprecated use `LayoutsControllerListLayoutsRequest$Outbound` instead. */ - export type Outbound = LayoutsControllerListLayoutsRequest$Outbound; -} diff --git a/src/models/operations/layoutscontrollersetdefaultlayout.ts b/src/models/operations/layoutscontrollersetdefaultlayout.ts deleted file mode 100644 index e0c014cb..00000000 --- a/src/models/operations/layoutscontrollersetdefaultlayout.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type LayoutsControllerSetDefaultLayoutRequest = { - /** - * The layout id - */ - layoutId: string; -}; - -/** @internal */ -export const LayoutsControllerSetDefaultLayoutRequest$inboundSchema: z.ZodType< - LayoutsControllerSetDefaultLayoutRequest, - z.ZodTypeDef, - unknown -> = z.object({ - layoutId: z.string(), -}); - -/** @internal */ -export type LayoutsControllerSetDefaultLayoutRequest$Outbound = { - layoutId: string; -}; - -/** @internal */ -export const LayoutsControllerSetDefaultLayoutRequest$outboundSchema: z.ZodType< - LayoutsControllerSetDefaultLayoutRequest$Outbound, - z.ZodTypeDef, - LayoutsControllerSetDefaultLayoutRequest -> = z.object({ - layoutId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace LayoutsControllerSetDefaultLayoutRequest$ { - /** @deprecated use `LayoutsControllerSetDefaultLayoutRequest$inboundSchema` instead. */ - export const inboundSchema = - LayoutsControllerSetDefaultLayoutRequest$inboundSchema; - /** @deprecated use `LayoutsControllerSetDefaultLayoutRequest$outboundSchema` instead. */ - export const outboundSchema = - LayoutsControllerSetDefaultLayoutRequest$outboundSchema; - /** @deprecated use `LayoutsControllerSetDefaultLayoutRequest$Outbound` instead. */ - export type Outbound = LayoutsControllerSetDefaultLayoutRequest$Outbound; -} diff --git a/src/models/operations/layoutscontrollerupdatelayout.ts b/src/models/operations/layoutscontrollerupdatelayout.ts deleted file mode 100644 index 9891dd3d..00000000 --- a/src/models/operations/layoutscontrollerupdatelayout.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import * as components from "../components/index.js"; - -export type LayoutsControllerUpdateLayoutRequest = { - /** - * The layout id - */ - layoutId: string; - updateLayoutRequestDto: components.UpdateLayoutRequestDto; -}; - -/** @internal */ -export const LayoutsControllerUpdateLayoutRequest$inboundSchema: z.ZodType< - LayoutsControllerUpdateLayoutRequest, - z.ZodTypeDef, - unknown -> = z.object({ - layoutId: z.string(), - UpdateLayoutRequestDto: components.UpdateLayoutRequestDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "UpdateLayoutRequestDto": "updateLayoutRequestDto", - }); -}); - -/** @internal */ -export type LayoutsControllerUpdateLayoutRequest$Outbound = { - layoutId: string; - UpdateLayoutRequestDto: components.UpdateLayoutRequestDto$Outbound; -}; - -/** @internal */ -export const LayoutsControllerUpdateLayoutRequest$outboundSchema: z.ZodType< - LayoutsControllerUpdateLayoutRequest$Outbound, - z.ZodTypeDef, - LayoutsControllerUpdateLayoutRequest -> = z.object({ - layoutId: z.string(), - updateLayoutRequestDto: components.UpdateLayoutRequestDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - updateLayoutRequestDto: "UpdateLayoutRequestDto", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace LayoutsControllerUpdateLayoutRequest$ { - /** @deprecated use `LayoutsControllerUpdateLayoutRequest$inboundSchema` instead. */ - export const inboundSchema = - LayoutsControllerUpdateLayoutRequest$inboundSchema; - /** @deprecated use `LayoutsControllerUpdateLayoutRequest$outboundSchema` instead. */ - export const outboundSchema = - LayoutsControllerUpdateLayoutRequest$outboundSchema; - /** @deprecated use `LayoutsControllerUpdateLayoutRequest$Outbound` instead. */ - export type Outbound = LayoutsControllerUpdateLayoutRequest$Outbound; -} diff --git a/src/models/operations/messagescontrollerdeletemessage.ts b/src/models/operations/messagescontrollerdeletemessage.ts deleted file mode 100644 index fc4b81d6..00000000 --- a/src/models/operations/messagescontrollerdeletemessage.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type MessagesControllerDeleteMessageRequest = { - messageId: string; -}; - -export type MessagesControllerDeleteMessageResponse = { - headers: { [k: string]: Array }; - result: components.DeleteMessageResponseDto; -}; - -/** @internal */ -export const MessagesControllerDeleteMessageRequest$inboundSchema: z.ZodType< - MessagesControllerDeleteMessageRequest, - z.ZodTypeDef, - unknown -> = z.object({ - messageId: z.string(), -}); - -/** @internal */ -export type MessagesControllerDeleteMessageRequest$Outbound = { - messageId: string; -}; - -/** @internal */ -export const MessagesControllerDeleteMessageRequest$outboundSchema: z.ZodType< - MessagesControllerDeleteMessageRequest$Outbound, - z.ZodTypeDef, - MessagesControllerDeleteMessageRequest -> = z.object({ - messageId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessagesControllerDeleteMessageRequest$ { - /** @deprecated use `MessagesControllerDeleteMessageRequest$inboundSchema` instead. */ - export const inboundSchema = - MessagesControllerDeleteMessageRequest$inboundSchema; - /** @deprecated use `MessagesControllerDeleteMessageRequest$outboundSchema` instead. */ - export const outboundSchema = - MessagesControllerDeleteMessageRequest$outboundSchema; - /** @deprecated use `MessagesControllerDeleteMessageRequest$Outbound` instead. */ - export type Outbound = MessagesControllerDeleteMessageRequest$Outbound; -} - -export function messagesControllerDeleteMessageRequestToJSON( - messagesControllerDeleteMessageRequest: - MessagesControllerDeleteMessageRequest, -): string { - return JSON.stringify( - MessagesControllerDeleteMessageRequest$outboundSchema.parse( - messagesControllerDeleteMessageRequest, - ), - ); -} - -export function messagesControllerDeleteMessageRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - MessagesControllerDeleteMessageRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessagesControllerDeleteMessageRequest' from JSON`, - ); -} - -/** @internal */ -export const MessagesControllerDeleteMessageResponse$inboundSchema: z.ZodType< - MessagesControllerDeleteMessageResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.DeleteMessageResponseDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type MessagesControllerDeleteMessageResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.DeleteMessageResponseDto$Outbound; -}; - -/** @internal */ -export const MessagesControllerDeleteMessageResponse$outboundSchema: z.ZodType< - MessagesControllerDeleteMessageResponse$Outbound, - z.ZodTypeDef, - MessagesControllerDeleteMessageResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.DeleteMessageResponseDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessagesControllerDeleteMessageResponse$ { - /** @deprecated use `MessagesControllerDeleteMessageResponse$inboundSchema` instead. */ - export const inboundSchema = - MessagesControllerDeleteMessageResponse$inboundSchema; - /** @deprecated use `MessagesControllerDeleteMessageResponse$outboundSchema` instead. */ - export const outboundSchema = - MessagesControllerDeleteMessageResponse$outboundSchema; - /** @deprecated use `MessagesControllerDeleteMessageResponse$Outbound` instead. */ - export type Outbound = MessagesControllerDeleteMessageResponse$Outbound; -} - -export function messagesControllerDeleteMessageResponseToJSON( - messagesControllerDeleteMessageResponse: - MessagesControllerDeleteMessageResponse, -): string { - return JSON.stringify( - MessagesControllerDeleteMessageResponse$outboundSchema.parse( - messagesControllerDeleteMessageResponse, - ), - ); -} - -export function messagesControllerDeleteMessageResponseFromJSON( - jsonString: string, -): SafeParseResult< - MessagesControllerDeleteMessageResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - MessagesControllerDeleteMessageResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'MessagesControllerDeleteMessageResponse' from JSON`, - ); -} diff --git a/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts b/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts deleted file mode 100644 index 57a6607c..00000000 --- a/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * The channel of the message to be deleted - */ -export const QueryParamChannel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -/** - * The channel of the message to be deleted - */ -export type QueryParamChannel = ClosedEnum; - -export type MessagesControllerDeleteMessagesByTransactionIdRequest = { - /** - * The channel of the message to be deleted - */ - channel?: QueryParamChannel | undefined; - transactionId: string; -}; - -export type MessagesControllerDeleteMessagesByTransactionIdResponse = { - headers: { [k: string]: Array }; -}; - -/** @internal */ -export const QueryParamChannel$inboundSchema: z.ZodNativeEnum< - typeof QueryParamChannel -> = z.nativeEnum(QueryParamChannel); - -/** @internal */ -export const QueryParamChannel$outboundSchema: z.ZodNativeEnum< - typeof QueryParamChannel -> = QueryParamChannel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace QueryParamChannel$ { - /** @deprecated use `QueryParamChannel$inboundSchema` instead. */ - export const inboundSchema = QueryParamChannel$inboundSchema; - /** @deprecated use `QueryParamChannel$outboundSchema` instead. */ - export const outboundSchema = QueryParamChannel$outboundSchema; -} - -/** @internal */ -export const MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema: - z.ZodType< - MessagesControllerDeleteMessagesByTransactionIdRequest, - z.ZodTypeDef, - unknown - > = z.object({ - channel: QueryParamChannel$inboundSchema.optional(), - transactionId: z.string(), - }); - -/** @internal */ -export type MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound = { - channel?: string | undefined; - transactionId: string; -}; - -/** @internal */ -export const MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema: - z.ZodType< - MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound, - z.ZodTypeDef, - MessagesControllerDeleteMessagesByTransactionIdRequest - > = z.object({ - channel: QueryParamChannel$outboundSchema.optional(), - transactionId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessagesControllerDeleteMessagesByTransactionIdRequest$ { - /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema` instead. */ - export const inboundSchema = - MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema; - /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema` instead. */ - export const outboundSchema = - MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema; - /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound` instead. */ - export type Outbound = - MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound; -} - -export function messagesControllerDeleteMessagesByTransactionIdRequestToJSON( - messagesControllerDeleteMessagesByTransactionIdRequest: - MessagesControllerDeleteMessagesByTransactionIdRequest, -): string { - return JSON.stringify( - MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema.parse( - messagesControllerDeleteMessagesByTransactionIdRequest, - ), - ); -} - -export function messagesControllerDeleteMessagesByTransactionIdRequestFromJSON( - jsonString: string, -): SafeParseResult< - MessagesControllerDeleteMessagesByTransactionIdRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'MessagesControllerDeleteMessagesByTransactionIdRequest' from JSON`, - ); -} - -/** @internal */ -export const MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema: - z.ZodType< - MessagesControllerDeleteMessagesByTransactionIdResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - }); - }); - -/** @internal */ -export type MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound = { - Headers: { [k: string]: Array }; -}; - -/** @internal */ -export const MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema: - z.ZodType< - MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound, - z.ZodTypeDef, - MessagesControllerDeleteMessagesByTransactionIdResponse - > = z.object({ - headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessagesControllerDeleteMessagesByTransactionIdResponse$ { - /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema` instead. */ - export const inboundSchema = - MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema; - /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema` instead. */ - export const outboundSchema = - MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema; - /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound` instead. */ - export type Outbound = - MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound; -} - -export function messagesControllerDeleteMessagesByTransactionIdResponseToJSON( - messagesControllerDeleteMessagesByTransactionIdResponse: - MessagesControllerDeleteMessagesByTransactionIdResponse, -): string { - return JSON.stringify( - MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema - .parse(messagesControllerDeleteMessagesByTransactionIdResponse), - ); -} - -export function messagesControllerDeleteMessagesByTransactionIdResponseFromJSON( - jsonString: string, -): SafeParseResult< - MessagesControllerDeleteMessagesByTransactionIdResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'MessagesControllerDeleteMessagesByTransactionIdResponse' from JSON`, - ); -} diff --git a/src/models/operations/messagescontrollergetmessages.ts b/src/models/operations/messagescontrollergetmessages.ts deleted file mode 100644 index 4b0ab8e2..00000000 --- a/src/models/operations/messagescontrollergetmessages.ts +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const Channel = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type Channel = ClosedEnum; - -export type MessagesControllerGetMessagesRequest = { - channel?: Channel | undefined; - subscriberId?: string | undefined; - transactionId?: Array | undefined; - page?: number | undefined; - limit?: number | undefined; -}; - -export type MessagesControllerGetMessagesResponse = { - headers: { [k: string]: Array }; - result: components.ActivitiesResponseDto; -}; - -/** @internal */ -export const Channel$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Channel); - -/** @internal */ -export const Channel$outboundSchema: z.ZodNativeEnum = - Channel$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Channel$ { - /** @deprecated use `Channel$inboundSchema` instead. */ - export const inboundSchema = Channel$inboundSchema; - /** @deprecated use `Channel$outboundSchema` instead. */ - export const outboundSchema = Channel$outboundSchema; -} - -/** @internal */ -export const MessagesControllerGetMessagesRequest$inboundSchema: z.ZodType< - MessagesControllerGetMessagesRequest, - z.ZodTypeDef, - unknown -> = z.object({ - channel: Channel$inboundSchema.optional(), - subscriberId: z.string().optional(), - transactionId: z.array(z.string()).optional(), - page: z.number().default(0), - limit: z.number().default(10), -}); - -/** @internal */ -export type MessagesControllerGetMessagesRequest$Outbound = { - channel?: string | undefined; - subscriberId?: string | undefined; - transactionId?: Array | undefined; - page: number; - limit: number; -}; - -/** @internal */ -export const MessagesControllerGetMessagesRequest$outboundSchema: z.ZodType< - MessagesControllerGetMessagesRequest$Outbound, - z.ZodTypeDef, - MessagesControllerGetMessagesRequest -> = z.object({ - channel: Channel$outboundSchema.optional(), - subscriberId: z.string().optional(), - transactionId: z.array(z.string()).optional(), - page: z.number().default(0), - limit: z.number().default(10), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessagesControllerGetMessagesRequest$ { - /** @deprecated use `MessagesControllerGetMessagesRequest$inboundSchema` instead. */ - export const inboundSchema = - MessagesControllerGetMessagesRequest$inboundSchema; - /** @deprecated use `MessagesControllerGetMessagesRequest$outboundSchema` instead. */ - export const outboundSchema = - MessagesControllerGetMessagesRequest$outboundSchema; - /** @deprecated use `MessagesControllerGetMessagesRequest$Outbound` instead. */ - export type Outbound = MessagesControllerGetMessagesRequest$Outbound; -} - -export function messagesControllerGetMessagesRequestToJSON( - messagesControllerGetMessagesRequest: MessagesControllerGetMessagesRequest, -): string { - return JSON.stringify( - MessagesControllerGetMessagesRequest$outboundSchema.parse( - messagesControllerGetMessagesRequest, - ), - ); -} - -export function messagesControllerGetMessagesRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - MessagesControllerGetMessagesRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessagesControllerGetMessagesRequest' from JSON`, - ); -} - -/** @internal */ -export const MessagesControllerGetMessagesResponse$inboundSchema: z.ZodType< - MessagesControllerGetMessagesResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.ActivitiesResponseDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type MessagesControllerGetMessagesResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.ActivitiesResponseDto$Outbound; -}; - -/** @internal */ -export const MessagesControllerGetMessagesResponse$outboundSchema: z.ZodType< - MessagesControllerGetMessagesResponse$Outbound, - z.ZodTypeDef, - MessagesControllerGetMessagesResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.ActivitiesResponseDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace MessagesControllerGetMessagesResponse$ { - /** @deprecated use `MessagesControllerGetMessagesResponse$inboundSchema` instead. */ - export const inboundSchema = - MessagesControllerGetMessagesResponse$inboundSchema; - /** @deprecated use `MessagesControllerGetMessagesResponse$outboundSchema` instead. */ - export const outboundSchema = - MessagesControllerGetMessagesResponse$outboundSchema; - /** @deprecated use `MessagesControllerGetMessagesResponse$Outbound` instead. */ - export type Outbound = MessagesControllerGetMessagesResponse$Outbound; -} - -export function messagesControllerGetMessagesResponseToJSON( - messagesControllerGetMessagesResponse: MessagesControllerGetMessagesResponse, -): string { - return JSON.stringify( - MessagesControllerGetMessagesResponse$outboundSchema.parse( - messagesControllerGetMessagesResponse, - ), - ); -} - -export function messagesControllerGetMessagesResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - MessagesControllerGetMessagesResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'MessagesControllerGetMessagesResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts b/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts deleted file mode 100644 index df21b7d2..00000000 --- a/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationGroupsControllerCreateNotificationGroupResponse = { - headers: { [k: string]: Array }; - result: components.NotificationGroupResponseDto; -}; - -/** @internal */ -export const NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema: - z.ZodType< - NotificationGroupsControllerCreateNotificationGroupResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.NotificationGroupResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationGroupsControllerCreateNotificationGroupResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: components.NotificationGroupResponseDto$Outbound; - }; - -/** @internal */ -export const NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema: - z.ZodType< - NotificationGroupsControllerCreateNotificationGroupResponse$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerCreateNotificationGroupResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.NotificationGroupResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerCreateNotificationGroupResponse$ { - /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema; - /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema; - /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerCreateNotificationGroupResponse$Outbound; -} - -export function notificationGroupsControllerCreateNotificationGroupResponseToJSON( - notificationGroupsControllerCreateNotificationGroupResponse: - NotificationGroupsControllerCreateNotificationGroupResponse, -): string { - return JSON.stringify( - NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema - .parse(notificationGroupsControllerCreateNotificationGroupResponse), - ); -} - -export function notificationGroupsControllerCreateNotificationGroupResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerCreateNotificationGroupResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerCreateNotificationGroupResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts b/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts deleted file mode 100644 index 505fb746..00000000 --- a/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationGroupsControllerDeleteNotificationGroupRequest = { - id: string; -}; - -export type NotificationGroupsControllerDeleteNotificationGroupResponse = { - headers: { [k: string]: Array }; - result: components.DeleteNotificationGroupResponseDto; -}; - -/** @internal */ -export const NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema: - z.ZodType< - NotificationGroupsControllerDeleteNotificationGroupRequest, - z.ZodTypeDef, - unknown - > = z.object({ - id: z.string(), - }); - -/** @internal */ -export type NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound = - { - id: string; - }; - -/** @internal */ -export const NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema: - z.ZodType< - NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerDeleteNotificationGroupRequest - > = z.object({ - id: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerDeleteNotificationGroupRequest$ { - /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema; - /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema; - /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound; -} - -export function notificationGroupsControllerDeleteNotificationGroupRequestToJSON( - notificationGroupsControllerDeleteNotificationGroupRequest: - NotificationGroupsControllerDeleteNotificationGroupRequest, -): string { - return JSON.stringify( - NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema - .parse(notificationGroupsControllerDeleteNotificationGroupRequest), - ); -} - -export function notificationGroupsControllerDeleteNotificationGroupRequestFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerDeleteNotificationGroupRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerDeleteNotificationGroupRequest' from JSON`, - ); -} - -/** @internal */ -export const NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema: - z.ZodType< - NotificationGroupsControllerDeleteNotificationGroupResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.DeleteNotificationGroupResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: components.DeleteNotificationGroupResponseDto$Outbound; - }; - -/** @internal */ -export const NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema: - z.ZodType< - NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerDeleteNotificationGroupResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.DeleteNotificationGroupResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerDeleteNotificationGroupResponse$ { - /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema; - /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema; - /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound; -} - -export function notificationGroupsControllerDeleteNotificationGroupResponseToJSON( - notificationGroupsControllerDeleteNotificationGroupResponse: - NotificationGroupsControllerDeleteNotificationGroupResponse, -): string { - return JSON.stringify( - NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema - .parse(notificationGroupsControllerDeleteNotificationGroupResponse), - ); -} - -export function notificationGroupsControllerDeleteNotificationGroupResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerDeleteNotificationGroupResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerDeleteNotificationGroupResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts b/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts deleted file mode 100644 index 8f66a911..00000000 --- a/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationGroupsControllerGetNotificationGroupRequest = { - id: string; -}; - -export type NotificationGroupsControllerGetNotificationGroupResponse = { - headers: { [k: string]: Array }; - result: components.NotificationGroupResponseDto; -}; - -/** @internal */ -export const NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema: - z.ZodType< - NotificationGroupsControllerGetNotificationGroupRequest, - z.ZodTypeDef, - unknown - > = z.object({ - id: z.string(), - }); - -/** @internal */ -export type NotificationGroupsControllerGetNotificationGroupRequest$Outbound = { - id: string; -}; - -/** @internal */ -export const NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema: - z.ZodType< - NotificationGroupsControllerGetNotificationGroupRequest$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerGetNotificationGroupRequest - > = z.object({ - id: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerGetNotificationGroupRequest$ { - /** @deprecated use `NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema; - /** @deprecated use `NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema; - /** @deprecated use `NotificationGroupsControllerGetNotificationGroupRequest$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerGetNotificationGroupRequest$Outbound; -} - -export function notificationGroupsControllerGetNotificationGroupRequestToJSON( - notificationGroupsControllerGetNotificationGroupRequest: - NotificationGroupsControllerGetNotificationGroupRequest, -): string { - return JSON.stringify( - NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema - .parse(notificationGroupsControllerGetNotificationGroupRequest), - ); -} - -export function notificationGroupsControllerGetNotificationGroupRequestFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerGetNotificationGroupRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerGetNotificationGroupRequest' from JSON`, - ); -} - -/** @internal */ -export const NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema: - z.ZodType< - NotificationGroupsControllerGetNotificationGroupResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.NotificationGroupResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationGroupsControllerGetNotificationGroupResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: components.NotificationGroupResponseDto$Outbound; - }; - -/** @internal */ -export const NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema: - z.ZodType< - NotificationGroupsControllerGetNotificationGroupResponse$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerGetNotificationGroupResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.NotificationGroupResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerGetNotificationGroupResponse$ { - /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema; - /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema; - /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerGetNotificationGroupResponse$Outbound; -} - -export function notificationGroupsControllerGetNotificationGroupResponseToJSON( - notificationGroupsControllerGetNotificationGroupResponse: - NotificationGroupsControllerGetNotificationGroupResponse, -): string { - return JSON.stringify( - NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema - .parse(notificationGroupsControllerGetNotificationGroupResponse), - ); -} - -export function notificationGroupsControllerGetNotificationGroupResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerGetNotificationGroupResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerGetNotificationGroupResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts b/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts deleted file mode 100644 index 6c51dad2..00000000 --- a/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationGroupsControllerListNotificationGroupsResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema: - z.ZodType< - NotificationGroupsControllerListNotificationGroupsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.NotificationGroupResponseDto$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationGroupsControllerListNotificationGroupsResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: Array; - }; - -/** @internal */ -export const NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema: - z.ZodType< - NotificationGroupsControllerListNotificationGroupsResponse$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerListNotificationGroupsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.NotificationGroupResponseDto$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerListNotificationGroupsResponse$ { - /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema; - /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema; - /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerListNotificationGroupsResponse$Outbound; -} - -export function notificationGroupsControllerListNotificationGroupsResponseToJSON( - notificationGroupsControllerListNotificationGroupsResponse: - NotificationGroupsControllerListNotificationGroupsResponse, -): string { - return JSON.stringify( - NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema - .parse(notificationGroupsControllerListNotificationGroupsResponse), - ); -} - -export function notificationGroupsControllerListNotificationGroupsResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerListNotificationGroupsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerListNotificationGroupsResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts b/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts deleted file mode 100644 index 5a7b80d0..00000000 --- a/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationGroupsControllerUpdateNotificationGroupRequest = { - id: string; - createNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto; -}; - -export type NotificationGroupsControllerUpdateNotificationGroupResponse = { - headers: { [k: string]: Array }; - result: components.NotificationGroupResponseDto; -}; - -/** @internal */ -export const NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema: - z.ZodType< - NotificationGroupsControllerUpdateNotificationGroupRequest, - z.ZodTypeDef, - unknown - > = z.object({ - id: z.string(), - CreateNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "CreateNotificationGroupRequestDto": "createNotificationGroupRequestDto", - }); - }); - -/** @internal */ -export type NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound = - { - id: string; - CreateNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto$Outbound; - }; - -/** @internal */ -export const NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema: - z.ZodType< - NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerUpdateNotificationGroupRequest - > = z.object({ - id: z.string(), - createNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - createNotificationGroupRequestDto: "CreateNotificationGroupRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerUpdateNotificationGroupRequest$ { - /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema; - /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema; - /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound; -} - -export function notificationGroupsControllerUpdateNotificationGroupRequestToJSON( - notificationGroupsControllerUpdateNotificationGroupRequest: - NotificationGroupsControllerUpdateNotificationGroupRequest, -): string { - return JSON.stringify( - NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema - .parse(notificationGroupsControllerUpdateNotificationGroupRequest), - ); -} - -export function notificationGroupsControllerUpdateNotificationGroupRequestFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerUpdateNotificationGroupRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerUpdateNotificationGroupRequest' from JSON`, - ); -} - -/** @internal */ -export const NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema: - z.ZodType< - NotificationGroupsControllerUpdateNotificationGroupResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.NotificationGroupResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: components.NotificationGroupResponseDto$Outbound; - }; - -/** @internal */ -export const NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema: - z.ZodType< - NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound, - z.ZodTypeDef, - NotificationGroupsControllerUpdateNotificationGroupResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.NotificationGroupResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationGroupsControllerUpdateNotificationGroupResponse$ { - /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema; - /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema; - /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound` instead. */ - export type Outbound = - NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound; -} - -export function notificationGroupsControllerUpdateNotificationGroupResponseToJSON( - notificationGroupsControllerUpdateNotificationGroupResponse: - NotificationGroupsControllerUpdateNotificationGroupResponse, -): string { - return JSON.stringify( - NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema - .parse(notificationGroupsControllerUpdateNotificationGroupResponse), - ); -} - -export function notificationGroupsControllerUpdateNotificationGroupResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationGroupsControllerUpdateNotificationGroupResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'NotificationGroupsControllerUpdateNotificationGroupResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationscontrollergetactivitygraphstats.ts b/src/models/operations/notificationscontrollergetactivitygraphstats.ts deleted file mode 100644 index e392a033..00000000 --- a/src/models/operations/notificationscontrollergetactivitygraphstats.ts +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationsControllerGetActivityGraphStatsRequest = { - days?: number | undefined; -}; - -export type NotificationsControllerGetActivityGraphStatsResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const NotificationsControllerGetActivityGraphStatsRequest$inboundSchema: - z.ZodType< - NotificationsControllerGetActivityGraphStatsRequest, - z.ZodTypeDef, - unknown - > = z.object({ - days: z.number().optional(), - }); - -/** @internal */ -export type NotificationsControllerGetActivityGraphStatsRequest$Outbound = { - days?: number | undefined; -}; - -/** @internal */ -export const NotificationsControllerGetActivityGraphStatsRequest$outboundSchema: - z.ZodType< - NotificationsControllerGetActivityGraphStatsRequest$Outbound, - z.ZodTypeDef, - NotificationsControllerGetActivityGraphStatsRequest - > = z.object({ - days: z.number().optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationsControllerGetActivityGraphStatsRequest$ { - /** @deprecated use `NotificationsControllerGetActivityGraphStatsRequest$inboundSchema` instead. */ - export const inboundSchema = - NotificationsControllerGetActivityGraphStatsRequest$inboundSchema; - /** @deprecated use `NotificationsControllerGetActivityGraphStatsRequest$outboundSchema` instead. */ - export const outboundSchema = - NotificationsControllerGetActivityGraphStatsRequest$outboundSchema; - /** @deprecated use `NotificationsControllerGetActivityGraphStatsRequest$Outbound` instead. */ - export type Outbound = - NotificationsControllerGetActivityGraphStatsRequest$Outbound; -} - -export function notificationsControllerGetActivityGraphStatsRequestToJSON( - notificationsControllerGetActivityGraphStatsRequest: - NotificationsControllerGetActivityGraphStatsRequest, -): string { - return JSON.stringify( - NotificationsControllerGetActivityGraphStatsRequest$outboundSchema.parse( - notificationsControllerGetActivityGraphStatsRequest, - ), - ); -} - -export function notificationsControllerGetActivityGraphStatsRequestFromJSON( - jsonString: string, -): SafeParseResult< - NotificationsControllerGetActivityGraphStatsRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationsControllerGetActivityGraphStatsRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'NotificationsControllerGetActivityGraphStatsRequest' from JSON`, - ); -} - -/** @internal */ -export const NotificationsControllerGetActivityGraphStatsResponse$inboundSchema: - z.ZodType< - NotificationsControllerGetActivityGraphStatsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.ActivityGraphStatesResponse$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationsControllerGetActivityGraphStatsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const NotificationsControllerGetActivityGraphStatsResponse$outboundSchema: - z.ZodType< - NotificationsControllerGetActivityGraphStatsResponse$Outbound, - z.ZodTypeDef, - NotificationsControllerGetActivityGraphStatsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.ActivityGraphStatesResponse$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationsControllerGetActivityGraphStatsResponse$ { - /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationsControllerGetActivityGraphStatsResponse$inboundSchema; - /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationsControllerGetActivityGraphStatsResponse$outboundSchema; - /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$Outbound` instead. */ - export type Outbound = - NotificationsControllerGetActivityGraphStatsResponse$Outbound; -} - -export function notificationsControllerGetActivityGraphStatsResponseToJSON( - notificationsControllerGetActivityGraphStatsResponse: - NotificationsControllerGetActivityGraphStatsResponse, -): string { - return JSON.stringify( - NotificationsControllerGetActivityGraphStatsResponse$outboundSchema.parse( - notificationsControllerGetActivityGraphStatsResponse, - ), - ); -} - -export function notificationsControllerGetActivityGraphStatsResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationsControllerGetActivityGraphStatsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationsControllerGetActivityGraphStatsResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'NotificationsControllerGetActivityGraphStatsResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationscontrollergetactivitystats.ts b/src/models/operations/notificationscontrollergetactivitystats.ts deleted file mode 100644 index 49af179c..00000000 --- a/src/models/operations/notificationscontrollergetactivitystats.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationsControllerGetActivityStatsResponse = { - headers: { [k: string]: Array }; - result: components.ActivityStatsResponseDto; -}; - -/** @internal */ -export const NotificationsControllerGetActivityStatsResponse$inboundSchema: - z.ZodType< - NotificationsControllerGetActivityStatsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.ActivityStatsResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationsControllerGetActivityStatsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.ActivityStatsResponseDto$Outbound; -}; - -/** @internal */ -export const NotificationsControllerGetActivityStatsResponse$outboundSchema: - z.ZodType< - NotificationsControllerGetActivityStatsResponse$Outbound, - z.ZodTypeDef, - NotificationsControllerGetActivityStatsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.ActivityStatsResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationsControllerGetActivityStatsResponse$ { - /** @deprecated use `NotificationsControllerGetActivityStatsResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationsControllerGetActivityStatsResponse$inboundSchema; - /** @deprecated use `NotificationsControllerGetActivityStatsResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationsControllerGetActivityStatsResponse$outboundSchema; - /** @deprecated use `NotificationsControllerGetActivityStatsResponse$Outbound` instead. */ - export type Outbound = - NotificationsControllerGetActivityStatsResponse$Outbound; -} - -export function notificationsControllerGetActivityStatsResponseToJSON( - notificationsControllerGetActivityStatsResponse: - NotificationsControllerGetActivityStatsResponse, -): string { - return JSON.stringify( - NotificationsControllerGetActivityStatsResponse$outboundSchema.parse( - notificationsControllerGetActivityStatsResponse, - ), - ); -} - -export function notificationsControllerGetActivityStatsResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationsControllerGetActivityStatsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationsControllerGetActivityStatsResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'NotificationsControllerGetActivityStatsResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationscontrollergetnotification.ts b/src/models/operations/notificationscontrollergetnotification.ts deleted file mode 100644 index 12ae293d..00000000 --- a/src/models/operations/notificationscontrollergetnotification.ts +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type NotificationsControllerGetNotificationRequest = { - notificationId: string; -}; - -export type NotificationsControllerGetNotificationResponse = { - headers: { [k: string]: Array }; - result: components.ActivityNotificationResponseDto; -}; - -/** @internal */ -export const NotificationsControllerGetNotificationRequest$inboundSchema: - z.ZodType< - NotificationsControllerGetNotificationRequest, - z.ZodTypeDef, - unknown - > = z.object({ - notificationId: z.string(), - }); - -/** @internal */ -export type NotificationsControllerGetNotificationRequest$Outbound = { - notificationId: string; -}; - -/** @internal */ -export const NotificationsControllerGetNotificationRequest$outboundSchema: - z.ZodType< - NotificationsControllerGetNotificationRequest$Outbound, - z.ZodTypeDef, - NotificationsControllerGetNotificationRequest - > = z.object({ - notificationId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationsControllerGetNotificationRequest$ { - /** @deprecated use `NotificationsControllerGetNotificationRequest$inboundSchema` instead. */ - export const inboundSchema = - NotificationsControllerGetNotificationRequest$inboundSchema; - /** @deprecated use `NotificationsControllerGetNotificationRequest$outboundSchema` instead. */ - export const outboundSchema = - NotificationsControllerGetNotificationRequest$outboundSchema; - /** @deprecated use `NotificationsControllerGetNotificationRequest$Outbound` instead. */ - export type Outbound = NotificationsControllerGetNotificationRequest$Outbound; -} - -export function notificationsControllerGetNotificationRequestToJSON( - notificationsControllerGetNotificationRequest: - NotificationsControllerGetNotificationRequest, -): string { - return JSON.stringify( - NotificationsControllerGetNotificationRequest$outboundSchema.parse( - notificationsControllerGetNotificationRequest, - ), - ); -} - -export function notificationsControllerGetNotificationRequestFromJSON( - jsonString: string, -): SafeParseResult< - NotificationsControllerGetNotificationRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationsControllerGetNotificationRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'NotificationsControllerGetNotificationRequest' from JSON`, - ); -} - -/** @internal */ -export const NotificationsControllerGetNotificationResponse$inboundSchema: - z.ZodType< - NotificationsControllerGetNotificationResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.ActivityNotificationResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationsControllerGetNotificationResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.ActivityNotificationResponseDto$Outbound; -}; - -/** @internal */ -export const NotificationsControllerGetNotificationResponse$outboundSchema: - z.ZodType< - NotificationsControllerGetNotificationResponse$Outbound, - z.ZodTypeDef, - NotificationsControllerGetNotificationResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.ActivityNotificationResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationsControllerGetNotificationResponse$ { - /** @deprecated use `NotificationsControllerGetNotificationResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationsControllerGetNotificationResponse$inboundSchema; - /** @deprecated use `NotificationsControllerGetNotificationResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationsControllerGetNotificationResponse$outboundSchema; - /** @deprecated use `NotificationsControllerGetNotificationResponse$Outbound` instead. */ - export type Outbound = - NotificationsControllerGetNotificationResponse$Outbound; -} - -export function notificationsControllerGetNotificationResponseToJSON( - notificationsControllerGetNotificationResponse: - NotificationsControllerGetNotificationResponse, -): string { - return JSON.stringify( - NotificationsControllerGetNotificationResponse$outboundSchema.parse( - notificationsControllerGetNotificationResponse, - ), - ); -} - -export function notificationsControllerGetNotificationResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationsControllerGetNotificationResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationsControllerGetNotificationResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'NotificationsControllerGetNotificationResponse' from JSON`, - ); -} diff --git a/src/models/operations/notificationscontrollerlistnotifications.ts b/src/models/operations/notificationscontrollerlistnotifications.ts deleted file mode 100644 index 3643a26d..00000000 --- a/src/models/operations/notificationscontrollerlistnotifications.ts +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export const Channels = { - InApp: "in_app", - Email: "email", - Sms: "sms", - Chat: "chat", - Push: "push", -} as const; -export type Channels = ClosedEnum; - -export type NotificationsControllerListNotificationsRequest = { - channels: Array; - templates: Array; - emails: Array; - /** - * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. - */ - search: string; - subscriberIds: Array; - page?: number | undefined; - transactionId?: string | undefined; -}; - -export type NotificationsControllerListNotificationsResponse = { - headers: { [k: string]: Array }; - result: components.ActivitiesResponseDto; -}; - -/** @internal */ -export const Channels$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Channels); - -/** @internal */ -export const Channels$outboundSchema: z.ZodNativeEnum = - Channels$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Channels$ { - /** @deprecated use `Channels$inboundSchema` instead. */ - export const inboundSchema = Channels$inboundSchema; - /** @deprecated use `Channels$outboundSchema` instead. */ - export const outboundSchema = Channels$outboundSchema; -} - -/** @internal */ -export const NotificationsControllerListNotificationsRequest$inboundSchema: - z.ZodType< - NotificationsControllerListNotificationsRequest, - z.ZodTypeDef, - unknown - > = z.object({ - channels: z.array(Channels$inboundSchema), - templates: z.array(z.string()), - emails: z.array(z.string()), - search: z.string(), - subscriberIds: z.array(z.string()), - page: z.number().default(0), - transactionId: z.string().optional(), - }); - -/** @internal */ -export type NotificationsControllerListNotificationsRequest$Outbound = { - channels: Array; - templates: Array; - emails: Array; - search: string; - subscriberIds: Array; - page: number; - transactionId?: string | undefined; -}; - -/** @internal */ -export const NotificationsControllerListNotificationsRequest$outboundSchema: - z.ZodType< - NotificationsControllerListNotificationsRequest$Outbound, - z.ZodTypeDef, - NotificationsControllerListNotificationsRequest - > = z.object({ - channels: z.array(Channels$outboundSchema), - templates: z.array(z.string()), - emails: z.array(z.string()), - search: z.string(), - subscriberIds: z.array(z.string()), - page: z.number().default(0), - transactionId: z.string().optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationsControllerListNotificationsRequest$ { - /** @deprecated use `NotificationsControllerListNotificationsRequest$inboundSchema` instead. */ - export const inboundSchema = - NotificationsControllerListNotificationsRequest$inboundSchema; - /** @deprecated use `NotificationsControllerListNotificationsRequest$outboundSchema` instead. */ - export const outboundSchema = - NotificationsControllerListNotificationsRequest$outboundSchema; - /** @deprecated use `NotificationsControllerListNotificationsRequest$Outbound` instead. */ - export type Outbound = - NotificationsControllerListNotificationsRequest$Outbound; -} - -export function notificationsControllerListNotificationsRequestToJSON( - notificationsControllerListNotificationsRequest: - NotificationsControllerListNotificationsRequest, -): string { - return JSON.stringify( - NotificationsControllerListNotificationsRequest$outboundSchema.parse( - notificationsControllerListNotificationsRequest, - ), - ); -} - -export function notificationsControllerListNotificationsRequestFromJSON( - jsonString: string, -): SafeParseResult< - NotificationsControllerListNotificationsRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationsControllerListNotificationsRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'NotificationsControllerListNotificationsRequest' from JSON`, - ); -} - -/** @internal */ -export const NotificationsControllerListNotificationsResponse$inboundSchema: - z.ZodType< - NotificationsControllerListNotificationsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.ActivitiesResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type NotificationsControllerListNotificationsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.ActivitiesResponseDto$Outbound; -}; - -/** @internal */ -export const NotificationsControllerListNotificationsResponse$outboundSchema: - z.ZodType< - NotificationsControllerListNotificationsResponse$Outbound, - z.ZodTypeDef, - NotificationsControllerListNotificationsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.ActivitiesResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace NotificationsControllerListNotificationsResponse$ { - /** @deprecated use `NotificationsControllerListNotificationsResponse$inboundSchema` instead. */ - export const inboundSchema = - NotificationsControllerListNotificationsResponse$inboundSchema; - /** @deprecated use `NotificationsControllerListNotificationsResponse$outboundSchema` instead. */ - export const outboundSchema = - NotificationsControllerListNotificationsResponse$outboundSchema; - /** @deprecated use `NotificationsControllerListNotificationsResponse$Outbound` instead. */ - export type Outbound = - NotificationsControllerListNotificationsResponse$Outbound; -} - -export function notificationsControllerListNotificationsResponseToJSON( - notificationsControllerListNotificationsResponse: - NotificationsControllerListNotificationsResponse, -): string { - return JSON.stringify( - NotificationsControllerListNotificationsResponse$outboundSchema.parse( - notificationsControllerListNotificationsResponse, - ), - ); -} - -export function notificationsControllerListNotificationsResponseFromJSON( - jsonString: string, -): SafeParseResult< - NotificationsControllerListNotificationsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - NotificationsControllerListNotificationsResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'NotificationsControllerListNotificationsResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts b/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts deleted file mode 100644 index bf66b66f..00000000 --- a/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerBulkCreateSubscribersResponse = { - headers: { [k: string]: Array }; -}; - -/** @internal */ -export const SubscribersControllerBulkCreateSubscribersResponse$inboundSchema: - z.ZodType< - SubscribersControllerBulkCreateSubscribersResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - }); - }); - -/** @internal */ -export type SubscribersControllerBulkCreateSubscribersResponse$Outbound = { - Headers: { [k: string]: Array }; -}; - -/** @internal */ -export const SubscribersControllerBulkCreateSubscribersResponse$outboundSchema: - z.ZodType< - SubscribersControllerBulkCreateSubscribersResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerBulkCreateSubscribersResponse - > = z.object({ - headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerBulkCreateSubscribersResponse$ { - /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerBulkCreateSubscribersResponse$inboundSchema; - /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerBulkCreateSubscribersResponse$outboundSchema; - /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerBulkCreateSubscribersResponse$Outbound; -} - -export function subscribersControllerBulkCreateSubscribersResponseToJSON( - subscribersControllerBulkCreateSubscribersResponse: - SubscribersControllerBulkCreateSubscribersResponse, -): string { - return JSON.stringify( - SubscribersControllerBulkCreateSubscribersResponse$outboundSchema.parse( - subscribersControllerBulkCreateSubscribersResponse, - ), - ); -} - -export function subscribersControllerBulkCreateSubscribersResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerBulkCreateSubscribersResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerBulkCreateSubscribersResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerBulkCreateSubscribersResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerchataccessoauth.ts b/src/models/operations/subscriberscontrollerchataccessoauth.ts deleted file mode 100644 index 384465b7..00000000 --- a/src/models/operations/subscriberscontrollerchataccessoauth.ts +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerChatAccessOauthRequest = { - subscriberId: string; - providerId?: any | undefined; - hmacHash: string; - environmentId: string; - integrationIdentifier?: string | undefined; -}; - -export type SubscribersControllerChatAccessOauthResponse = { - headers: { [k: string]: Array }; -}; - -/** @internal */ -export const SubscribersControllerChatAccessOauthRequest$inboundSchema: - z.ZodType< - SubscribersControllerChatAccessOauthRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - providerId: z.any().optional(), - hmacHash: z.string(), - environmentId: z.string(), - integrationIdentifier: z.string().optional(), - }); - -/** @internal */ -export type SubscribersControllerChatAccessOauthRequest$Outbound = { - subscriberId: string; - providerId?: any | undefined; - hmacHash: string; - environmentId: string; - integrationIdentifier?: string | undefined; -}; - -/** @internal */ -export const SubscribersControllerChatAccessOauthRequest$outboundSchema: - z.ZodType< - SubscribersControllerChatAccessOauthRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerChatAccessOauthRequest - > = z.object({ - subscriberId: z.string(), - providerId: z.any().optional(), - hmacHash: z.string(), - environmentId: z.string(), - integrationIdentifier: z.string().optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerChatAccessOauthRequest$ { - /** @deprecated use `SubscribersControllerChatAccessOauthRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerChatAccessOauthRequest$inboundSchema; - /** @deprecated use `SubscribersControllerChatAccessOauthRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerChatAccessOauthRequest$outboundSchema; - /** @deprecated use `SubscribersControllerChatAccessOauthRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerChatAccessOauthRequest$Outbound; -} - -export function subscribersControllerChatAccessOauthRequestToJSON( - subscribersControllerChatAccessOauthRequest: - SubscribersControllerChatAccessOauthRequest, -): string { - return JSON.stringify( - SubscribersControllerChatAccessOauthRequest$outboundSchema.parse( - subscribersControllerChatAccessOauthRequest, - ), - ); -} - -export function subscribersControllerChatAccessOauthRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerChatAccessOauthRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerChatAccessOauthRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerChatAccessOauthRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerChatAccessOauthResponse$inboundSchema: - z.ZodType< - SubscribersControllerChatAccessOauthResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - }); - }); - -/** @internal */ -export type SubscribersControllerChatAccessOauthResponse$Outbound = { - Headers: { [k: string]: Array }; -}; - -/** @internal */ -export const SubscribersControllerChatAccessOauthResponse$outboundSchema: - z.ZodType< - SubscribersControllerChatAccessOauthResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerChatAccessOauthResponse - > = z.object({ - headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerChatAccessOauthResponse$ { - /** @deprecated use `SubscribersControllerChatAccessOauthResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerChatAccessOauthResponse$inboundSchema; - /** @deprecated use `SubscribersControllerChatAccessOauthResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerChatAccessOauthResponse$outboundSchema; - /** @deprecated use `SubscribersControllerChatAccessOauthResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerChatAccessOauthResponse$Outbound; -} - -export function subscribersControllerChatAccessOauthResponseToJSON( - subscribersControllerChatAccessOauthResponse: - SubscribersControllerChatAccessOauthResponse, -): string { - return JSON.stringify( - SubscribersControllerChatAccessOauthResponse$outboundSchema.parse( - subscribersControllerChatAccessOauthResponse, - ), - ); -} - -export function subscribersControllerChatAccessOauthResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerChatAccessOauthResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerChatAccessOauthResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerChatAccessOauthResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerchatoauthcallback.ts b/src/models/operations/subscriberscontrollerchatoauthcallback.ts deleted file mode 100644 index 8f1b742e..00000000 --- a/src/models/operations/subscriberscontrollerchatoauthcallback.ts +++ /dev/null @@ -1,254 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerChatOauthCallbackRequest = { - subscriberId: string; - providerId?: any | undefined; - code: string; - hmacHash: string; - environmentId: string; - integrationIdentifier?: string | undefined; -}; - -export type SubscribersControllerChatOauthCallbackResponseBody = {}; - -export type SubscribersControllerChatOauthCallbackResponse = { - headers: { [k: string]: Array }; - result: SubscribersControllerChatOauthCallbackResponseBody; -}; - -/** @internal */ -export const SubscribersControllerChatOauthCallbackRequest$inboundSchema: - z.ZodType< - SubscribersControllerChatOauthCallbackRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - providerId: z.any().optional(), - code: z.string(), - hmacHash: z.string(), - environmentId: z.string(), - integrationIdentifier: z.string().optional(), - }); - -/** @internal */ -export type SubscribersControllerChatOauthCallbackRequest$Outbound = { - subscriberId: string; - providerId?: any | undefined; - code: string; - hmacHash: string; - environmentId: string; - integrationIdentifier?: string | undefined; -}; - -/** @internal */ -export const SubscribersControllerChatOauthCallbackRequest$outboundSchema: - z.ZodType< - SubscribersControllerChatOauthCallbackRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerChatOauthCallbackRequest - > = z.object({ - subscriberId: z.string(), - providerId: z.any().optional(), - code: z.string(), - hmacHash: z.string(), - environmentId: z.string(), - integrationIdentifier: z.string().optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerChatOauthCallbackRequest$ { - /** @deprecated use `SubscribersControllerChatOauthCallbackRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerChatOauthCallbackRequest$inboundSchema; - /** @deprecated use `SubscribersControllerChatOauthCallbackRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerChatOauthCallbackRequest$outboundSchema; - /** @deprecated use `SubscribersControllerChatOauthCallbackRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerChatOauthCallbackRequest$Outbound; -} - -export function subscribersControllerChatOauthCallbackRequestToJSON( - subscribersControllerChatOauthCallbackRequest: - SubscribersControllerChatOauthCallbackRequest, -): string { - return JSON.stringify( - SubscribersControllerChatOauthCallbackRequest$outboundSchema.parse( - subscribersControllerChatOauthCallbackRequest, - ), - ); -} - -export function subscribersControllerChatOauthCallbackRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerChatOauthCallbackRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerChatOauthCallbackRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerChatOauthCallbackRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerChatOauthCallbackResponseBody$inboundSchema: - z.ZodType< - SubscribersControllerChatOauthCallbackResponseBody, - z.ZodTypeDef, - unknown - > = z.object({}); - -/** @internal */ -export type SubscribersControllerChatOauthCallbackResponseBody$Outbound = {}; - -/** @internal */ -export const SubscribersControllerChatOauthCallbackResponseBody$outboundSchema: - z.ZodType< - SubscribersControllerChatOauthCallbackResponseBody$Outbound, - z.ZodTypeDef, - SubscribersControllerChatOauthCallbackResponseBody - > = z.object({}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerChatOauthCallbackResponseBody$ { - /** @deprecated use `SubscribersControllerChatOauthCallbackResponseBody$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerChatOauthCallbackResponseBody$inboundSchema; - /** @deprecated use `SubscribersControllerChatOauthCallbackResponseBody$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerChatOauthCallbackResponseBody$outboundSchema; - /** @deprecated use `SubscribersControllerChatOauthCallbackResponseBody$Outbound` instead. */ - export type Outbound = - SubscribersControllerChatOauthCallbackResponseBody$Outbound; -} - -export function subscribersControllerChatOauthCallbackResponseBodyToJSON( - subscribersControllerChatOauthCallbackResponseBody: - SubscribersControllerChatOauthCallbackResponseBody, -): string { - return JSON.stringify( - SubscribersControllerChatOauthCallbackResponseBody$outboundSchema.parse( - subscribersControllerChatOauthCallbackResponseBody, - ), - ); -} - -export function subscribersControllerChatOauthCallbackResponseBodyFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerChatOauthCallbackResponseBody, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerChatOauthCallbackResponseBody$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerChatOauthCallbackResponseBody' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerChatOauthCallbackResponse$inboundSchema: - z.ZodType< - SubscribersControllerChatOauthCallbackResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.lazy(() => - SubscribersControllerChatOauthCallbackResponseBody$inboundSchema - ), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerChatOauthCallbackResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: SubscribersControllerChatOauthCallbackResponseBody$Outbound; -}; - -/** @internal */ -export const SubscribersControllerChatOauthCallbackResponse$outboundSchema: - z.ZodType< - SubscribersControllerChatOauthCallbackResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerChatOauthCallbackResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.lazy(() => - SubscribersControllerChatOauthCallbackResponseBody$outboundSchema - ), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerChatOauthCallbackResponse$ { - /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerChatOauthCallbackResponse$inboundSchema; - /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerChatOauthCallbackResponse$outboundSchema; - /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerChatOauthCallbackResponse$Outbound; -} - -export function subscribersControllerChatOauthCallbackResponseToJSON( - subscribersControllerChatOauthCallbackResponse: - SubscribersControllerChatOauthCallbackResponse, -): string { - return JSON.stringify( - SubscribersControllerChatOauthCallbackResponse$outboundSchema.parse( - subscribersControllerChatOauthCallbackResponse, - ), - ); -} - -export function subscribersControllerChatOauthCallbackResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerChatOauthCallbackResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerChatOauthCallbackResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerChatOauthCallbackResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollercreatesubscriber.ts b/src/models/operations/subscriberscontrollercreatesubscriber.ts deleted file mode 100644 index b2565f10..00000000 --- a/src/models/operations/subscriberscontrollercreatesubscriber.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerCreateSubscriberResponse = { - headers: { [k: string]: Array }; - result: components.SubscriberResponseDto; -}; - -/** @internal */ -export const SubscribersControllerCreateSubscriberResponse$inboundSchema: - z.ZodType< - SubscribersControllerCreateSubscriberResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.SubscriberResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerCreateSubscriberResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.SubscriberResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerCreateSubscriberResponse$outboundSchema: - z.ZodType< - SubscribersControllerCreateSubscriberResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerCreateSubscriberResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.SubscriberResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerCreateSubscriberResponse$ { - /** @deprecated use `SubscribersControllerCreateSubscriberResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerCreateSubscriberResponse$inboundSchema; - /** @deprecated use `SubscribersControllerCreateSubscriberResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerCreateSubscriberResponse$outboundSchema; - /** @deprecated use `SubscribersControllerCreateSubscriberResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerCreateSubscriberResponse$Outbound; -} - -export function subscribersControllerCreateSubscriberResponseToJSON( - subscribersControllerCreateSubscriberResponse: - SubscribersControllerCreateSubscriberResponse, -): string { - return JSON.stringify( - SubscribersControllerCreateSubscriberResponse$outboundSchema.parse( - subscribersControllerCreateSubscriberResponse, - ), - ); -} - -export function subscribersControllerCreateSubscriberResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerCreateSubscriberResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerCreateSubscriberResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerCreateSubscriberResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts b/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts deleted file mode 100644 index b8f06c77..00000000 --- a/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerDeleteSubscriberCredentialsRequest = { - subscriberId: string; - providerId: string; -}; - -export type SubscribersControllerDeleteSubscriberCredentialsResponse = { - headers: { [k: string]: Array }; -}; - -/** @internal */ -export const SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema: - z.ZodType< - SubscribersControllerDeleteSubscriberCredentialsRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - providerId: z.string(), - }); - -/** @internal */ -export type SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound = { - subscriberId: string; - providerId: string; -}; - -/** @internal */ -export const SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema: - z.ZodType< - SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerDeleteSubscriberCredentialsRequest - > = z.object({ - subscriberId: z.string(), - providerId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerDeleteSubscriberCredentialsRequest$ { - /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema; - /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema; - /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound; -} - -export function subscribersControllerDeleteSubscriberCredentialsRequestToJSON( - subscribersControllerDeleteSubscriberCredentialsRequest: - SubscribersControllerDeleteSubscriberCredentialsRequest, -): string { - return JSON.stringify( - SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema - .parse(subscribersControllerDeleteSubscriberCredentialsRequest), - ); -} - -export function subscribersControllerDeleteSubscriberCredentialsRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerDeleteSubscriberCredentialsRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerDeleteSubscriberCredentialsRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema: - z.ZodType< - SubscribersControllerDeleteSubscriberCredentialsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - }); - }); - -/** @internal */ -export type SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound = - { - Headers: { [k: string]: Array }; - }; - -/** @internal */ -export const SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema: - z.ZodType< - SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerDeleteSubscriberCredentialsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerDeleteSubscriberCredentialsResponse$ { - /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema; - /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema; - /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound; -} - -export function subscribersControllerDeleteSubscriberCredentialsResponseToJSON( - subscribersControllerDeleteSubscriberCredentialsResponse: - SubscribersControllerDeleteSubscriberCredentialsResponse, -): string { - return JSON.stringify( - SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema - .parse(subscribersControllerDeleteSubscriberCredentialsResponse), - ); -} - -export function subscribersControllerDeleteSubscriberCredentialsResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerDeleteSubscriberCredentialsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerDeleteSubscriberCredentialsResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollergetnotificationsfeed.ts b/src/models/operations/subscriberscontrollergetnotificationsfeed.ts deleted file mode 100644 index 8775dc61..00000000 --- a/src/models/operations/subscriberscontrollergetnotificationsfeed.ts +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerGetNotificationsFeedRequest = { - subscriberId: string; - page?: number | undefined; - limit?: number | undefined; - read?: boolean | undefined; - seen?: boolean | undefined; - /** - * Base64 encoded string of the partial payload JSON object - */ - payload?: string | undefined; -}; - -export type SubscribersControllerGetNotificationsFeedResponseBody = { - /** - * The current page of the paginated response - */ - page: number; - /** - * Does the list have more items to fetch - */ - hasMore: boolean; - /** - * Number of items on each page - */ - pageSize: number; - data: Array; -}; - -export type SubscribersControllerGetNotificationsFeedResponse = { - headers: { [k: string]: Array }; - result: SubscribersControllerGetNotificationsFeedResponseBody; -}; - -/** @internal */ -export const SubscribersControllerGetNotificationsFeedRequest$inboundSchema: - z.ZodType< - SubscribersControllerGetNotificationsFeedRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - page: z.number().optional(), - limit: z.number().default(10), - read: z.boolean().optional(), - seen: z.boolean().optional(), - payload: z.string().optional(), - }); - -/** @internal */ -export type SubscribersControllerGetNotificationsFeedRequest$Outbound = { - subscriberId: string; - page?: number | undefined; - limit: number; - read?: boolean | undefined; - seen?: boolean | undefined; - payload?: string | undefined; -}; - -/** @internal */ -export const SubscribersControllerGetNotificationsFeedRequest$outboundSchema: - z.ZodType< - SubscribersControllerGetNotificationsFeedRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerGetNotificationsFeedRequest - > = z.object({ - subscriberId: z.string(), - page: z.number().optional(), - limit: z.number().default(10), - read: z.boolean().optional(), - seen: z.boolean().optional(), - payload: z.string().optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetNotificationsFeedRequest$ { - /** @deprecated use `SubscribersControllerGetNotificationsFeedRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetNotificationsFeedRequest$inboundSchema; - /** @deprecated use `SubscribersControllerGetNotificationsFeedRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetNotificationsFeedRequest$outboundSchema; - /** @deprecated use `SubscribersControllerGetNotificationsFeedRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerGetNotificationsFeedRequest$Outbound; -} - -export function subscribersControllerGetNotificationsFeedRequestToJSON( - subscribersControllerGetNotificationsFeedRequest: - SubscribersControllerGetNotificationsFeedRequest, -): string { - return JSON.stringify( - SubscribersControllerGetNotificationsFeedRequest$outboundSchema.parse( - subscribersControllerGetNotificationsFeedRequest, - ), - ); -} - -export function subscribersControllerGetNotificationsFeedRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetNotificationsFeedRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetNotificationsFeedRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerGetNotificationsFeedRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema: - z.ZodType< - SubscribersControllerGetNotificationsFeedResponseBody, - z.ZodTypeDef, - unknown - > = z.object({ - page: z.number(), - hasMore: z.boolean(), - pageSize: z.number(), - data: z.array(components.FeedResponseDto$inboundSchema), - }); - -/** @internal */ -export type SubscribersControllerGetNotificationsFeedResponseBody$Outbound = { - page: number; - hasMore: boolean; - pageSize: number; - data: Array; -}; - -/** @internal */ -export const SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema: - z.ZodType< - SubscribersControllerGetNotificationsFeedResponseBody$Outbound, - z.ZodTypeDef, - SubscribersControllerGetNotificationsFeedResponseBody - > = z.object({ - page: z.number(), - hasMore: z.boolean(), - pageSize: z.number(), - data: z.array(components.FeedResponseDto$outboundSchema), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetNotificationsFeedResponseBody$ { - /** @deprecated use `SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema; - /** @deprecated use `SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema; - /** @deprecated use `SubscribersControllerGetNotificationsFeedResponseBody$Outbound` instead. */ - export type Outbound = - SubscribersControllerGetNotificationsFeedResponseBody$Outbound; -} - -export function subscribersControllerGetNotificationsFeedResponseBodyToJSON( - subscribersControllerGetNotificationsFeedResponseBody: - SubscribersControllerGetNotificationsFeedResponseBody, -): string { - return JSON.stringify( - SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema.parse( - subscribersControllerGetNotificationsFeedResponseBody, - ), - ); -} - -export function subscribersControllerGetNotificationsFeedResponseBodyFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetNotificationsFeedResponseBody, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerGetNotificationsFeedResponseBody' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerGetNotificationsFeedResponse$inboundSchema: - z.ZodType< - SubscribersControllerGetNotificationsFeedResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.lazy(() => - SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema - ), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerGetNotificationsFeedResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: SubscribersControllerGetNotificationsFeedResponseBody$Outbound; -}; - -/** @internal */ -export const SubscribersControllerGetNotificationsFeedResponse$outboundSchema: - z.ZodType< - SubscribersControllerGetNotificationsFeedResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerGetNotificationsFeedResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.lazy(() => - SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema - ), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetNotificationsFeedResponse$ { - /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetNotificationsFeedResponse$inboundSchema; - /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetNotificationsFeedResponse$outboundSchema; - /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerGetNotificationsFeedResponse$Outbound; -} - -export function subscribersControllerGetNotificationsFeedResponseToJSON( - subscribersControllerGetNotificationsFeedResponse: - SubscribersControllerGetNotificationsFeedResponse, -): string { - return JSON.stringify( - SubscribersControllerGetNotificationsFeedResponse$outboundSchema.parse( - subscribersControllerGetNotificationsFeedResponse, - ), - ); -} - -export function subscribersControllerGetNotificationsFeedResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetNotificationsFeedResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetNotificationsFeedResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerGetNotificationsFeedResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollergetsubscriber.ts b/src/models/operations/subscriberscontrollergetsubscriber.ts deleted file mode 100644 index f82b76ad..00000000 --- a/src/models/operations/subscriberscontrollergetsubscriber.ts +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerGetSubscriberRequest = { - subscriberId: string; - /** - * Includes the topics associated with the subscriber - */ - includeTopics?: string | undefined; -}; - -export type SubscribersControllerGetSubscriberResponse = { - headers: { [k: string]: Array }; - result: components.SubscriberResponseDto; -}; - -/** @internal */ -export const SubscribersControllerGetSubscriberRequest$inboundSchema: z.ZodType< - SubscribersControllerGetSubscriberRequest, - z.ZodTypeDef, - unknown -> = z.object({ - subscriberId: z.string(), - includeTopics: z.string().optional(), -}); - -/** @internal */ -export type SubscribersControllerGetSubscriberRequest$Outbound = { - subscriberId: string; - includeTopics?: string | undefined; -}; - -/** @internal */ -export const SubscribersControllerGetSubscriberRequest$outboundSchema: - z.ZodType< - SubscribersControllerGetSubscriberRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerGetSubscriberRequest - > = z.object({ - subscriberId: z.string(), - includeTopics: z.string().optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetSubscriberRequest$ { - /** @deprecated use `SubscribersControllerGetSubscriberRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetSubscriberRequest$inboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetSubscriberRequest$outboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerGetSubscriberRequest$Outbound; -} - -export function subscribersControllerGetSubscriberRequestToJSON( - subscribersControllerGetSubscriberRequest: - SubscribersControllerGetSubscriberRequest, -): string { - return JSON.stringify( - SubscribersControllerGetSubscriberRequest$outboundSchema.parse( - subscribersControllerGetSubscriberRequest, - ), - ); -} - -export function subscribersControllerGetSubscriberRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetSubscriberRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetSubscriberRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerGetSubscriberRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerGetSubscriberResponse$inboundSchema: - z.ZodType = - z.object({ - Headers: z.record(z.array(z.string())), - Result: components.SubscriberResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerGetSubscriberResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.SubscriberResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerGetSubscriberResponse$outboundSchema: - z.ZodType< - SubscribersControllerGetSubscriberResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerGetSubscriberResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.SubscriberResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetSubscriberResponse$ { - /** @deprecated use `SubscribersControllerGetSubscriberResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetSubscriberResponse$inboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetSubscriberResponse$outboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerGetSubscriberResponse$Outbound; -} - -export function subscribersControllerGetSubscriberResponseToJSON( - subscribersControllerGetSubscriberResponse: - SubscribersControllerGetSubscriberResponse, -): string { - return JSON.stringify( - SubscribersControllerGetSubscriberResponse$outboundSchema.parse( - subscribersControllerGetSubscriberResponse, - ), - ); -} - -export function subscribersControllerGetSubscriberResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetSubscriberResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetSubscriberResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerGetSubscriberResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts b/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts deleted file mode 100644 index bb683d78..00000000 --- a/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { ClosedEnum } from "../../types/enums.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -/** - * the preferences level to be retrieved (template / global) - */ -export const Parameter = { - Global: "global", - Template: "template", -} as const; -/** - * the preferences level to be retrieved (template / global) - */ -export type Parameter = ClosedEnum; - -export type SubscribersControllerGetSubscriberPreferenceByLevelRequest = { - /** - * A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - */ - includeInactiveChannels?: boolean | undefined; - /** - * the preferences level to be retrieved (template / global) - */ - parameter: Parameter; - subscriberId: string; -}; - -export type SubscribersControllerGetSubscriberPreferenceByLevelResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const Parameter$inboundSchema: z.ZodNativeEnum = z - .nativeEnum(Parameter); - -/** @internal */ -export const Parameter$outboundSchema: z.ZodNativeEnum = - Parameter$inboundSchema; - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace Parameter$ { - /** @deprecated use `Parameter$inboundSchema` instead. */ - export const inboundSchema = Parameter$inboundSchema; - /** @deprecated use `Parameter$outboundSchema` instead. */ - export const outboundSchema = Parameter$outboundSchema; -} - -/** @internal */ -export const SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema: - z.ZodType< - SubscribersControllerGetSubscriberPreferenceByLevelRequest, - z.ZodTypeDef, - unknown - > = z.object({ - includeInactiveChannels: z.boolean().optional(), - parameter: Parameter$inboundSchema, - subscriberId: z.string(), - }); - -/** @internal */ -export type SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound = - { - includeInactiveChannels?: boolean | undefined; - parameter: string; - subscriberId: string; - }; - -/** @internal */ -export const SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema: - z.ZodType< - SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerGetSubscriberPreferenceByLevelRequest - > = z.object({ - includeInactiveChannels: z.boolean().optional(), - parameter: Parameter$outboundSchema, - subscriberId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetSubscriberPreferenceByLevelRequest$ { - /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound; -} - -export function subscribersControllerGetSubscriberPreferenceByLevelRequestToJSON( - subscribersControllerGetSubscriberPreferenceByLevelRequest: - SubscribersControllerGetSubscriberPreferenceByLevelRequest, -): string { - return JSON.stringify( - SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema - .parse(subscribersControllerGetSubscriberPreferenceByLevelRequest), - ); -} - -export function subscribersControllerGetSubscriberPreferenceByLevelRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetSubscriberPreferenceByLevelRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerGetSubscriberPreferenceByLevelRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema: - z.ZodType< - SubscribersControllerGetSubscriberPreferenceByLevelResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array( - components.GetSubscriberPreferencesResponseDto$inboundSchema, - ), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: Array; - }; - -/** @internal */ -export const SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema: - z.ZodType< - SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerGetSubscriberPreferenceByLevelResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array( - components.GetSubscriberPreferencesResponseDto$outboundSchema, - ), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetSubscriberPreferenceByLevelResponse$ { - /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema; - /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound; -} - -export function subscribersControllerGetSubscriberPreferenceByLevelResponseToJSON( - subscribersControllerGetSubscriberPreferenceByLevelResponse: - SubscribersControllerGetSubscriberPreferenceByLevelResponse, -): string { - return JSON.stringify( - SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema - .parse(subscribersControllerGetSubscriberPreferenceByLevelResponse), - ); -} - -export function subscribersControllerGetSubscriberPreferenceByLevelResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetSubscriberPreferenceByLevelResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerGetSubscriberPreferenceByLevelResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollergetunseencount.ts b/src/models/operations/subscriberscontrollergetunseencount.ts deleted file mode 100644 index 00f9dbd6..00000000 --- a/src/models/operations/subscriberscontrollergetunseencount.ts +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerGetUnseenCountRequest = { - seen: boolean; - subscriberId: string; - limit: number; -}; - -export type SubscribersControllerGetUnseenCountResponse = { - headers: { [k: string]: Array }; - result: components.UnseenCountResponse; -}; - -/** @internal */ -export const SubscribersControllerGetUnseenCountRequest$inboundSchema: - z.ZodType = - z.object({ - seen: z.boolean(), - subscriberId: z.string(), - limit: z.number(), - }); - -/** @internal */ -export type SubscribersControllerGetUnseenCountRequest$Outbound = { - seen: boolean; - subscriberId: string; - limit: number; -}; - -/** @internal */ -export const SubscribersControllerGetUnseenCountRequest$outboundSchema: - z.ZodType< - SubscribersControllerGetUnseenCountRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerGetUnseenCountRequest - > = z.object({ - seen: z.boolean(), - subscriberId: z.string(), - limit: z.number(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetUnseenCountRequest$ { - /** @deprecated use `SubscribersControllerGetUnseenCountRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetUnseenCountRequest$inboundSchema; - /** @deprecated use `SubscribersControllerGetUnseenCountRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetUnseenCountRequest$outboundSchema; - /** @deprecated use `SubscribersControllerGetUnseenCountRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerGetUnseenCountRequest$Outbound; -} - -export function subscribersControllerGetUnseenCountRequestToJSON( - subscribersControllerGetUnseenCountRequest: - SubscribersControllerGetUnseenCountRequest, -): string { - return JSON.stringify( - SubscribersControllerGetUnseenCountRequest$outboundSchema.parse( - subscribersControllerGetUnseenCountRequest, - ), - ); -} - -export function subscribersControllerGetUnseenCountRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetUnseenCountRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetUnseenCountRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerGetUnseenCountRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerGetUnseenCountResponse$inboundSchema: - z.ZodType< - SubscribersControllerGetUnseenCountResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.UnseenCountResponse$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerGetUnseenCountResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.UnseenCountResponse$Outbound; -}; - -/** @internal */ -export const SubscribersControllerGetUnseenCountResponse$outboundSchema: - z.ZodType< - SubscribersControllerGetUnseenCountResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerGetUnseenCountResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.UnseenCountResponse$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerGetUnseenCountResponse$ { - /** @deprecated use `SubscribersControllerGetUnseenCountResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerGetUnseenCountResponse$inboundSchema; - /** @deprecated use `SubscribersControllerGetUnseenCountResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerGetUnseenCountResponse$outboundSchema; - /** @deprecated use `SubscribersControllerGetUnseenCountResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerGetUnseenCountResponse$Outbound; -} - -export function subscribersControllerGetUnseenCountResponseToJSON( - subscribersControllerGetUnseenCountResponse: - SubscribersControllerGetUnseenCountResponse, -): string { - return JSON.stringify( - SubscribersControllerGetUnseenCountResponse$outboundSchema.parse( - subscribersControllerGetUnseenCountResponse, - ), - ); -} - -export function subscribersControllerGetUnseenCountResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerGetUnseenCountResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerGetUnseenCountResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerGetUnseenCountResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts b/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts deleted file mode 100644 index b59385b5..00000000 --- a/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerListSubscriberPreferencesRequest = { - subscriberId: string; - /** - * A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - */ - includeInactiveChannels?: boolean | undefined; -}; - -export type SubscribersControllerListSubscriberPreferencesResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const SubscribersControllerListSubscriberPreferencesRequest$inboundSchema: - z.ZodType< - SubscribersControllerListSubscriberPreferencesRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - includeInactiveChannels: z.boolean().optional(), - }); - -/** @internal */ -export type SubscribersControllerListSubscriberPreferencesRequest$Outbound = { - subscriberId: string; - includeInactiveChannels?: boolean | undefined; -}; - -/** @internal */ -export const SubscribersControllerListSubscriberPreferencesRequest$outboundSchema: - z.ZodType< - SubscribersControllerListSubscriberPreferencesRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerListSubscriberPreferencesRequest - > = z.object({ - subscriberId: z.string(), - includeInactiveChannels: z.boolean().optional(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerListSubscriberPreferencesRequest$ { - /** @deprecated use `SubscribersControllerListSubscriberPreferencesRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerListSubscriberPreferencesRequest$inboundSchema; - /** @deprecated use `SubscribersControllerListSubscriberPreferencesRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerListSubscriberPreferencesRequest$outboundSchema; - /** @deprecated use `SubscribersControllerListSubscriberPreferencesRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerListSubscriberPreferencesRequest$Outbound; -} - -export function subscribersControllerListSubscriberPreferencesRequestToJSON( - subscribersControllerListSubscriberPreferencesRequest: - SubscribersControllerListSubscriberPreferencesRequest, -): string { - return JSON.stringify( - SubscribersControllerListSubscriberPreferencesRequest$outboundSchema.parse( - subscribersControllerListSubscriberPreferencesRequest, - ), - ); -} - -export function subscribersControllerListSubscriberPreferencesRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerListSubscriberPreferencesRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerListSubscriberPreferencesRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerListSubscriberPreferencesRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerListSubscriberPreferencesResponse$inboundSchema: - z.ZodType< - SubscribersControllerListSubscriberPreferencesResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array( - components.UpdateSubscriberPreferenceResponseDto$inboundSchema, - ), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerListSubscriberPreferencesResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const SubscribersControllerListSubscriberPreferencesResponse$outboundSchema: - z.ZodType< - SubscribersControllerListSubscriberPreferencesResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerListSubscriberPreferencesResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array( - components.UpdateSubscriberPreferenceResponseDto$outboundSchema, - ), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerListSubscriberPreferencesResponse$ { - /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerListSubscriberPreferencesResponse$inboundSchema; - /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerListSubscriberPreferencesResponse$outboundSchema; - /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerListSubscriberPreferencesResponse$Outbound; -} - -export function subscribersControllerListSubscriberPreferencesResponseToJSON( - subscribersControllerListSubscriberPreferencesResponse: - SubscribersControllerListSubscriberPreferencesResponse, -): string { - return JSON.stringify( - SubscribersControllerListSubscriberPreferencesResponse$outboundSchema.parse( - subscribersControllerListSubscriberPreferencesResponse, - ), - ); -} - -export function subscribersControllerListSubscriberPreferencesResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerListSubscriberPreferencesResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerListSubscriberPreferencesResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerListSubscriberPreferencesResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerlistsubscribers.ts b/src/models/operations/subscriberscontrollerlistsubscribers.ts deleted file mode 100644 index 0da6264b..00000000 --- a/src/models/operations/subscriberscontrollerlistsubscribers.ts +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerListSubscribersRequest = { - page?: number | undefined; - limit?: number | undefined; -}; - -export type SubscribersControllerListSubscribersResponseBody = { - /** - * The current page of the paginated response - */ - page: number; - /** - * Does the list have more items to fetch - */ - hasMore: boolean; - /** - * Number of items on each page - */ - pageSize: number; - data: Array; -}; - -export type SubscribersControllerListSubscribersResponse = { - headers: { [k: string]: Array }; - result: SubscribersControllerListSubscribersResponseBody; -}; - -/** @internal */ -export const SubscribersControllerListSubscribersRequest$inboundSchema: - z.ZodType< - SubscribersControllerListSubscribersRequest, - z.ZodTypeDef, - unknown - > = z.object({ - page: z.number().optional(), - limit: z.number().default(10), - }); - -/** @internal */ -export type SubscribersControllerListSubscribersRequest$Outbound = { - page?: number | undefined; - limit: number; -}; - -/** @internal */ -export const SubscribersControllerListSubscribersRequest$outboundSchema: - z.ZodType< - SubscribersControllerListSubscribersRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerListSubscribersRequest - > = z.object({ - page: z.number().optional(), - limit: z.number().default(10), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerListSubscribersRequest$ { - /** @deprecated use `SubscribersControllerListSubscribersRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerListSubscribersRequest$inboundSchema; - /** @deprecated use `SubscribersControllerListSubscribersRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerListSubscribersRequest$outboundSchema; - /** @deprecated use `SubscribersControllerListSubscribersRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerListSubscribersRequest$Outbound; -} - -export function subscribersControllerListSubscribersRequestToJSON( - subscribersControllerListSubscribersRequest: - SubscribersControllerListSubscribersRequest, -): string { - return JSON.stringify( - SubscribersControllerListSubscribersRequest$outboundSchema.parse( - subscribersControllerListSubscribersRequest, - ), - ); -} - -export function subscribersControllerListSubscribersRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerListSubscribersRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerListSubscribersRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerListSubscribersRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerListSubscribersResponseBody$inboundSchema: - z.ZodType< - SubscribersControllerListSubscribersResponseBody, - z.ZodTypeDef, - unknown - > = z.object({ - page: z.number(), - hasMore: z.boolean(), - pageSize: z.number(), - data: z.array(components.SubscriberResponseDto$inboundSchema), - }); - -/** @internal */ -export type SubscribersControllerListSubscribersResponseBody$Outbound = { - page: number; - hasMore: boolean; - pageSize: number; - data: Array; -}; - -/** @internal */ -export const SubscribersControllerListSubscribersResponseBody$outboundSchema: - z.ZodType< - SubscribersControllerListSubscribersResponseBody$Outbound, - z.ZodTypeDef, - SubscribersControllerListSubscribersResponseBody - > = z.object({ - page: z.number(), - hasMore: z.boolean(), - pageSize: z.number(), - data: z.array(components.SubscriberResponseDto$outboundSchema), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerListSubscribersResponseBody$ { - /** @deprecated use `SubscribersControllerListSubscribersResponseBody$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerListSubscribersResponseBody$inboundSchema; - /** @deprecated use `SubscribersControllerListSubscribersResponseBody$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerListSubscribersResponseBody$outboundSchema; - /** @deprecated use `SubscribersControllerListSubscribersResponseBody$Outbound` instead. */ - export type Outbound = - SubscribersControllerListSubscribersResponseBody$Outbound; -} - -export function subscribersControllerListSubscribersResponseBodyToJSON( - subscribersControllerListSubscribersResponseBody: - SubscribersControllerListSubscribersResponseBody, -): string { - return JSON.stringify( - SubscribersControllerListSubscribersResponseBody$outboundSchema.parse( - subscribersControllerListSubscribersResponseBody, - ), - ); -} - -export function subscribersControllerListSubscribersResponseBodyFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerListSubscribersResponseBody, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerListSubscribersResponseBody$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerListSubscribersResponseBody' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerListSubscribersResponse$inboundSchema: - z.ZodType< - SubscribersControllerListSubscribersResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.lazy(() => - SubscribersControllerListSubscribersResponseBody$inboundSchema - ), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerListSubscribersResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: SubscribersControllerListSubscribersResponseBody$Outbound; -}; - -/** @internal */ -export const SubscribersControllerListSubscribersResponse$outboundSchema: - z.ZodType< - SubscribersControllerListSubscribersResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerListSubscribersResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.lazy(() => - SubscribersControllerListSubscribersResponseBody$outboundSchema - ), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerListSubscribersResponse$ { - /** @deprecated use `SubscribersControllerListSubscribersResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerListSubscribersResponse$inboundSchema; - /** @deprecated use `SubscribersControllerListSubscribersResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerListSubscribersResponse$outboundSchema; - /** @deprecated use `SubscribersControllerListSubscribersResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerListSubscribersResponse$Outbound; -} - -export function subscribersControllerListSubscribersResponseToJSON( - subscribersControllerListSubscribersResponse: - SubscribersControllerListSubscribersResponse, -): string { - return JSON.stringify( - SubscribersControllerListSubscribersResponse$outboundSchema.parse( - subscribersControllerListSubscribersResponse, - ), - ); -} - -export function subscribersControllerListSubscribersResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerListSubscribersResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerListSubscribersResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerListSubscribersResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollermarkactionasseen.ts b/src/models/operations/subscriberscontrollermarkactionasseen.ts deleted file mode 100644 index 92e6a715..00000000 --- a/src/models/operations/subscriberscontrollermarkactionasseen.ts +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerMarkActionAsSeenRequest = { - messageId: string; - type?: any | undefined; - subscriberId: string; - markMessageActionAsSeenDto: components.MarkMessageActionAsSeenDto; -}; - -export type SubscribersControllerMarkActionAsSeenResponse = { - headers: { [k: string]: Array }; - result: components.MessageResponseDto; -}; - -/** @internal */ -export const SubscribersControllerMarkActionAsSeenRequest$inboundSchema: - z.ZodType< - SubscribersControllerMarkActionAsSeenRequest, - z.ZodTypeDef, - unknown - > = z.object({ - messageId: z.string(), - type: z.any().optional(), - subscriberId: z.string(), - MarkMessageActionAsSeenDto: - components.MarkMessageActionAsSeenDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "MarkMessageActionAsSeenDto": "markMessageActionAsSeenDto", - }); - }); - -/** @internal */ -export type SubscribersControllerMarkActionAsSeenRequest$Outbound = { - messageId: string; - type?: any | undefined; - subscriberId: string; - MarkMessageActionAsSeenDto: components.MarkMessageActionAsSeenDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerMarkActionAsSeenRequest$outboundSchema: - z.ZodType< - SubscribersControllerMarkActionAsSeenRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerMarkActionAsSeenRequest - > = z.object({ - messageId: z.string(), - type: z.any().optional(), - subscriberId: z.string(), - markMessageActionAsSeenDto: - components.MarkMessageActionAsSeenDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - markMessageActionAsSeenDto: "MarkMessageActionAsSeenDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerMarkActionAsSeenRequest$ { - /** @deprecated use `SubscribersControllerMarkActionAsSeenRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerMarkActionAsSeenRequest$inboundSchema; - /** @deprecated use `SubscribersControllerMarkActionAsSeenRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerMarkActionAsSeenRequest$outboundSchema; - /** @deprecated use `SubscribersControllerMarkActionAsSeenRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerMarkActionAsSeenRequest$Outbound; -} - -export function subscribersControllerMarkActionAsSeenRequestToJSON( - subscribersControllerMarkActionAsSeenRequest: - SubscribersControllerMarkActionAsSeenRequest, -): string { - return JSON.stringify( - SubscribersControllerMarkActionAsSeenRequest$outboundSchema.parse( - subscribersControllerMarkActionAsSeenRequest, - ), - ); -} - -export function subscribersControllerMarkActionAsSeenRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerMarkActionAsSeenRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerMarkActionAsSeenRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerMarkActionAsSeenRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerMarkActionAsSeenResponse$inboundSchema: - z.ZodType< - SubscribersControllerMarkActionAsSeenResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.MessageResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerMarkActionAsSeenResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.MessageResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerMarkActionAsSeenResponse$outboundSchema: - z.ZodType< - SubscribersControllerMarkActionAsSeenResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerMarkActionAsSeenResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.MessageResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerMarkActionAsSeenResponse$ { - /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerMarkActionAsSeenResponse$inboundSchema; - /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerMarkActionAsSeenResponse$outboundSchema; - /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerMarkActionAsSeenResponse$Outbound; -} - -export function subscribersControllerMarkActionAsSeenResponseToJSON( - subscribersControllerMarkActionAsSeenResponse: - SubscribersControllerMarkActionAsSeenResponse, -): string { - return JSON.stringify( - SubscribersControllerMarkActionAsSeenResponse$outboundSchema.parse( - subscribersControllerMarkActionAsSeenResponse, - ), - ); -} - -export function subscribersControllerMarkActionAsSeenResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerMarkActionAsSeenResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerMarkActionAsSeenResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerMarkActionAsSeenResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollermarkallunreadasread.ts b/src/models/operations/subscriberscontrollermarkallunreadasread.ts deleted file mode 100644 index 8207c829..00000000 --- a/src/models/operations/subscriberscontrollermarkallunreadasread.ts +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerMarkAllUnreadAsReadRequest = { - subscriberId: string; - markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto; -}; - -export type SubscribersControllerMarkAllUnreadAsReadResponse = { - headers: { [k: string]: Array }; - result: number; -}; - -/** @internal */ -export const SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema: - z.ZodType< - SubscribersControllerMarkAllUnreadAsReadRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - MarkAllMessageAsRequestDto: - components.MarkAllMessageAsRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "MarkAllMessageAsRequestDto": "markAllMessageAsRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerMarkAllUnreadAsReadRequest$Outbound = { - subscriberId: string; - MarkAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema: - z.ZodType< - SubscribersControllerMarkAllUnreadAsReadRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerMarkAllUnreadAsReadRequest - > = z.object({ - subscriberId: z.string(), - markAllMessageAsRequestDto: - components.MarkAllMessageAsRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - markAllMessageAsRequestDto: "MarkAllMessageAsRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerMarkAllUnreadAsReadRequest$ { - /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema; - /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema; - /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerMarkAllUnreadAsReadRequest$Outbound; -} - -export function subscribersControllerMarkAllUnreadAsReadRequestToJSON( - subscribersControllerMarkAllUnreadAsReadRequest: - SubscribersControllerMarkAllUnreadAsReadRequest, -): string { - return JSON.stringify( - SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema.parse( - subscribersControllerMarkAllUnreadAsReadRequest, - ), - ); -} - -export function subscribersControllerMarkAllUnreadAsReadRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerMarkAllUnreadAsReadRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerMarkAllUnreadAsReadRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema: - z.ZodType< - SubscribersControllerMarkAllUnreadAsReadResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.number(), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerMarkAllUnreadAsReadResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: number; -}; - -/** @internal */ -export const SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema: - z.ZodType< - SubscribersControllerMarkAllUnreadAsReadResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerMarkAllUnreadAsReadResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.number(), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerMarkAllUnreadAsReadResponse$ { - /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema; - /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema; - /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerMarkAllUnreadAsReadResponse$Outbound; -} - -export function subscribersControllerMarkAllUnreadAsReadResponseToJSON( - subscribersControllerMarkAllUnreadAsReadResponse: - SubscribersControllerMarkAllUnreadAsReadResponse, -): string { - return JSON.stringify( - SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema.parse( - subscribersControllerMarkAllUnreadAsReadResponse, - ), - ); -} - -export function subscribersControllerMarkAllUnreadAsReadResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerMarkAllUnreadAsReadResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerMarkAllUnreadAsReadResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollermarkmessagesas.ts b/src/models/operations/subscriberscontrollermarkmessagesas.ts deleted file mode 100644 index 7b27932e..00000000 --- a/src/models/operations/subscriberscontrollermarkmessagesas.ts +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerMarkMessagesAsRequest = { - subscriberId: string; - messageMarkAsRequestDto: components.MessageMarkAsRequestDto; -}; - -export type SubscribersControllerMarkMessagesAsResponse = { - headers: { [k: string]: Array }; - result: Array; -}; - -/** @internal */ -export const SubscribersControllerMarkMessagesAsRequest$inboundSchema: - z.ZodType = - z.object({ - subscriberId: z.string(), - MessageMarkAsRequestDto: components.MessageMarkAsRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "MessageMarkAsRequestDto": "messageMarkAsRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerMarkMessagesAsRequest$Outbound = { - subscriberId: string; - MessageMarkAsRequestDto: components.MessageMarkAsRequestDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerMarkMessagesAsRequest$outboundSchema: - z.ZodType< - SubscribersControllerMarkMessagesAsRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerMarkMessagesAsRequest - > = z.object({ - subscriberId: z.string(), - messageMarkAsRequestDto: components.MessageMarkAsRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - messageMarkAsRequestDto: "MessageMarkAsRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerMarkMessagesAsRequest$ { - /** @deprecated use `SubscribersControllerMarkMessagesAsRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerMarkMessagesAsRequest$inboundSchema; - /** @deprecated use `SubscribersControllerMarkMessagesAsRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerMarkMessagesAsRequest$outboundSchema; - /** @deprecated use `SubscribersControllerMarkMessagesAsRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerMarkMessagesAsRequest$Outbound; -} - -export function subscribersControllerMarkMessagesAsRequestToJSON( - subscribersControllerMarkMessagesAsRequest: - SubscribersControllerMarkMessagesAsRequest, -): string { - return JSON.stringify( - SubscribersControllerMarkMessagesAsRequest$outboundSchema.parse( - subscribersControllerMarkMessagesAsRequest, - ), - ); -} - -export function subscribersControllerMarkMessagesAsRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerMarkMessagesAsRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerMarkMessagesAsRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerMarkMessagesAsRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerMarkMessagesAsResponse$inboundSchema: - z.ZodType< - SubscribersControllerMarkMessagesAsResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: z.array(components.MessageEntity$inboundSchema), - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerMarkMessagesAsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: Array; -}; - -/** @internal */ -export const SubscribersControllerMarkMessagesAsResponse$outboundSchema: - z.ZodType< - SubscribersControllerMarkMessagesAsResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerMarkMessagesAsResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: z.array(components.MessageEntity$outboundSchema), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerMarkMessagesAsResponse$ { - /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerMarkMessagesAsResponse$inboundSchema; - /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerMarkMessagesAsResponse$outboundSchema; - /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerMarkMessagesAsResponse$Outbound; -} - -export function subscribersControllerMarkMessagesAsResponseToJSON( - subscribersControllerMarkMessagesAsResponse: - SubscribersControllerMarkMessagesAsResponse, -): string { - return JSON.stringify( - SubscribersControllerMarkMessagesAsResponse$outboundSchema.parse( - subscribersControllerMarkMessagesAsResponse, - ), - ); -} - -export function subscribersControllerMarkMessagesAsResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerMarkMessagesAsResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerMarkMessagesAsResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerMarkMessagesAsResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts b/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts deleted file mode 100644 index 86746e6a..00000000 --- a/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerModifySubscriberChannelRequest = { - subscriberId: string; - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto; -}; - -export type SubscribersControllerModifySubscriberChannelResponse = { - headers: { [k: string]: Array }; - result: components.SubscriberResponseDto; -}; - -/** @internal */ -export const SubscribersControllerModifySubscriberChannelRequest$inboundSchema: - z.ZodType< - SubscribersControllerModifySubscriberChannelRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - UpdateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateSubscriberChannelRequestDto": "updateSubscriberChannelRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerModifySubscriberChannelRequest$Outbound = { - subscriberId: string; - UpdateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerModifySubscriberChannelRequest$outboundSchema: - z.ZodType< - SubscribersControllerModifySubscriberChannelRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerModifySubscriberChannelRequest - > = z.object({ - subscriberId: z.string(), - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateSubscriberChannelRequestDto: "UpdateSubscriberChannelRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerModifySubscriberChannelRequest$ { - /** @deprecated use `SubscribersControllerModifySubscriberChannelRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerModifySubscriberChannelRequest$inboundSchema; - /** @deprecated use `SubscribersControllerModifySubscriberChannelRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerModifySubscriberChannelRequest$outboundSchema; - /** @deprecated use `SubscribersControllerModifySubscriberChannelRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerModifySubscriberChannelRequest$Outbound; -} - -export function subscribersControllerModifySubscriberChannelRequestToJSON( - subscribersControllerModifySubscriberChannelRequest: - SubscribersControllerModifySubscriberChannelRequest, -): string { - return JSON.stringify( - SubscribersControllerModifySubscriberChannelRequest$outboundSchema.parse( - subscribersControllerModifySubscriberChannelRequest, - ), - ); -} - -export function subscribersControllerModifySubscriberChannelRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerModifySubscriberChannelRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerModifySubscriberChannelRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerModifySubscriberChannelRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerModifySubscriberChannelResponse$inboundSchema: - z.ZodType< - SubscribersControllerModifySubscriberChannelResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.SubscriberResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerModifySubscriberChannelResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.SubscriberResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerModifySubscriberChannelResponse$outboundSchema: - z.ZodType< - SubscribersControllerModifySubscriberChannelResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerModifySubscriberChannelResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.SubscriberResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerModifySubscriberChannelResponse$ { - /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerModifySubscriberChannelResponse$inboundSchema; - /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerModifySubscriberChannelResponse$outboundSchema; - /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerModifySubscriberChannelResponse$Outbound; -} - -export function subscribersControllerModifySubscriberChannelResponseToJSON( - subscribersControllerModifySubscriberChannelResponse: - SubscribersControllerModifySubscriberChannelResponse, -): string { - return JSON.stringify( - SubscribersControllerModifySubscriberChannelResponse$outboundSchema.parse( - subscribersControllerModifySubscriberChannelResponse, - ), - ); -} - -export function subscribersControllerModifySubscriberChannelResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerModifySubscriberChannelResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerModifySubscriberChannelResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerModifySubscriberChannelResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerremovesubscriber.ts b/src/models/operations/subscriberscontrollerremovesubscriber.ts deleted file mode 100644 index 13a1fa1c..00000000 --- a/src/models/operations/subscriberscontrollerremovesubscriber.ts +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerRemoveSubscriberRequest = { - subscriberId: string; -}; - -export type SubscribersControllerRemoveSubscriberResponse = { - headers: { [k: string]: Array }; - result: components.DeleteSubscriberResponseDto; -}; - -/** @internal */ -export const SubscribersControllerRemoveSubscriberRequest$inboundSchema: - z.ZodType< - SubscribersControllerRemoveSubscriberRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - }); - -/** @internal */ -export type SubscribersControllerRemoveSubscriberRequest$Outbound = { - subscriberId: string; -}; - -/** @internal */ -export const SubscribersControllerRemoveSubscriberRequest$outboundSchema: - z.ZodType< - SubscribersControllerRemoveSubscriberRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerRemoveSubscriberRequest - > = z.object({ - subscriberId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerRemoveSubscriberRequest$ { - /** @deprecated use `SubscribersControllerRemoveSubscriberRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerRemoveSubscriberRequest$inboundSchema; - /** @deprecated use `SubscribersControllerRemoveSubscriberRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerRemoveSubscriberRequest$outboundSchema; - /** @deprecated use `SubscribersControllerRemoveSubscriberRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerRemoveSubscriberRequest$Outbound; -} - -export function subscribersControllerRemoveSubscriberRequestToJSON( - subscribersControllerRemoveSubscriberRequest: - SubscribersControllerRemoveSubscriberRequest, -): string { - return JSON.stringify( - SubscribersControllerRemoveSubscriberRequest$outboundSchema.parse( - subscribersControllerRemoveSubscriberRequest, - ), - ); -} - -export function subscribersControllerRemoveSubscriberRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerRemoveSubscriberRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerRemoveSubscriberRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerRemoveSubscriberRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerRemoveSubscriberResponse$inboundSchema: - z.ZodType< - SubscribersControllerRemoveSubscriberResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.DeleteSubscriberResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerRemoveSubscriberResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.DeleteSubscriberResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerRemoveSubscriberResponse$outboundSchema: - z.ZodType< - SubscribersControllerRemoveSubscriberResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerRemoveSubscriberResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.DeleteSubscriberResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerRemoveSubscriberResponse$ { - /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerRemoveSubscriberResponse$inboundSchema; - /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerRemoveSubscriberResponse$outboundSchema; - /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerRemoveSubscriberResponse$Outbound; -} - -export function subscribersControllerRemoveSubscriberResponseToJSON( - subscribersControllerRemoveSubscriberResponse: - SubscribersControllerRemoveSubscriberResponse, -): string { - return JSON.stringify( - SubscribersControllerRemoveSubscriberResponse$outboundSchema.parse( - subscribersControllerRemoveSubscriberResponse, - ), - ); -} - -export function subscribersControllerRemoveSubscriberResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerRemoveSubscriberResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerRemoveSubscriberResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerRemoveSubscriberResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriber.ts b/src/models/operations/subscriberscontrollerupdatesubscriber.ts deleted file mode 100644 index 204dc193..00000000 --- a/src/models/operations/subscriberscontrollerupdatesubscriber.ts +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerUpdateSubscriberRequest = { - subscriberId: string; - updateSubscriberRequestDto: components.UpdateSubscriberRequestDto; -}; - -export type SubscribersControllerUpdateSubscriberResponse = { - headers: { [k: string]: Array }; - result: components.SubscriberResponseDto; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberRequest$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - UpdateSubscriberRequestDto: - components.UpdateSubscriberRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateSubscriberRequestDto": "updateSubscriberRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberRequest$Outbound = { - subscriberId: string; - UpdateSubscriberRequestDto: components.UpdateSubscriberRequestDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberRequest$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberRequest - > = z.object({ - subscriberId: z.string(), - updateSubscriberRequestDto: - components.UpdateSubscriberRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateSubscriberRequestDto: "UpdateSubscriberRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberRequest$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberRequest$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberRequest$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberRequest$Outbound` instead. */ - export type Outbound = SubscribersControllerUpdateSubscriberRequest$Outbound; -} - -export function subscribersControllerUpdateSubscriberRequestToJSON( - subscribersControllerUpdateSubscriberRequest: - SubscribersControllerUpdateSubscriberRequest, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberRequest$outboundSchema.parse( - subscribersControllerUpdateSubscriberRequest, - ), - ); -} - -export function subscribersControllerUpdateSubscriberRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerUpdateSubscriberRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerUpdateSubscriberResponse$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.SubscriberResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.SubscriberResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberResponse$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.SubscriberResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberResponse$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberResponse$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberResponse$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$Outbound` instead. */ - export type Outbound = SubscribersControllerUpdateSubscriberResponse$Outbound; -} - -export function subscribersControllerUpdateSubscriberResponseToJSON( - subscribersControllerUpdateSubscriberResponse: - SubscribersControllerUpdateSubscriberResponse, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberResponse$outboundSchema.parse( - subscribersControllerUpdateSubscriberResponse, - ), - ); -} - -export function subscribersControllerUpdateSubscriberResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerUpdateSubscriberResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts b/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts deleted file mode 100644 index df9e40d7..00000000 --- a/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerUpdateSubscriberChannelRequest = { - subscriberId: string; - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto; -}; - -export type SubscribersControllerUpdateSubscriberChannelResponse = { - headers: { [k: string]: Array }; - result: components.SubscriberResponseDto; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberChannelRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - UpdateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateSubscriberChannelRequestDto": "updateSubscriberChannelRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberChannelRequest$Outbound = { - subscriberId: string; - UpdateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberChannelRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberChannelRequest - > = z.object({ - subscriberId: z.string(), - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateSubscriberChannelRequestDto: "UpdateSubscriberChannelRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberChannelRequest$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberChannelRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberChannelRequest$Outbound; -} - -export function subscribersControllerUpdateSubscriberChannelRequestToJSON( - subscribersControllerUpdateSubscriberChannelRequest: - SubscribersControllerUpdateSubscriberChannelRequest, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema.parse( - subscribersControllerUpdateSubscriberChannelRequest, - ), - ); -} - -export function subscribersControllerUpdateSubscriberChannelRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberChannelRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerUpdateSubscriberChannelRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberChannelResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.SubscriberResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberChannelResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.SubscriberResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberChannelResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberChannelResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.SubscriberResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberChannelResponse$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberChannelResponse$Outbound; -} - -export function subscribersControllerUpdateSubscriberChannelResponseToJSON( - subscribersControllerUpdateSubscriberChannelResponse: - SubscribersControllerUpdateSubscriberChannelResponse, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema.parse( - subscribersControllerUpdateSubscriberChannelResponse, - ), - ); -} - -export function subscribersControllerUpdateSubscriberChannelResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberChannelResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SubscribersControllerUpdateSubscriberChannelResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts b/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts deleted file mode 100644 index 7499d408..00000000 --- a/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { - subscriberId: string; - updateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto; -}; - -export type SubscribersControllerUpdateSubscriberGlobalPreferencesResponse = { - headers: { [k: string]: Array }; - result: components.UpdateSubscriberPreferenceResponseDto; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - UpdateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateSubscriberGlobalPreferencesRequestDto": - "updateSubscriberGlobalPreferencesRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound = - { - subscriberId: string; - UpdateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto$Outbound; - }; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest - > = z.object({ - subscriberId: z.string(), - updateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateSubscriberGlobalPreferencesRequestDto: - "UpdateSubscriberGlobalPreferencesRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound; -} - -export function subscribersControllerUpdateSubscriberGlobalPreferencesRequestToJSON( - subscribersControllerUpdateSubscriberGlobalPreferencesRequest: - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema - .parse(subscribersControllerUpdateSubscriberGlobalPreferencesRequest), - ); -} - -export function subscribersControllerUpdateSubscriberGlobalPreferencesRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerUpdateSubscriberGlobalPreferencesRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.UpdateSubscriberPreferenceResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound = - { - Headers: { [k: string]: Array }; - Result: components.UpdateSubscriberPreferenceResponseDto$Outbound; - }; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.UpdateSubscriberPreferenceResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound; -} - -export function subscribersControllerUpdateSubscriberGlobalPreferencesResponseToJSON( - subscribersControllerUpdateSubscriberGlobalPreferencesResponse: - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema - .parse(subscribersControllerUpdateSubscriberGlobalPreferencesResponse), - ); -} - -export function subscribersControllerUpdateSubscriberGlobalPreferencesResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerUpdateSubscriberGlobalPreferencesResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts b/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts deleted file mode 100644 index fcd33653..00000000 --- a/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerUpdateSubscriberOnlineFlagRequest = { - subscriberId: string; - updateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto; -}; - -export type SubscribersControllerUpdateSubscriberOnlineFlagResponse = { - headers: { [k: string]: Array }; - result: components.SubscriberResponseDto; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberOnlineFlagRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - UpdateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateSubscriberOnlineFlagRequestDto": - "updateSubscriberOnlineFlagRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound = { - subscriberId: string; - UpdateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberOnlineFlagRequest - > = z.object({ - subscriberId: z.string(), - updateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateSubscriberOnlineFlagRequestDto: - "UpdateSubscriberOnlineFlagRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberOnlineFlagRequest$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound; -} - -export function subscribersControllerUpdateSubscriberOnlineFlagRequestToJSON( - subscribersControllerUpdateSubscriberOnlineFlagRequest: - SubscribersControllerUpdateSubscriberOnlineFlagRequest, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema.parse( - subscribersControllerUpdateSubscriberOnlineFlagRequest, - ), - ); -} - -export function subscribersControllerUpdateSubscriberOnlineFlagRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberOnlineFlagRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerUpdateSubscriberOnlineFlagRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberOnlineFlagResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.SubscriberResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.SubscriberResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberOnlineFlagResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.SubscriberResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberOnlineFlagResponse$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound; -} - -export function subscribersControllerUpdateSubscriberOnlineFlagResponseToJSON( - subscribersControllerUpdateSubscriberOnlineFlagResponse: - SubscribersControllerUpdateSubscriberOnlineFlagResponse, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema - .parse(subscribersControllerUpdateSubscriberOnlineFlagResponse), - ); -} - -export function subscribersControllerUpdateSubscriberOnlineFlagResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberOnlineFlagResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerUpdateSubscriberOnlineFlagResponse' from JSON`, - ); -} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts b/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts deleted file mode 100644 index 8e1c86cf..00000000 --- a/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type SubscribersControllerUpdateSubscriberPreferenceRequest = { - subscriberId: string; - parameter: string; - updateSubscriberPreferenceRequestDto: - components.UpdateSubscriberPreferenceRequestDto; -}; - -export type SubscribersControllerUpdateSubscriberPreferenceResponse = { - headers: { [k: string]: Array }; - result: components.UpdateSubscriberPreferenceResponseDto; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberPreferenceRequest, - z.ZodTypeDef, - unknown - > = z.object({ - subscriberId: z.string(), - parameter: z.string(), - UpdateSubscriberPreferenceRequestDto: - components.UpdateSubscriberPreferenceRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateSubscriberPreferenceRequestDto": - "updateSubscriberPreferenceRequestDto", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound = { - subscriberId: string; - parameter: string; - UpdateSubscriberPreferenceRequestDto: - components.UpdateSubscriberPreferenceRequestDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberPreferenceRequest - > = z.object({ - subscriberId: z.string(), - parameter: z.string(), - updateSubscriberPreferenceRequestDto: - components.UpdateSubscriberPreferenceRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateSubscriberPreferenceRequestDto: - "UpdateSubscriberPreferenceRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberPreferenceRequest$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound; -} - -export function subscribersControllerUpdateSubscriberPreferenceRequestToJSON( - subscribersControllerUpdateSubscriberPreferenceRequest: - SubscribersControllerUpdateSubscriberPreferenceRequest, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema.parse( - subscribersControllerUpdateSubscriberPreferenceRequest, - ), - ); -} - -export function subscribersControllerUpdateSubscriberPreferenceRequestFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberPreferenceRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerUpdateSubscriberPreferenceRequest' from JSON`, - ); -} - -/** @internal */ -export const SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberPreferenceResponse, - z.ZodTypeDef, - unknown - > = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.UpdateSubscriberPreferenceResponseDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.UpdateSubscriberPreferenceResponseDto$Outbound; -}; - -/** @internal */ -export const SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema: - z.ZodType< - SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound, - z.ZodTypeDef, - SubscribersControllerUpdateSubscriberPreferenceResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.UpdateSubscriberPreferenceResponseDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace SubscribersControllerUpdateSubscriberPreferenceResponse$ { - /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema` instead. */ - export const inboundSchema = - SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema` instead. */ - export const outboundSchema = - SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema; - /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound` instead. */ - export type Outbound = - SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound; -} - -export function subscribersControllerUpdateSubscriberPreferenceResponseToJSON( - subscribersControllerUpdateSubscriberPreferenceResponse: - SubscribersControllerUpdateSubscriberPreferenceResponse, -): string { - return JSON.stringify( - SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema - .parse(subscribersControllerUpdateSubscriberPreferenceResponse), - ); -} - -export function subscribersControllerUpdateSubscriberPreferenceResponseFromJSON( - jsonString: string, -): SafeParseResult< - SubscribersControllerUpdateSubscriberPreferenceResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SubscribersControllerUpdateSubscriberPreferenceResponse' from JSON`, - ); -} diff --git a/src/models/operations/tenantcontrollergettenantbyid.ts b/src/models/operations/tenantcontrollergettenantbyid.ts deleted file mode 100644 index 0fce80f3..00000000 --- a/src/models/operations/tenantcontrollergettenantbyid.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type TenantControllerGetTenantByIdRequest = { - identifier: string; -}; - -/** @internal */ -export const TenantControllerGetTenantByIdRequest$inboundSchema: z.ZodType< - TenantControllerGetTenantByIdRequest, - z.ZodTypeDef, - unknown -> = z.object({ - identifier: z.string(), -}); - -/** @internal */ -export type TenantControllerGetTenantByIdRequest$Outbound = { - identifier: string; -}; - -/** @internal */ -export const TenantControllerGetTenantByIdRequest$outboundSchema: z.ZodType< - TenantControllerGetTenantByIdRequest$Outbound, - z.ZodTypeDef, - TenantControllerGetTenantByIdRequest -> = z.object({ - identifier: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantControllerGetTenantByIdRequest$ { - /** @deprecated use `TenantControllerGetTenantByIdRequest$inboundSchema` instead. */ - export const inboundSchema = - TenantControllerGetTenantByIdRequest$inboundSchema; - /** @deprecated use `TenantControllerGetTenantByIdRequest$outboundSchema` instead. */ - export const outboundSchema = - TenantControllerGetTenantByIdRequest$outboundSchema; - /** @deprecated use `TenantControllerGetTenantByIdRequest$Outbound` instead. */ - export type Outbound = TenantControllerGetTenantByIdRequest$Outbound; -} diff --git a/src/models/operations/tenantcontrollerlisttenants.ts b/src/models/operations/tenantcontrollerlisttenants.ts deleted file mode 100644 index b1673a50..00000000 --- a/src/models/operations/tenantcontrollerlisttenants.ts +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import * as components from "../components/index.js"; - -export type TenantControllerListTenantsRequest = { - page?: number | undefined; - limit?: number | undefined; -}; - -export type TenantControllerListTenantsResponseBody = { - data: Array; - /** - * Does the list have more items to fetch - */ - hasMore: boolean; - /** - * The current page of the paginated response - */ - page: number; - /** - * Number of items on each page - */ - pageSize: number; -}; - -export type TenantControllerListTenantsResponse = { - result: TenantControllerListTenantsResponseBody; -}; - -/** @internal */ -export const TenantControllerListTenantsRequest$inboundSchema: z.ZodType< - TenantControllerListTenantsRequest, - z.ZodTypeDef, - unknown -> = z.object({ - page: z.number().optional(), - limit: z.number().default(10), -}); - -/** @internal */ -export type TenantControllerListTenantsRequest$Outbound = { - page?: number | undefined; - limit: number; -}; - -/** @internal */ -export const TenantControllerListTenantsRequest$outboundSchema: z.ZodType< - TenantControllerListTenantsRequest$Outbound, - z.ZodTypeDef, - TenantControllerListTenantsRequest -> = z.object({ - page: z.number().optional(), - limit: z.number().default(10), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantControllerListTenantsRequest$ { - /** @deprecated use `TenantControllerListTenantsRequest$inboundSchema` instead. */ - export const inboundSchema = TenantControllerListTenantsRequest$inboundSchema; - /** @deprecated use `TenantControllerListTenantsRequest$outboundSchema` instead. */ - export const outboundSchema = - TenantControllerListTenantsRequest$outboundSchema; - /** @deprecated use `TenantControllerListTenantsRequest$Outbound` instead. */ - export type Outbound = TenantControllerListTenantsRequest$Outbound; -} - -/** @internal */ -export const TenantControllerListTenantsResponseBody$inboundSchema: z.ZodType< - TenantControllerListTenantsResponseBody, - z.ZodTypeDef, - unknown -> = z.object({ - data: z.array(components.GetTenantResponseDto$inboundSchema), - hasMore: z.boolean(), - page: z.number(), - pageSize: z.number(), -}); - -/** @internal */ -export type TenantControllerListTenantsResponseBody$Outbound = { - data: Array; - hasMore: boolean; - page: number; - pageSize: number; -}; - -/** @internal */ -export const TenantControllerListTenantsResponseBody$outboundSchema: z.ZodType< - TenantControllerListTenantsResponseBody$Outbound, - z.ZodTypeDef, - TenantControllerListTenantsResponseBody -> = z.object({ - data: z.array(components.GetTenantResponseDto$outboundSchema), - hasMore: z.boolean(), - page: z.number(), - pageSize: z.number(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantControllerListTenantsResponseBody$ { - /** @deprecated use `TenantControllerListTenantsResponseBody$inboundSchema` instead. */ - export const inboundSchema = - TenantControllerListTenantsResponseBody$inboundSchema; - /** @deprecated use `TenantControllerListTenantsResponseBody$outboundSchema` instead. */ - export const outboundSchema = - TenantControllerListTenantsResponseBody$outboundSchema; - /** @deprecated use `TenantControllerListTenantsResponseBody$Outbound` instead. */ - export type Outbound = TenantControllerListTenantsResponseBody$Outbound; -} - -/** @internal */ -export const TenantControllerListTenantsResponse$inboundSchema: z.ZodType< - TenantControllerListTenantsResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Result: z.lazy(() => TenantControllerListTenantsResponseBody$inboundSchema), -}).transform((v) => { - return remap$(v, { - "Result": "result", - }); -}); - -/** @internal */ -export type TenantControllerListTenantsResponse$Outbound = { - Result: TenantControllerListTenantsResponseBody$Outbound; -}; - -/** @internal */ -export const TenantControllerListTenantsResponse$outboundSchema: z.ZodType< - TenantControllerListTenantsResponse$Outbound, - z.ZodTypeDef, - TenantControllerListTenantsResponse -> = z.object({ - result: z.lazy(() => TenantControllerListTenantsResponseBody$outboundSchema), -}).transform((v) => { - return remap$(v, { - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantControllerListTenantsResponse$ { - /** @deprecated use `TenantControllerListTenantsResponse$inboundSchema` instead. */ - export const inboundSchema = - TenantControllerListTenantsResponse$inboundSchema; - /** @deprecated use `TenantControllerListTenantsResponse$outboundSchema` instead. */ - export const outboundSchema = - TenantControllerListTenantsResponse$outboundSchema; - /** @deprecated use `TenantControllerListTenantsResponse$Outbound` instead. */ - export type Outbound = TenantControllerListTenantsResponse$Outbound; -} diff --git a/src/models/operations/tenantcontrollerremovetenant.ts b/src/models/operations/tenantcontrollerremovetenant.ts deleted file mode 100644 index 1febb16f..00000000 --- a/src/models/operations/tenantcontrollerremovetenant.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type TenantControllerRemoveTenantRequest = { - identifier: string; -}; - -/** @internal */ -export const TenantControllerRemoveTenantRequest$inboundSchema: z.ZodType< - TenantControllerRemoveTenantRequest, - z.ZodTypeDef, - unknown -> = z.object({ - identifier: z.string(), -}); - -/** @internal */ -export type TenantControllerRemoveTenantRequest$Outbound = { - identifier: string; -}; - -/** @internal */ -export const TenantControllerRemoveTenantRequest$outboundSchema: z.ZodType< - TenantControllerRemoveTenantRequest$Outbound, - z.ZodTypeDef, - TenantControllerRemoveTenantRequest -> = z.object({ - identifier: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantControllerRemoveTenantRequest$ { - /** @deprecated use `TenantControllerRemoveTenantRequest$inboundSchema` instead. */ - export const inboundSchema = - TenantControllerRemoveTenantRequest$inboundSchema; - /** @deprecated use `TenantControllerRemoveTenantRequest$outboundSchema` instead. */ - export const outboundSchema = - TenantControllerRemoveTenantRequest$outboundSchema; - /** @deprecated use `TenantControllerRemoveTenantRequest$Outbound` instead. */ - export type Outbound = TenantControllerRemoveTenantRequest$Outbound; -} diff --git a/src/models/operations/tenantcontrollerupdatetenant.ts b/src/models/operations/tenantcontrollerupdatetenant.ts deleted file mode 100644 index c0c99bf5..00000000 --- a/src/models/operations/tenantcontrollerupdatetenant.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import * as components from "../components/index.js"; - -export type TenantControllerUpdateTenantRequest = { - identifier: string; - updateTenantRequestDto: components.UpdateTenantRequestDto; -}; - -/** @internal */ -export const TenantControllerUpdateTenantRequest$inboundSchema: z.ZodType< - TenantControllerUpdateTenantRequest, - z.ZodTypeDef, - unknown -> = z.object({ - identifier: z.string(), - UpdateTenantRequestDto: components.UpdateTenantRequestDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "UpdateTenantRequestDto": "updateTenantRequestDto", - }); -}); - -/** @internal */ -export type TenantControllerUpdateTenantRequest$Outbound = { - identifier: string; - UpdateTenantRequestDto: components.UpdateTenantRequestDto$Outbound; -}; - -/** @internal */ -export const TenantControllerUpdateTenantRequest$outboundSchema: z.ZodType< - TenantControllerUpdateTenantRequest$Outbound, - z.ZodTypeDef, - TenantControllerUpdateTenantRequest -> = z.object({ - identifier: z.string(), - updateTenantRequestDto: components.UpdateTenantRequestDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - updateTenantRequestDto: "UpdateTenantRequestDto", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TenantControllerUpdateTenantRequest$ { - /** @deprecated use `TenantControllerUpdateTenantRequest$inboundSchema` instead. */ - export const inboundSchema = - TenantControllerUpdateTenantRequest$inboundSchema; - /** @deprecated use `TenantControllerUpdateTenantRequest$outboundSchema` instead. */ - export const outboundSchema = - TenantControllerUpdateTenantRequest$outboundSchema; - /** @deprecated use `TenantControllerUpdateTenantRequest$Outbound` instead. */ - export type Outbound = TenantControllerUpdateTenantRequest$Outbound; -} diff --git a/src/models/operations/topicscontrolleraddsubscribers.ts b/src/models/operations/topicscontrolleraddsubscribers.ts deleted file mode 100644 index 080fc60a..00000000 --- a/src/models/operations/topicscontrolleraddsubscribers.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerAddSubscribersRequest = { - /** - * The topic key - */ - topicKey: string; - addSubscribersRequestDto: components.AddSubscribersRequestDto; -}; - -export type TopicsControllerAddSubscribersResponse = { - headers: { [k: string]: Array }; -}; - -/** @internal */ -export const TopicsControllerAddSubscribersRequest$inboundSchema: z.ZodType< - TopicsControllerAddSubscribersRequest, - z.ZodTypeDef, - unknown -> = z.object({ - topicKey: z.string(), - AddSubscribersRequestDto: components.AddSubscribersRequestDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "AddSubscribersRequestDto": "addSubscribersRequestDto", - }); -}); - -/** @internal */ -export type TopicsControllerAddSubscribersRequest$Outbound = { - topicKey: string; - AddSubscribersRequestDto: components.AddSubscribersRequestDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerAddSubscribersRequest$outboundSchema: z.ZodType< - TopicsControllerAddSubscribersRequest$Outbound, - z.ZodTypeDef, - TopicsControllerAddSubscribersRequest -> = z.object({ - topicKey: z.string(), - addSubscribersRequestDto: components.AddSubscribersRequestDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - addSubscribersRequestDto: "AddSubscribersRequestDto", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerAddSubscribersRequest$ { - /** @deprecated use `TopicsControllerAddSubscribersRequest$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerAddSubscribersRequest$inboundSchema; - /** @deprecated use `TopicsControllerAddSubscribersRequest$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerAddSubscribersRequest$outboundSchema; - /** @deprecated use `TopicsControllerAddSubscribersRequest$Outbound` instead. */ - export type Outbound = TopicsControllerAddSubscribersRequest$Outbound; -} - -export function topicsControllerAddSubscribersRequestToJSON( - topicsControllerAddSubscribersRequest: TopicsControllerAddSubscribersRequest, -): string { - return JSON.stringify( - TopicsControllerAddSubscribersRequest$outboundSchema.parse( - topicsControllerAddSubscribersRequest, - ), - ); -} - -export function topicsControllerAddSubscribersRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerAddSubscribersRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerAddSubscribersRequest' from JSON`, - ); -} - -/** @internal */ -export const TopicsControllerAddSubscribersResponse$inboundSchema: z.ZodType< - TopicsControllerAddSubscribersResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - }); -}); - -/** @internal */ -export type TopicsControllerAddSubscribersResponse$Outbound = { - Headers: { [k: string]: Array }; -}; - -/** @internal */ -export const TopicsControllerAddSubscribersResponse$outboundSchema: z.ZodType< - TopicsControllerAddSubscribersResponse$Outbound, - z.ZodTypeDef, - TopicsControllerAddSubscribersResponse -> = z.object({ - headers: z.record(z.array(z.string())), -}).transform((v) => { - return remap$(v, { - headers: "Headers", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerAddSubscribersResponse$ { - /** @deprecated use `TopicsControllerAddSubscribersResponse$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerAddSubscribersResponse$inboundSchema; - /** @deprecated use `TopicsControllerAddSubscribersResponse$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerAddSubscribersResponse$outboundSchema; - /** @deprecated use `TopicsControllerAddSubscribersResponse$Outbound` instead. */ - export type Outbound = TopicsControllerAddSubscribersResponse$Outbound; -} - -export function topicsControllerAddSubscribersResponseToJSON( - topicsControllerAddSubscribersResponse: - TopicsControllerAddSubscribersResponse, -): string { - return JSON.stringify( - TopicsControllerAddSubscribersResponse$outboundSchema.parse( - topicsControllerAddSubscribersResponse, - ), - ); -} - -export function topicsControllerAddSubscribersResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerAddSubscribersResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerAddSubscribersResponse' from JSON`, - ); -} diff --git a/src/models/operations/topicscontrollercreatetopic.ts b/src/models/operations/topicscontrollercreatetopic.ts deleted file mode 100644 index e26599ab..00000000 --- a/src/models/operations/topicscontrollercreatetopic.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerCreateTopicResponse = { - headers: { [k: string]: Array }; - result: components.CreateTopicResponseDto; -}; - -/** @internal */ -export const TopicsControllerCreateTopicResponse$inboundSchema: z.ZodType< - TopicsControllerCreateTopicResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.CreateTopicResponseDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type TopicsControllerCreateTopicResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.CreateTopicResponseDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerCreateTopicResponse$outboundSchema: z.ZodType< - TopicsControllerCreateTopicResponse$Outbound, - z.ZodTypeDef, - TopicsControllerCreateTopicResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.CreateTopicResponseDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerCreateTopicResponse$ { - /** @deprecated use `TopicsControllerCreateTopicResponse$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerCreateTopicResponse$inboundSchema; - /** @deprecated use `TopicsControllerCreateTopicResponse$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerCreateTopicResponse$outboundSchema; - /** @deprecated use `TopicsControllerCreateTopicResponse$Outbound` instead. */ - export type Outbound = TopicsControllerCreateTopicResponse$Outbound; -} - -export function topicsControllerCreateTopicResponseToJSON( - topicsControllerCreateTopicResponse: TopicsControllerCreateTopicResponse, -): string { - return JSON.stringify( - TopicsControllerCreateTopicResponse$outboundSchema.parse( - topicsControllerCreateTopicResponse, - ), - ); -} - -export function topicsControllerCreateTopicResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerCreateTopicResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerCreateTopicResponse' from JSON`, - ); -} diff --git a/src/models/operations/topicscontrollerdeletetopic.ts b/src/models/operations/topicscontrollerdeletetopic.ts deleted file mode 100644 index 7e2f2e0a..00000000 --- a/src/models/operations/topicscontrollerdeletetopic.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerDeleteTopicRequest = { - /** - * The topic key - */ - topicKey: string; -}; - -export type TopicsControllerDeleteTopicResponse = { - headers: { [k: string]: Array }; -}; - -/** @internal */ -export const TopicsControllerDeleteTopicRequest$inboundSchema: z.ZodType< - TopicsControllerDeleteTopicRequest, - z.ZodTypeDef, - unknown -> = z.object({ - topicKey: z.string(), -}); - -/** @internal */ -export type TopicsControllerDeleteTopicRequest$Outbound = { - topicKey: string; -}; - -/** @internal */ -export const TopicsControllerDeleteTopicRequest$outboundSchema: z.ZodType< - TopicsControllerDeleteTopicRequest$Outbound, - z.ZodTypeDef, - TopicsControllerDeleteTopicRequest -> = z.object({ - topicKey: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerDeleteTopicRequest$ { - /** @deprecated use `TopicsControllerDeleteTopicRequest$inboundSchema` instead. */ - export const inboundSchema = TopicsControllerDeleteTopicRequest$inboundSchema; - /** @deprecated use `TopicsControllerDeleteTopicRequest$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerDeleteTopicRequest$outboundSchema; - /** @deprecated use `TopicsControllerDeleteTopicRequest$Outbound` instead. */ - export type Outbound = TopicsControllerDeleteTopicRequest$Outbound; -} - -export function topicsControllerDeleteTopicRequestToJSON( - topicsControllerDeleteTopicRequest: TopicsControllerDeleteTopicRequest, -): string { - return JSON.stringify( - TopicsControllerDeleteTopicRequest$outboundSchema.parse( - topicsControllerDeleteTopicRequest, - ), - ); -} - -export function topicsControllerDeleteTopicRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerDeleteTopicRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerDeleteTopicRequest' from JSON`, - ); -} - -/** @internal */ -export const TopicsControllerDeleteTopicResponse$inboundSchema: z.ZodType< - TopicsControllerDeleteTopicResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - }); -}); - -/** @internal */ -export type TopicsControllerDeleteTopicResponse$Outbound = { - Headers: { [k: string]: Array }; -}; - -/** @internal */ -export const TopicsControllerDeleteTopicResponse$outboundSchema: z.ZodType< - TopicsControllerDeleteTopicResponse$Outbound, - z.ZodTypeDef, - TopicsControllerDeleteTopicResponse -> = z.object({ - headers: z.record(z.array(z.string())), -}).transform((v) => { - return remap$(v, { - headers: "Headers", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerDeleteTopicResponse$ { - /** @deprecated use `TopicsControllerDeleteTopicResponse$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerDeleteTopicResponse$inboundSchema; - /** @deprecated use `TopicsControllerDeleteTopicResponse$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerDeleteTopicResponse$outboundSchema; - /** @deprecated use `TopicsControllerDeleteTopicResponse$Outbound` instead. */ - export type Outbound = TopicsControllerDeleteTopicResponse$Outbound; -} - -export function topicsControllerDeleteTopicResponseToJSON( - topicsControllerDeleteTopicResponse: TopicsControllerDeleteTopicResponse, -): string { - return JSON.stringify( - TopicsControllerDeleteTopicResponse$outboundSchema.parse( - topicsControllerDeleteTopicResponse, - ), - ); -} - -export function topicsControllerDeleteTopicResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerDeleteTopicResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerDeleteTopicResponse' from JSON`, - ); -} diff --git a/src/models/operations/topicscontrollergettopic.ts b/src/models/operations/topicscontrollergettopic.ts deleted file mode 100644 index 017b4120..00000000 --- a/src/models/operations/topicscontrollergettopic.ts +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerGetTopicRequest = { - /** - * The topic key - */ - topicKey: string; -}; - -export type TopicsControllerGetTopicResponse = { - headers: { [k: string]: Array }; - result: components.GetTopicResponseDto; -}; - -/** @internal */ -export const TopicsControllerGetTopicRequest$inboundSchema: z.ZodType< - TopicsControllerGetTopicRequest, - z.ZodTypeDef, - unknown -> = z.object({ - topicKey: z.string(), -}); - -/** @internal */ -export type TopicsControllerGetTopicRequest$Outbound = { - topicKey: string; -}; - -/** @internal */ -export const TopicsControllerGetTopicRequest$outboundSchema: z.ZodType< - TopicsControllerGetTopicRequest$Outbound, - z.ZodTypeDef, - TopicsControllerGetTopicRequest -> = z.object({ - topicKey: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerGetTopicRequest$ { - /** @deprecated use `TopicsControllerGetTopicRequest$inboundSchema` instead. */ - export const inboundSchema = TopicsControllerGetTopicRequest$inboundSchema; - /** @deprecated use `TopicsControllerGetTopicRequest$outboundSchema` instead. */ - export const outboundSchema = TopicsControllerGetTopicRequest$outboundSchema; - /** @deprecated use `TopicsControllerGetTopicRequest$Outbound` instead. */ - export type Outbound = TopicsControllerGetTopicRequest$Outbound; -} - -export function topicsControllerGetTopicRequestToJSON( - topicsControllerGetTopicRequest: TopicsControllerGetTopicRequest, -): string { - return JSON.stringify( - TopicsControllerGetTopicRequest$outboundSchema.parse( - topicsControllerGetTopicRequest, - ), - ); -} - -export function topicsControllerGetTopicRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TopicsControllerGetTopicRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerGetTopicRequest' from JSON`, - ); -} - -/** @internal */ -export const TopicsControllerGetTopicResponse$inboundSchema: z.ZodType< - TopicsControllerGetTopicResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.GetTopicResponseDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type TopicsControllerGetTopicResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.GetTopicResponseDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerGetTopicResponse$outboundSchema: z.ZodType< - TopicsControllerGetTopicResponse$Outbound, - z.ZodTypeDef, - TopicsControllerGetTopicResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.GetTopicResponseDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerGetTopicResponse$ { - /** @deprecated use `TopicsControllerGetTopicResponse$inboundSchema` instead. */ - export const inboundSchema = TopicsControllerGetTopicResponse$inboundSchema; - /** @deprecated use `TopicsControllerGetTopicResponse$outboundSchema` instead. */ - export const outboundSchema = TopicsControllerGetTopicResponse$outboundSchema; - /** @deprecated use `TopicsControllerGetTopicResponse$Outbound` instead. */ - export type Outbound = TopicsControllerGetTopicResponse$Outbound; -} - -export function topicsControllerGetTopicResponseToJSON( - topicsControllerGetTopicResponse: TopicsControllerGetTopicResponse, -): string { - return JSON.stringify( - TopicsControllerGetTopicResponse$outboundSchema.parse( - topicsControllerGetTopicResponse, - ), - ); -} - -export function topicsControllerGetTopicResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TopicsControllerGetTopicResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerGetTopicResponse' from JSON`, - ); -} diff --git a/src/models/operations/topicscontrollergettopicsubscriber.ts b/src/models/operations/topicscontrollergettopicsubscriber.ts deleted file mode 100644 index d9fd3fac..00000000 --- a/src/models/operations/topicscontrollergettopicsubscriber.ts +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerGetTopicSubscriberRequest = { - /** - * The external subscriber id - */ - externalSubscriberId: string; - /** - * The topic key - */ - topicKey: string; -}; - -export type TopicsControllerGetTopicSubscriberResponse = { - headers: { [k: string]: Array }; - result: components.TopicSubscriberDto; -}; - -/** @internal */ -export const TopicsControllerGetTopicSubscriberRequest$inboundSchema: z.ZodType< - TopicsControllerGetTopicSubscriberRequest, - z.ZodTypeDef, - unknown -> = z.object({ - externalSubscriberId: z.string(), - topicKey: z.string(), -}); - -/** @internal */ -export type TopicsControllerGetTopicSubscriberRequest$Outbound = { - externalSubscriberId: string; - topicKey: string; -}; - -/** @internal */ -export const TopicsControllerGetTopicSubscriberRequest$outboundSchema: - z.ZodType< - TopicsControllerGetTopicSubscriberRequest$Outbound, - z.ZodTypeDef, - TopicsControllerGetTopicSubscriberRequest - > = z.object({ - externalSubscriberId: z.string(), - topicKey: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerGetTopicSubscriberRequest$ { - /** @deprecated use `TopicsControllerGetTopicSubscriberRequest$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerGetTopicSubscriberRequest$inboundSchema; - /** @deprecated use `TopicsControllerGetTopicSubscriberRequest$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerGetTopicSubscriberRequest$outboundSchema; - /** @deprecated use `TopicsControllerGetTopicSubscriberRequest$Outbound` instead. */ - export type Outbound = TopicsControllerGetTopicSubscriberRequest$Outbound; -} - -export function topicsControllerGetTopicSubscriberRequestToJSON( - topicsControllerGetTopicSubscriberRequest: - TopicsControllerGetTopicSubscriberRequest, -): string { - return JSON.stringify( - TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( - topicsControllerGetTopicSubscriberRequest, - ), - ); -} - -export function topicsControllerGetTopicSubscriberRequestFromJSON( - jsonString: string, -): SafeParseResult< - TopicsControllerGetTopicSubscriberRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - TopicsControllerGetTopicSubscriberRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'TopicsControllerGetTopicSubscriberRequest' from JSON`, - ); -} - -/** @internal */ -export const TopicsControllerGetTopicSubscriberResponse$inboundSchema: - z.ZodType = - z.object({ - Headers: z.record(z.array(z.string())), - Result: components.TopicSubscriberDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); - }); - -/** @internal */ -export type TopicsControllerGetTopicSubscriberResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.TopicSubscriberDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerGetTopicSubscriberResponse$outboundSchema: - z.ZodType< - TopicsControllerGetTopicSubscriberResponse$Outbound, - z.ZodTypeDef, - TopicsControllerGetTopicSubscriberResponse - > = z.object({ - headers: z.record(z.array(z.string())), - result: components.TopicSubscriberDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerGetTopicSubscriberResponse$ { - /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerGetTopicSubscriberResponse$inboundSchema; - /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerGetTopicSubscriberResponse$outboundSchema; - /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$Outbound` instead. */ - export type Outbound = TopicsControllerGetTopicSubscriberResponse$Outbound; -} - -export function topicsControllerGetTopicSubscriberResponseToJSON( - topicsControllerGetTopicSubscriberResponse: - TopicsControllerGetTopicSubscriberResponse, -): string { - return JSON.stringify( - TopicsControllerGetTopicSubscriberResponse$outboundSchema.parse( - topicsControllerGetTopicSubscriberResponse, - ), - ); -} - -export function topicsControllerGetTopicSubscriberResponseFromJSON( - jsonString: string, -): SafeParseResult< - TopicsControllerGetTopicSubscriberResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - TopicsControllerGetTopicSubscriberResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'TopicsControllerGetTopicSubscriberResponse' from JSON`, - ); -} diff --git a/src/models/operations/topicscontrollerlisttopics.ts b/src/models/operations/topicscontrollerlisttopics.ts deleted file mode 100644 index f98fe53f..00000000 --- a/src/models/operations/topicscontrollerlisttopics.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerListTopicsRequest = { - /** - * Number of page for the pagination - */ - page?: number | undefined; - /** - * Size of page for the pagination - */ - pageSize?: number | undefined; - /** - * Topic key - */ - key?: string | undefined; -}; - -export type TopicsControllerListTopicsResponse = { - headers: { [k: string]: Array }; - result: components.FilterTopicsResponseDto; -}; - -/** @internal */ -export const TopicsControllerListTopicsRequest$inboundSchema: z.ZodType< - TopicsControllerListTopicsRequest, - z.ZodTypeDef, - unknown -> = z.object({ - page: z.number().default(0), - pageSize: z.number().default(10), - key: z.string().optional(), -}); - -/** @internal */ -export type TopicsControllerListTopicsRequest$Outbound = { - page: number; - pageSize: number; - key?: string | undefined; -}; - -/** @internal */ -export const TopicsControllerListTopicsRequest$outboundSchema: z.ZodType< - TopicsControllerListTopicsRequest$Outbound, - z.ZodTypeDef, - TopicsControllerListTopicsRequest -> = z.object({ - page: z.number().default(0), - pageSize: z.number().default(10), - key: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerListTopicsRequest$ { - /** @deprecated use `TopicsControllerListTopicsRequest$inboundSchema` instead. */ - export const inboundSchema = TopicsControllerListTopicsRequest$inboundSchema; - /** @deprecated use `TopicsControllerListTopicsRequest$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerListTopicsRequest$outboundSchema; - /** @deprecated use `TopicsControllerListTopicsRequest$Outbound` instead. */ - export type Outbound = TopicsControllerListTopicsRequest$Outbound; -} - -export function topicsControllerListTopicsRequestToJSON( - topicsControllerListTopicsRequest: TopicsControllerListTopicsRequest, -): string { - return JSON.stringify( - TopicsControllerListTopicsRequest$outboundSchema.parse( - topicsControllerListTopicsRequest, - ), - ); -} - -export function topicsControllerListTopicsRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => TopicsControllerListTopicsRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerListTopicsRequest' from JSON`, - ); -} - -/** @internal */ -export const TopicsControllerListTopicsResponse$inboundSchema: z.ZodType< - TopicsControllerListTopicsResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.FilterTopicsResponseDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type TopicsControllerListTopicsResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.FilterTopicsResponseDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerListTopicsResponse$outboundSchema: z.ZodType< - TopicsControllerListTopicsResponse$Outbound, - z.ZodTypeDef, - TopicsControllerListTopicsResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.FilterTopicsResponseDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerListTopicsResponse$ { - /** @deprecated use `TopicsControllerListTopicsResponse$inboundSchema` instead. */ - export const inboundSchema = TopicsControllerListTopicsResponse$inboundSchema; - /** @deprecated use `TopicsControllerListTopicsResponse$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerListTopicsResponse$outboundSchema; - /** @deprecated use `TopicsControllerListTopicsResponse$Outbound` instead. */ - export type Outbound = TopicsControllerListTopicsResponse$Outbound; -} - -export function topicsControllerListTopicsResponseToJSON( - topicsControllerListTopicsResponse: TopicsControllerListTopicsResponse, -): string { - return JSON.stringify( - TopicsControllerListTopicsResponse$outboundSchema.parse( - topicsControllerListTopicsResponse, - ), - ); -} - -export function topicsControllerListTopicsResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerListTopicsResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerListTopicsResponse' from JSON`, - ); -} diff --git a/src/models/operations/topicscontrollerremovesubscribers.ts b/src/models/operations/topicscontrollerremovesubscribers.ts deleted file mode 100644 index 8d84aadf..00000000 --- a/src/models/operations/topicscontrollerremovesubscribers.ts +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerRemoveSubscribersRequest = { - /** - * The topic key - */ - topicKey: string; - removeSubscribersRequestDto: components.RemoveSubscribersRequestDto; -}; - -export type TopicsControllerRemoveSubscribersResponse = { - headers: { [k: string]: Array }; -}; - -/** @internal */ -export const TopicsControllerRemoveSubscribersRequest$inboundSchema: z.ZodType< - TopicsControllerRemoveSubscribersRequest, - z.ZodTypeDef, - unknown -> = z.object({ - topicKey: z.string(), - RemoveSubscribersRequestDto: - components.RemoveSubscribersRequestDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "RemoveSubscribersRequestDto": "removeSubscribersRequestDto", - }); -}); - -/** @internal */ -export type TopicsControllerRemoveSubscribersRequest$Outbound = { - topicKey: string; - RemoveSubscribersRequestDto: components.RemoveSubscribersRequestDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerRemoveSubscribersRequest$outboundSchema: z.ZodType< - TopicsControllerRemoveSubscribersRequest$Outbound, - z.ZodTypeDef, - TopicsControllerRemoveSubscribersRequest -> = z.object({ - topicKey: z.string(), - removeSubscribersRequestDto: - components.RemoveSubscribersRequestDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - removeSubscribersRequestDto: "RemoveSubscribersRequestDto", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerRemoveSubscribersRequest$ { - /** @deprecated use `TopicsControllerRemoveSubscribersRequest$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerRemoveSubscribersRequest$inboundSchema; - /** @deprecated use `TopicsControllerRemoveSubscribersRequest$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerRemoveSubscribersRequest$outboundSchema; - /** @deprecated use `TopicsControllerRemoveSubscribersRequest$Outbound` instead. */ - export type Outbound = TopicsControllerRemoveSubscribersRequest$Outbound; -} - -export function topicsControllerRemoveSubscribersRequestToJSON( - topicsControllerRemoveSubscribersRequest: - TopicsControllerRemoveSubscribersRequest, -): string { - return JSON.stringify( - TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( - topicsControllerRemoveSubscribersRequest, - ), - ); -} - -export function topicsControllerRemoveSubscribersRequestFromJSON( - jsonString: string, -): SafeParseResult< - TopicsControllerRemoveSubscribersRequest, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - TopicsControllerRemoveSubscribersRequest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'TopicsControllerRemoveSubscribersRequest' from JSON`, - ); -} - -/** @internal */ -export const TopicsControllerRemoveSubscribersResponse$inboundSchema: z.ZodType< - TopicsControllerRemoveSubscribersResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - }); -}); - -/** @internal */ -export type TopicsControllerRemoveSubscribersResponse$Outbound = { - Headers: { [k: string]: Array }; -}; - -/** @internal */ -export const TopicsControllerRemoveSubscribersResponse$outboundSchema: - z.ZodType< - TopicsControllerRemoveSubscribersResponse$Outbound, - z.ZodTypeDef, - TopicsControllerRemoveSubscribersResponse - > = z.object({ - headers: z.record(z.array(z.string())), - }).transform((v) => { - return remap$(v, { - headers: "Headers", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerRemoveSubscribersResponse$ { - /** @deprecated use `TopicsControllerRemoveSubscribersResponse$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerRemoveSubscribersResponse$inboundSchema; - /** @deprecated use `TopicsControllerRemoveSubscribersResponse$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerRemoveSubscribersResponse$outboundSchema; - /** @deprecated use `TopicsControllerRemoveSubscribersResponse$Outbound` instead. */ - export type Outbound = TopicsControllerRemoveSubscribersResponse$Outbound; -} - -export function topicsControllerRemoveSubscribersResponseToJSON( - topicsControllerRemoveSubscribersResponse: - TopicsControllerRemoveSubscribersResponse, -): string { - return JSON.stringify( - TopicsControllerRemoveSubscribersResponse$outboundSchema.parse( - topicsControllerRemoveSubscribersResponse, - ), - ); -} - -export function topicsControllerRemoveSubscribersResponseFromJSON( - jsonString: string, -): SafeParseResult< - TopicsControllerRemoveSubscribersResponse, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - TopicsControllerRemoveSubscribersResponse$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'TopicsControllerRemoveSubscribersResponse' from JSON`, - ); -} diff --git a/src/models/operations/topicscontrollerrenametopic.ts b/src/models/operations/topicscontrollerrenametopic.ts deleted file mode 100644 index 3f033892..00000000 --- a/src/models/operations/topicscontrollerrenametopic.ts +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import { safeParse } from "../../lib/schemas.js"; -import { Result as SafeParseResult } from "../../types/fp.js"; -import * as components from "../components/index.js"; -import { SDKValidationError } from "../errors/sdkvalidationerror.js"; - -export type TopicsControllerRenameTopicRequest = { - /** - * The topic key - */ - topicKey: string; - renameTopicRequestDto: components.RenameTopicRequestDto; -}; - -export type TopicsControllerRenameTopicResponse = { - headers: { [k: string]: Array }; - result: components.RenameTopicResponseDto; -}; - -/** @internal */ -export const TopicsControllerRenameTopicRequest$inboundSchema: z.ZodType< - TopicsControllerRenameTopicRequest, - z.ZodTypeDef, - unknown -> = z.object({ - topicKey: z.string(), - RenameTopicRequestDto: components.RenameTopicRequestDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "RenameTopicRequestDto": "renameTopicRequestDto", - }); -}); - -/** @internal */ -export type TopicsControllerRenameTopicRequest$Outbound = { - topicKey: string; - RenameTopicRequestDto: components.RenameTopicRequestDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerRenameTopicRequest$outboundSchema: z.ZodType< - TopicsControllerRenameTopicRequest$Outbound, - z.ZodTypeDef, - TopicsControllerRenameTopicRequest -> = z.object({ - topicKey: z.string(), - renameTopicRequestDto: components.RenameTopicRequestDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - renameTopicRequestDto: "RenameTopicRequestDto", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerRenameTopicRequest$ { - /** @deprecated use `TopicsControllerRenameTopicRequest$inboundSchema` instead. */ - export const inboundSchema = TopicsControllerRenameTopicRequest$inboundSchema; - /** @deprecated use `TopicsControllerRenameTopicRequest$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerRenameTopicRequest$outboundSchema; - /** @deprecated use `TopicsControllerRenameTopicRequest$Outbound` instead. */ - export type Outbound = TopicsControllerRenameTopicRequest$Outbound; -} - -export function topicsControllerRenameTopicRequestToJSON( - topicsControllerRenameTopicRequest: TopicsControllerRenameTopicRequest, -): string { - return JSON.stringify( - TopicsControllerRenameTopicRequest$outboundSchema.parse( - topicsControllerRenameTopicRequest, - ), - ); -} - -export function topicsControllerRenameTopicRequestFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerRenameTopicRequest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerRenameTopicRequest' from JSON`, - ); -} - -/** @internal */ -export const TopicsControllerRenameTopicResponse$inboundSchema: z.ZodType< - TopicsControllerRenameTopicResponse, - z.ZodTypeDef, - unknown -> = z.object({ - Headers: z.record(z.array(z.string())), - Result: components.RenameTopicResponseDto$inboundSchema, -}).transform((v) => { - return remap$(v, { - "Headers": "headers", - "Result": "result", - }); -}); - -/** @internal */ -export type TopicsControllerRenameTopicResponse$Outbound = { - Headers: { [k: string]: Array }; - Result: components.RenameTopicResponseDto$Outbound; -}; - -/** @internal */ -export const TopicsControllerRenameTopicResponse$outboundSchema: z.ZodType< - TopicsControllerRenameTopicResponse$Outbound, - z.ZodTypeDef, - TopicsControllerRenameTopicResponse -> = z.object({ - headers: z.record(z.array(z.string())), - result: components.RenameTopicResponseDto$outboundSchema, -}).transform((v) => { - return remap$(v, { - headers: "Headers", - result: "Result", - }); -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace TopicsControllerRenameTopicResponse$ { - /** @deprecated use `TopicsControllerRenameTopicResponse$inboundSchema` instead. */ - export const inboundSchema = - TopicsControllerRenameTopicResponse$inboundSchema; - /** @deprecated use `TopicsControllerRenameTopicResponse$outboundSchema` instead. */ - export const outboundSchema = - TopicsControllerRenameTopicResponse$outboundSchema; - /** @deprecated use `TopicsControllerRenameTopicResponse$Outbound` instead. */ - export type Outbound = TopicsControllerRenameTopicResponse$Outbound; -} - -export function topicsControllerRenameTopicResponseToJSON( - topicsControllerRenameTopicResponse: TopicsControllerRenameTopicResponse, -): string { - return JSON.stringify( - TopicsControllerRenameTopicResponse$outboundSchema.parse( - topicsControllerRenameTopicResponse, - ), - ); -} - -export function topicsControllerRenameTopicResponseFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - TopicsControllerRenameTopicResponse$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'TopicsControllerRenameTopicResponse' from JSON`, - ); -} diff --git a/src/models/operations/workflowcontrollerdeleteworkflowbyid.ts b/src/models/operations/workflowcontrollerdeleteworkflowbyid.ts deleted file mode 100644 index 46f43e69..00000000 --- a/src/models/operations/workflowcontrollerdeleteworkflowbyid.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type WorkflowControllerDeleteWorkflowByIdRequest = { - workflowId: string; -}; - -/** @internal */ -export const WorkflowControllerDeleteWorkflowByIdRequest$inboundSchema: - z.ZodType< - WorkflowControllerDeleteWorkflowByIdRequest, - z.ZodTypeDef, - unknown - > = z.object({ - workflowId: z.string(), - }); - -/** @internal */ -export type WorkflowControllerDeleteWorkflowByIdRequest$Outbound = { - workflowId: string; -}; - -/** @internal */ -export const WorkflowControllerDeleteWorkflowByIdRequest$outboundSchema: - z.ZodType< - WorkflowControllerDeleteWorkflowByIdRequest$Outbound, - z.ZodTypeDef, - WorkflowControllerDeleteWorkflowByIdRequest - > = z.object({ - workflowId: z.string(), - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowControllerDeleteWorkflowByIdRequest$ { - /** @deprecated use `WorkflowControllerDeleteWorkflowByIdRequest$inboundSchema` instead. */ - export const inboundSchema = - WorkflowControllerDeleteWorkflowByIdRequest$inboundSchema; - /** @deprecated use `WorkflowControllerDeleteWorkflowByIdRequest$outboundSchema` instead. */ - export const outboundSchema = - WorkflowControllerDeleteWorkflowByIdRequest$outboundSchema; - /** @deprecated use `WorkflowControllerDeleteWorkflowByIdRequest$Outbound` instead. */ - export type Outbound = WorkflowControllerDeleteWorkflowByIdRequest$Outbound; -} diff --git a/src/models/operations/workflowcontrollergetworkflowbyid.ts b/src/models/operations/workflowcontrollergetworkflowbyid.ts deleted file mode 100644 index 65d9419f..00000000 --- a/src/models/operations/workflowcontrollergetworkflowbyid.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type WorkflowControllerGetWorkflowByIdRequest = { - workflowId: string; -}; - -/** @internal */ -export const WorkflowControllerGetWorkflowByIdRequest$inboundSchema: z.ZodType< - WorkflowControllerGetWorkflowByIdRequest, - z.ZodTypeDef, - unknown -> = z.object({ - workflowId: z.string(), -}); - -/** @internal */ -export type WorkflowControllerGetWorkflowByIdRequest$Outbound = { - workflowId: string; -}; - -/** @internal */ -export const WorkflowControllerGetWorkflowByIdRequest$outboundSchema: z.ZodType< - WorkflowControllerGetWorkflowByIdRequest$Outbound, - z.ZodTypeDef, - WorkflowControllerGetWorkflowByIdRequest -> = z.object({ - workflowId: z.string(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowControllerGetWorkflowByIdRequest$ { - /** @deprecated use `WorkflowControllerGetWorkflowByIdRequest$inboundSchema` instead. */ - export const inboundSchema = - WorkflowControllerGetWorkflowByIdRequest$inboundSchema; - /** @deprecated use `WorkflowControllerGetWorkflowByIdRequest$outboundSchema` instead. */ - export const outboundSchema = - WorkflowControllerGetWorkflowByIdRequest$outboundSchema; - /** @deprecated use `WorkflowControllerGetWorkflowByIdRequest$Outbound` instead. */ - export type Outbound = WorkflowControllerGetWorkflowByIdRequest$Outbound; -} diff --git a/src/models/operations/workflowcontrollerlistworkflows.ts b/src/models/operations/workflowcontrollerlistworkflows.ts deleted file mode 100644 index fbbeb038..00000000 --- a/src/models/operations/workflowcontrollerlistworkflows.ts +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export type WorkflowControllerListWorkflowsRequest = { - page?: number | undefined; - limit?: number | undefined; - /** - * A query string to filter the results. It allows filtering based on either the name or trigger identifier of the workflow items. - */ - query?: string | undefined; -}; - -/** @internal */ -export const WorkflowControllerListWorkflowsRequest$inboundSchema: z.ZodType< - WorkflowControllerListWorkflowsRequest, - z.ZodTypeDef, - unknown -> = z.object({ - page: z.number().optional(), - limit: z.number().default(10), - query: z.string().optional(), -}); - -/** @internal */ -export type WorkflowControllerListWorkflowsRequest$Outbound = { - page?: number | undefined; - limit: number; - query?: string | undefined; -}; - -/** @internal */ -export const WorkflowControllerListWorkflowsRequest$outboundSchema: z.ZodType< - WorkflowControllerListWorkflowsRequest$Outbound, - z.ZodTypeDef, - WorkflowControllerListWorkflowsRequest -> = z.object({ - page: z.number().optional(), - limit: z.number().default(10), - query: z.string().optional(), -}); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowControllerListWorkflowsRequest$ { - /** @deprecated use `WorkflowControllerListWorkflowsRequest$inboundSchema` instead. */ - export const inboundSchema = - WorkflowControllerListWorkflowsRequest$inboundSchema; - /** @deprecated use `WorkflowControllerListWorkflowsRequest$outboundSchema` instead. */ - export const outboundSchema = - WorkflowControllerListWorkflowsRequest$outboundSchema; - /** @deprecated use `WorkflowControllerListWorkflowsRequest$Outbound` instead. */ - export type Outbound = WorkflowControllerListWorkflowsRequest$Outbound; -} diff --git a/src/models/operations/workflowcontrollerupdateactivestatus.ts b/src/models/operations/workflowcontrollerupdateactivestatus.ts deleted file mode 100644 index 0ed440bf..00000000 --- a/src/models/operations/workflowcontrollerupdateactivestatus.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import * as components from "../components/index.js"; - -export type WorkflowControllerUpdateActiveStatusRequest = { - workflowId: string; - changeWorkflowStatusRequestDto: components.ChangeWorkflowStatusRequestDto; -}; - -/** @internal */ -export const WorkflowControllerUpdateActiveStatusRequest$inboundSchema: - z.ZodType< - WorkflowControllerUpdateActiveStatusRequest, - z.ZodTypeDef, - unknown - > = z.object({ - workflowId: z.string(), - ChangeWorkflowStatusRequestDto: - components.ChangeWorkflowStatusRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "ChangeWorkflowStatusRequestDto": "changeWorkflowStatusRequestDto", - }); - }); - -/** @internal */ -export type WorkflowControllerUpdateActiveStatusRequest$Outbound = { - workflowId: string; - ChangeWorkflowStatusRequestDto: - components.ChangeWorkflowStatusRequestDto$Outbound; -}; - -/** @internal */ -export const WorkflowControllerUpdateActiveStatusRequest$outboundSchema: - z.ZodType< - WorkflowControllerUpdateActiveStatusRequest$Outbound, - z.ZodTypeDef, - WorkflowControllerUpdateActiveStatusRequest - > = z.object({ - workflowId: z.string(), - changeWorkflowStatusRequestDto: - components.ChangeWorkflowStatusRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - changeWorkflowStatusRequestDto: "ChangeWorkflowStatusRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowControllerUpdateActiveStatusRequest$ { - /** @deprecated use `WorkflowControllerUpdateActiveStatusRequest$inboundSchema` instead. */ - export const inboundSchema = - WorkflowControllerUpdateActiveStatusRequest$inboundSchema; - /** @deprecated use `WorkflowControllerUpdateActiveStatusRequest$outboundSchema` instead. */ - export const outboundSchema = - WorkflowControllerUpdateActiveStatusRequest$outboundSchema; - /** @deprecated use `WorkflowControllerUpdateActiveStatusRequest$Outbound` instead. */ - export type Outbound = WorkflowControllerUpdateActiveStatusRequest$Outbound; -} diff --git a/src/models/operations/workflowcontrollerupdateworkflowbyid.ts b/src/models/operations/workflowcontrollerupdateworkflowbyid.ts deleted file mode 100644 index 3cac92a4..00000000 --- a/src/models/operations/workflowcontrollerupdateworkflowbyid.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; -import { remap as remap$ } from "../../lib/primitives.js"; -import * as components from "../components/index.js"; - -export type WorkflowControllerUpdateWorkflowByIdRequest = { - workflowId: string; - updateWorkflowRequestDto: components.UpdateWorkflowRequestDto; -}; - -/** @internal */ -export const WorkflowControllerUpdateWorkflowByIdRequest$inboundSchema: - z.ZodType< - WorkflowControllerUpdateWorkflowByIdRequest, - z.ZodTypeDef, - unknown - > = z.object({ - workflowId: z.string(), - UpdateWorkflowRequestDto: components.UpdateWorkflowRequestDto$inboundSchema, - }).transform((v) => { - return remap$(v, { - "UpdateWorkflowRequestDto": "updateWorkflowRequestDto", - }); - }); - -/** @internal */ -export type WorkflowControllerUpdateWorkflowByIdRequest$Outbound = { - workflowId: string; - UpdateWorkflowRequestDto: components.UpdateWorkflowRequestDto$Outbound; -}; - -/** @internal */ -export const WorkflowControllerUpdateWorkflowByIdRequest$outboundSchema: - z.ZodType< - WorkflowControllerUpdateWorkflowByIdRequest$Outbound, - z.ZodTypeDef, - WorkflowControllerUpdateWorkflowByIdRequest - > = z.object({ - workflowId: z.string(), - updateWorkflowRequestDto: - components.UpdateWorkflowRequestDto$outboundSchema, - }).transform((v) => { - return remap$(v, { - updateWorkflowRequestDto: "UpdateWorkflowRequestDto", - }); - }); - -/** - * @internal - * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. - */ -export namespace WorkflowControllerUpdateWorkflowByIdRequest$ { - /** @deprecated use `WorkflowControllerUpdateWorkflowByIdRequest$inboundSchema` instead. */ - export const inboundSchema = - WorkflowControllerUpdateWorkflowByIdRequest$inboundSchema; - /** @deprecated use `WorkflowControllerUpdateWorkflowByIdRequest$outboundSchema` instead. */ - export const outboundSchema = - WorkflowControllerUpdateWorkflowByIdRequest$outboundSchema; - /** @deprecated use `WorkflowControllerUpdateWorkflowByIdRequest$Outbound` instead. */ - export type Outbound = WorkflowControllerUpdateWorkflowByIdRequest$Outbound; -} diff --git a/src/sdk/apikeys.ts b/src/sdk/apikeys.ts deleted file mode 100644 index 62daa88c..00000000 --- a/src/sdk/apikeys.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { environmentsApiKeysList } from "../funcs/environmentsApiKeysList.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class ApiKeys extends ClientSDK { - /** - * Get api keys - */ - async list( - options?: RequestOptions, - ): Promise< - operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse - > { - return unwrapAsync(environmentsApiKeysList( - this, - options, - )); - } -} diff --git a/src/sdk/authentication.ts b/src/sdk/authentication.ts deleted file mode 100644 index 992a9625..00000000 --- a/src/sdk/authentication.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersAuthenticationChatAccessOauth } from "../funcs/subscribersAuthenticationChatAccessOauth.js"; -import { subscribersAuthenticationChatAccessOauthCallBack } from "../funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Authentication extends ClientSDK { - /** - * Handle providers oauth redirect - */ - async chatAccessOauthCallBack( - request: operations.SubscribersControllerChatOauthCallbackRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersAuthenticationChatAccessOauthCallBack( - this, - request, - options, - )); - } - - /** - * Handle chat oauth - */ - async chatAccessOauth( - request: operations.SubscribersControllerChatAccessOauthRequest, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerChatAccessOauthResponse | undefined - > { - return unwrapAsync(subscribersAuthenticationChatAccessOauth( - this, - request, - options, - )); - } -} diff --git a/src/sdk/changes.ts b/src/sdk/changes.ts deleted file mode 100644 index 45bacac7..00000000 --- a/src/sdk/changes.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { changesApply } from "../funcs/changesApply.js"; -import { changesApplyBulk } from "../funcs/changesApplyBulk.js"; -import { changesCount } from "../funcs/changesCount.js"; -import { changesRetrieve } from "../funcs/changesRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Changes extends ClientSDK { - /** - * Apply change - */ - async apply( - changeId: string, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(changesApply( - this, - changeId, - options, - )); - } - - /** - * Apply changes - */ - async applyBulk( - request: components.BulkApplyChangeDto, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(changesApplyBulk( - this, - request, - options, - )); - } - - /** - * Get changes count - */ - async count( - options?: RequestOptions, - ): Promise { - return unwrapAsync(changesCount( - this, - options, - )); - } - - /** - * Get changes - */ - async retrieve( - request: operations.ChangesControllerGetChangesRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(changesRetrieve( - this, - request, - options, - )); - } -} diff --git a/src/sdk/credentials.ts b/src/sdk/credentials.ts deleted file mode 100644 index 2ac9307f..00000000 --- a/src/sdk/credentials.ts +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersCredentialsAppend } from "../funcs/subscribersCredentialsAppend.js"; -import { subscribersCredentialsDelete } from "../funcs/subscribersCredentialsDelete.js"; -import { subscribersCredentialsUpdate } from "../funcs/subscribersCredentialsUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Credentials extends ClientSDK { - /** - * Update subscriber credentials - * - * @remarks - * Subscriber credentials associated to the delivery methods such as slack and push tokens. - */ - async update( - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersCredentialsUpdate( - this, - updateSubscriberChannelRequestDto, - subscriberId, - options, - )); - } - - /** - * Modify subscriber credentials - * - * @remarks - * Subscriber credentials associated to the delivery methods such as slack and push tokens. - * - * This endpoint appends provided credentials and deviceTokens to the existing ones. - */ - async append( - updateSubscriberChannelRequestDto: - components.UpdateSubscriberChannelRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersCredentialsAppend( - this, - updateSubscriberChannelRequestDto, - subscriberId, - options, - )); - } - - /** - * Delete subscriber credentials by providerId - * - * @remarks - * Delete subscriber credentials such as slack and expo tokens. - */ - async delete( - subscriberId: string, - providerId: string, - options?: RequestOptions, - ): Promise< - | operations.SubscribersControllerDeleteSubscriberCredentialsResponse - | undefined - > { - return unwrapAsync(subscribersCredentialsDelete( - this, - subscriberId, - providerId, - options, - )); - } -} diff --git a/src/sdk/environments.ts b/src/sdk/environments.ts deleted file mode 100644 index ba0cf44f..00000000 --- a/src/sdk/environments.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { environmentsList } from "../funcs/environmentsList.js"; -import { environmentsRetrieve } from "../funcs/environmentsRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { ApiKeys } from "./apikeys.js"; - -export class Environments extends ClientSDK { - private _apiKeys?: ApiKeys; - get apiKeys(): ApiKeys { - return (this._apiKeys ??= new ApiKeys(this._options)); - } - - /** - * Get current environment - */ - async retrieve( - options?: RequestOptions, - ): Promise { - return unwrapAsync(environmentsRetrieve( - this, - options, - )); - } - - /** - * Get environments - */ - async list( - options?: RequestOptions, - ): Promise { - return unwrapAsync(environmentsList( - this, - options, - )); - } -} diff --git a/src/sdk/executiondetails.ts b/src/sdk/executiondetails.ts deleted file mode 100644 index ab136faa..00000000 --- a/src/sdk/executiondetails.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { executionDetailsRetrieve } from "../funcs/executionDetailsRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class ExecutionDetails extends ClientSDK { - /** - * Get execution details - */ - async retrieve( - notificationId: string, - subscriberId: string, - options?: RequestOptions, - ): Promise< - operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse - > { - return unwrapAsync(executionDetailsRetrieve( - this, - notificationId, - subscriberId, - options, - )); - } -} diff --git a/src/sdk/feeds.ts b/src/sdk/feeds.ts deleted file mode 100644 index 39ceb000..00000000 --- a/src/sdk/feeds.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { feedsCreate } from "../funcs/feedsCreate.js"; -import { feedsDelete } from "../funcs/feedsDelete.js"; -import { feedsRetrieve } from "../funcs/feedsRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Feeds extends ClientSDK { - /** - * Create feed - */ - async create( - request: components.CreateFeedRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(feedsCreate( - this, - request, - options, - )); - } - - /** - * Delete feed - */ - async delete( - feedId: string, - options?: RequestOptions, - ): Promise> { - return unwrapAsync(feedsDelete( - this, - feedId, - options, - )); - } - - /** - * Get feeds - */ - async retrieve( - options?: RequestOptions, - ): Promise> { - return unwrapAsync(feedsRetrieve( - this, - options, - )); - } -} diff --git a/src/sdk/index.ts b/src/sdk/index.ts deleted file mode 100644 index ecac2264..00000000 --- a/src/sdk/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export * from "./sdk.js"; diff --git a/src/sdk/integrations.ts b/src/sdk/integrations.ts deleted file mode 100644 index 11dfece3..00000000 --- a/src/sdk/integrations.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { integrationsCreate } from "../funcs/integrationsCreate.js"; -import { integrationsDelete } from "../funcs/integrationsDelete.js"; -import { integrationsList } from "../funcs/integrationsList.js"; -import { integrationsListActive } from "../funcs/integrationsListActive.js"; -import { integrationsSetAsPrimary } from "../funcs/integrationsSetAsPrimary.js"; -import { integrationsUpdate } from "../funcs/integrationsUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { Webhooks } from "./webhooks.js"; - -export class Integrations extends ClientSDK { - private _webhooks?: Webhooks; - get webhooks(): Webhooks { - return (this._webhooks ??= new Webhooks(this._options)); - } - - /** - * Get integrations - * - * @remarks - * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - */ - async list( - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsList( - this, - options, - )); - } - - /** - * Create integration - * - * @remarks - * Create an integration for the current environment the user is based on the API key provided - */ - async create( - request: components.CreateIntegrationRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsCreate( - this, - request, - options, - )); - } - - /** - * Get active integrations - * - * @remarks - * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - */ - async listActive( - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsListActive( - this, - options, - )); - } - - /** - * Update integration - */ - async update( - updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, - integrationId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsUpdate( - this, - updateIntegrationRequestDto, - integrationId, - options, - )); - } - - /** - * Delete integration - */ - async delete( - integrationId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsDelete( - this, - integrationId, - options, - )); - } - - /** - * Set integration as primary - */ - async setAsPrimary( - integrationId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsSetAsPrimary( - this, - integrationId, - options, - )); - } -} diff --git a/src/sdk/layouts.ts b/src/sdk/layouts.ts deleted file mode 100644 index b50b418a..00000000 --- a/src/sdk/layouts.ts +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { layoutsCreate } from "../funcs/layoutsCreate.js"; -import { layoutsDelete } from "../funcs/layoutsDelete.js"; -import { layoutsList } from "../funcs/layoutsList.js"; -import { layoutsRetrieve } from "../funcs/layoutsRetrieve.js"; -import { layoutsSetAsDefault } from "../funcs/layoutsSetAsDefault.js"; -import { layoutsUpdate } from "../funcs/layoutsUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Layouts extends ClientSDK { - /** - * Layout creation - * - * @remarks - * Create a layout - */ - async create( - options?: RequestOptions, - ): Promise { - return unwrapAsync(layoutsCreate( - this, - options, - )); - } - - /** - * Delete layout - * - * @remarks - * Execute a soft delete of a layout given a certain ID. - */ - async delete( - layoutId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(layoutsDelete( - this, - layoutId, - options, - )); - } - - /** - * Filter layouts - * - * @remarks - * Returns a list of layouts that can be paginated using the `page` query parameter and filtered by the environment where it is executed from the organization the user belongs to. - */ - async list( - request: operations.LayoutsControllerListLayoutsRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(layoutsList( - this, - request, - options, - )); - } - - /** - * Get layout - * - * @remarks - * Get a layout by its ID - */ - async retrieve( - layoutId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(layoutsRetrieve( - this, - layoutId, - options, - )); - } - - /** - * Set default layout - * - * @remarks - * Sets the default layout for the environment and updates to non default to the existing default layout (if any). - */ - async setAsDefault( - layoutId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(layoutsSetAsDefault( - this, - layoutId, - options, - )); - } - - /** - * Update a layout - * - * @remarks - * Update the name, content and variables of a layout. Also change it to be default or no. - */ - async update( - layoutId: string, - updateLayoutRequestDto: components.UpdateLayoutRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(layoutsUpdate( - this, - layoutId, - updateLayoutRequestDto, - options, - )); - } -} diff --git a/src/sdk/messages.ts b/src/sdk/messages.ts deleted file mode 100644 index bc23e83e..00000000 --- a/src/sdk/messages.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { messagesDelete } from "../funcs/messagesDelete.js"; -import { messagesDeleteByTransactionId } from "../funcs/messagesDeleteByTransactionId.js"; -import { messagesRetrieve } from "../funcs/messagesRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Messages extends ClientSDK { - /** - * Get messages - * - * @remarks - * Returns a list of messages, could paginate using the `page` query parameter - */ - async retrieve( - request: operations.MessagesControllerGetMessagesRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(messagesRetrieve( - this, - request, - options, - )); - } - - /** - * Delete message - * - * @remarks - * Deletes a message entity from the Novu platform - */ - async delete( - messageId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(messagesDelete( - this, - messageId, - options, - )); - } - - /** - * Delete messages by transactionId - * - * @remarks - * Deletes messages entity from the Novu platform using TransactionId of message - */ - async deleteByTransactionId( - transactionId: string, - channel?: operations.QueryParamChannel | undefined, - options?: RequestOptions, - ): Promise< - | operations.MessagesControllerDeleteMessagesByTransactionIdResponse - | undefined - > { - return unwrapAsync(messagesDeleteByTransactionId( - this, - transactionId, - channel, - options, - )); - } -} diff --git a/src/sdk/notifications.ts b/src/sdk/notifications.ts deleted file mode 100644 index bbfe0d85..00000000 --- a/src/sdk/notifications.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { notificationsList } from "../funcs/notificationsList.js"; -import { notificationsRetrieve } from "../funcs/notificationsRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { Stats } from "./stats.js"; - -export class Notifications extends ClientSDK { - private _stats?: Stats; - get stats(): Stats { - return (this._stats ??= new Stats(this._options)); - } - - /** - * Get notifications - */ - async list( - request: operations.NotificationsControllerListNotificationsRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsList( - this, - request, - options, - )); - } - - /** - * Get notification - */ - async retrieve( - notificationId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsRetrieve( - this, - notificationId, - options, - )); - } -} diff --git a/src/sdk/novumessages.ts b/src/sdk/novumessages.ts deleted file mode 100644 index b8eb5333..00000000 --- a/src/sdk/novumessages.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.js"; -import { subscribersMessagesMarkAllAs } from "../funcs/subscribersMessagesMarkAllAs.js"; -import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class NovuMessages extends ClientSDK { - /** - * Mark a subscriber messages as seen, read, unseen or unread - */ - async markAllAs( - messageMarkAsRequestDto: components.MessageMarkAsRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersMessagesMarkAllAs( - this, - messageMarkAsRequestDto, - subscriberId, - options, - )); - } - - /** - * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - */ - async markAll( - markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersMessagesMarkAll( - this, - markAllMessageAsRequestDto, - subscriberId, - options, - )); - } - - /** - * Mark message action as seen - */ - async updateAsSeen( - request: operations.SubscribersControllerMarkActionAsSeenRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersMessagesUpdateAsSeen( - this, - request, - options, - )); - } -} diff --git a/src/sdk/novunotifications.ts b/src/sdk/novunotifications.ts deleted file mode 100644 index 32e3be09..00000000 --- a/src/sdk/novunotifications.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersNotificationsRetrieve } from "../funcs/subscribersNotificationsRetrieve.js"; -import { subscribersNotificationsUnseenCount } from "../funcs/subscribersNotificationsUnseenCount.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class NovuNotifications extends ClientSDK { - /** - * Get in-app notification feed for a particular subscriber - */ - async retrieve( - request: operations.SubscribersControllerGetNotificationsFeedRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersNotificationsRetrieve( - this, - request, - options, - )); - } - - /** - * Get the unseen in-app notifications count for subscribers feed - */ - async unseenCount( - request: operations.SubscribersControllerGetUnseenCountRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersNotificationsUnseenCount( - this, - request, - options, - )); - } -} diff --git a/src/sdk/novusubscribers.ts b/src/sdk/novusubscribers.ts deleted file mode 100644 index b78fb169..00000000 --- a/src/sdk/novusubscribers.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { topicsSubscribersAssign } from "../funcs/topicsSubscribersAssign.js"; -import { topicsSubscribersDelete } from "../funcs/topicsSubscribersDelete.js"; -import { topicsSubscribersRetrieve } from "../funcs/topicsSubscribersRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class NovuSubscribers extends ClientSDK { - /** - * Subscribers addition - * - * @remarks - * Add subscribers to a topic by key - */ - async assign( - addSubscribersRequestDto: components.AddSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersAssign( - this, - addSubscribersRequestDto, - topicKey, - options, - )); - } - - /** - * Check topic subscriber - * - * @remarks - * Check if a subscriber belongs to a certain topic - */ - async retrieve( - externalSubscriberId: string, - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersRetrieve( - this, - externalSubscriberId, - topicKey, - options, - )); - } - - /** - * Subscribers removal - * - * @remarks - * Remove subscribers from a topic - */ - async delete( - removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsSubscribersDelete( - this, - removeSubscribersRequestDto, - topicKey, - options, - )); - } -} diff --git a/src/sdk/organizations.ts b/src/sdk/organizations.ts deleted file mode 100644 index 2670269d..00000000 --- a/src/sdk/organizations.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { organizationsEEOrganizationControllerRenameOrganization } from "../funcs/organizationsEEOrganizationControllerRenameOrganization.js"; -import { organizationsRetrieve } from "../funcs/organizationsRetrieve.js"; -import { organizationsUpdate } from "../funcs/organizationsUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Organizations extends ClientSDK { - /** - * Rename organization name - */ - async eeOrganizationControllerRenameOrganization( - request: components.RenameOrganizationDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(organizationsEEOrganizationControllerRenameOrganization( - this, - request, - options, - )); - } - - /** - * Fetch current organization details - */ - async retrieve( - options?: RequestOptions, - ): Promise { - return unwrapAsync(organizationsRetrieve( - this, - options, - )); - } - - /** - * Update organization branding details - */ - async update( - request: components.UpdateBrandingDetailsDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(organizationsUpdate( - this, - request, - options, - )); - } -} diff --git a/src/sdk/preferences.ts b/src/sdk/preferences.ts deleted file mode 100644 index 1b089387..00000000 --- a/src/sdk/preferences.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersPreferencesList } from "../funcs/subscribersPreferencesList.js"; -import { subscribersPreferencesRetrieveByLevel } from "../funcs/subscribersPreferencesRetrieveByLevel.js"; -import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.js"; -import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Preferences extends ClientSDK { - /** - * Get subscriber preferences - */ - async list( - subscriberId: string, - includeInactiveChannels?: boolean | undefined, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerListSubscriberPreferencesResponse - > { - return unwrapAsync(subscribersPreferencesList( - this, - subscriberId, - includeInactiveChannels, - options, - )); - } - - /** - * Update subscriber global preferences - */ - async updateGlobal( - updateSubscriberGlobalPreferencesRequestDto: - components.UpdateSubscriberGlobalPreferencesRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse - > { - return unwrapAsync(subscribersPreferencesUpdateGlobal( - this, - updateSubscriberGlobalPreferencesRequestDto, - subscriberId, - options, - )); - } - - /** - * Get subscriber preferences by level - */ - async retrieveByLevel( - request: - operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse - > { - return unwrapAsync(subscribersPreferencesRetrieveByLevel( - this, - request, - options, - )); - } - - /** - * Update subscriber preference - */ - async update( - request: operations.SubscribersControllerUpdateSubscriberPreferenceRequest, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerUpdateSubscriberPreferenceResponse - > { - return unwrapAsync(subscribersPreferencesUpdate( - this, - request, - options, - )); - } -} diff --git a/src/sdk/properties.ts b/src/sdk/properties.ts deleted file mode 100644 index f2e4bed0..00000000 --- a/src/sdk/properties.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersPropertiesUpdateOnlineFlag } from "../funcs/subscribersPropertiesUpdateOnlineFlag.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Properties extends ClientSDK { - /** - * Update subscriber online status - * - * @remarks - * Used to update the subscriber isOnline flag. - */ - async updateOnlineFlag( - updateSubscriberOnlineFlagRequestDto: - components.UpdateSubscriberOnlineFlagRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse - > { - return unwrapAsync(subscribersPropertiesUpdateOnlineFlag( - this, - updateSubscriberOnlineFlagRequestDto, - subscriberId, - options, - )); - } -} diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts deleted file mode 100644 index 91eb14be..00000000 --- a/src/sdk/sdk.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { cancelByTransactionId } from "../funcs/cancelByTransactionId.js"; -import { trigger } from "../funcs/trigger.js"; -import { triggerBroadcast } from "../funcs/triggerBroadcast.js"; -import { triggerBulk } from "../funcs/triggerBulk.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { Environments } from "./environments.js"; -import { ExecutionDetails } from "./executiondetails.js"; -import { Integrations } from "./integrations.js"; -import { Messages } from "./messages.js"; -import { Notifications } from "./notifications.js"; -import { Subscribers } from "./subscribers.js"; -import { Topics } from "./topics.js"; -import { WorkflowGroups } from "./workflowgroups.js"; - -export class Novu extends ClientSDK { - private _environments?: Environments; - get environments(): Environments { - return (this._environments ??= new Environments(this._options)); - } - - private _executionDetails?: ExecutionDetails; - get executionDetails(): ExecutionDetails { - return (this._executionDetails ??= new ExecutionDetails(this._options)); - } - - private _notifications?: Notifications; - get notifications(): Notifications { - return (this._notifications ??= new Notifications(this._options)); - } - - private _workflowGroups?: WorkflowGroups; - get workflowGroups(): WorkflowGroups { - return (this._workflowGroups ??= new WorkflowGroups(this._options)); - } - - private _integrations?: Integrations; - get integrations(): Integrations { - return (this._integrations ??= new Integrations(this._options)); - } - - private _subscribers?: Subscribers; - get subscribers(): Subscribers { - return (this._subscribers ??= new Subscribers(this._options)); - } - - private _messages?: Messages; - get messages(): Messages { - return (this._messages ??= new Messages(this._options)); - } - - private _topics?: Topics; - get topics(): Topics { - return (this._topics ??= new Topics(this._options)); - } - - /** - * Trigger event - * - * @remarks - * - * Trigger event is the main (and only) way to send notifications to subscribers. - * The trigger identifier is used to match the particular workflow associated with it. - * Additional information can be passed according the body interface below. - */ - async trigger( - request: components.TriggerEventRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(trigger( - this, - request, - options, - )); - } - - /** - * Bulk trigger event - * - * @remarks - * - * Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - * The bulk API is limited to 100 events per request. - */ - async triggerBulk( - request: components.BulkTriggerEventDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(triggerBulk( - this, - request, - options, - )); - } - - /** - * Broadcast event to all - * - * @remarks - * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - * - * In the future could be used to trigger events to a subset of subscribers based on defined filters. - */ - async triggerBroadcast( - request: components.TriggerEventToAllRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(triggerBroadcast( - this, - request, - options, - )); - } - - /** - * Cancel triggered event - * - * @remarks - * - * Using a previously generated transactionId during the event trigger, - * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - */ - async cancelByTransactionId( - transactionId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(cancelByTransactionId( - this, - transactionId, - options, - )); - } -} diff --git a/src/sdk/stats.ts b/src/sdk/stats.ts deleted file mode 100644 index dd2e3d8e..00000000 --- a/src/sdk/stats.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { notificationsStatsGraph } from "../funcs/notificationsStatsGraph.js"; -import { notificationsStatsRetrieve } from "../funcs/notificationsStatsRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Stats extends ClientSDK { - /** - * Get notification statistics - */ - async retrieve( - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsStatsRetrieve( - this, - options, - )); - } - - /** - * Get notification graph statistics - */ - async graph( - days?: number | undefined, - options?: RequestOptions, - ): Promise { - return unwrapAsync(notificationsStatsGraph( - this, - days, - options, - )); - } -} diff --git a/src/sdk/status.ts b/src/sdk/status.ts deleted file mode 100644 index 80730e30..00000000 --- a/src/sdk/status.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { workflowsStatusUpdate } from "../funcs/workflowsStatusUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Status extends ClientSDK { - /** - * Update workflow status - * - * @remarks - * Workflow was previously named notification template - */ - async update( - workflowId: string, - changeWorkflowStatusRequestDto: components.ChangeWorkflowStatusRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowsStatusUpdate( - this, - workflowId, - changeWorkflowStatusRequestDto, - options, - )); - } -} diff --git a/src/sdk/subscribers.ts b/src/sdk/subscribers.ts deleted file mode 100644 index c0865190..00000000 --- a/src/sdk/subscribers.ts +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { subscribersCreate } from "../funcs/subscribersCreate.js"; -import { subscribersCreateBulk } from "../funcs/subscribersCreateBulk.js"; -import { subscribersDelete } from "../funcs/subscribersDelete.js"; -import { subscribersList } from "../funcs/subscribersList.js"; -import { subscribersRetrieve } from "../funcs/subscribersRetrieve.js"; -import { subscribersUpdate } from "../funcs/subscribersUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { PageIterator, unwrapResultIterator } from "../types/operations.js"; -import { Authentication } from "./authentication.js"; -import { Credentials } from "./credentials.js"; -import { NovuMessages } from "./novumessages.js"; -import { NovuNotifications } from "./novunotifications.js"; -import { Preferences } from "./preferences.js"; -import { Properties } from "./properties.js"; - -export class Subscribers extends ClientSDK { - private _credentials?: Credentials; - get credentials(): Credentials { - return (this._credentials ??= new Credentials(this._options)); - } - - private _properties?: Properties; - get properties(): Properties { - return (this._properties ??= new Properties(this._options)); - } - - private _preferences?: Preferences; - get preferences(): Preferences { - return (this._preferences ??= new Preferences(this._options)); - } - - private _notifications?: NovuNotifications; - get notifications(): NovuNotifications { - return (this._notifications ??= new NovuNotifications(this._options)); - } - - private _messages?: NovuMessages; - get messages(): NovuMessages { - return (this._messages ??= new NovuMessages(this._options)); - } - - private _authentication?: Authentication; - get authentication(): Authentication { - return (this._authentication ??= new Authentication(this._options)); - } - - /** - * Get subscribers - * - * @remarks - * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - */ - async list( - page?: number | undefined, - limit?: number | undefined, - options?: RequestOptions, - ): Promise< - PageIterator - > { - return unwrapResultIterator(subscribersList( - this, - page, - limit, - options, - )); - } - - /** - * Create subscriber - * - * @remarks - * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - */ - async create( - request: components.CreateSubscriberRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersCreate( - this, - request, - options, - )); - } - - /** - * Get subscriber - * - * @remarks - * Get subscriber by your internal id used to identify the subscriber - */ - async retrieve( - subscriberId: string, - includeTopics?: string | undefined, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersRetrieve( - this, - subscriberId, - includeTopics, - options, - )); - } - - /** - * Update subscriber - * - * @remarks - * Used to update the subscriber entity with new information - */ - async update( - updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersUpdate( - this, - updateSubscriberRequestDto, - subscriberId, - options, - )); - } - - /** - * Delete subscriber - * - * @remarks - * Deletes a subscriber entity from the Novu platform - */ - async delete( - subscriberId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(subscribersDelete( - this, - subscriberId, - options, - )); - } - - /** - * Bulk create subscribers - * - * @remarks - * - * Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - * The bulk API is limited to 500 subscribers per request. - */ - async createBulk( - request: components.BulkSubscriberCreateDto, - options?: RequestOptions, - ): Promise< - operations.SubscribersControllerBulkCreateSubscribersResponse | undefined - > { - return unwrapAsync(subscribersCreateBulk( - this, - request, - options, - )); - } -} diff --git a/src/sdk/tenants.ts b/src/sdk/tenants.ts deleted file mode 100644 index b2f070f6..00000000 --- a/src/sdk/tenants.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { tenantsCreate } from "../funcs/tenantsCreate.js"; -import { tenantsDelete } from "../funcs/tenantsDelete.js"; -import { tenantsList } from "../funcs/tenantsList.js"; -import { tenantsRetrieve } from "../funcs/tenantsRetrieve.js"; -import { tenantsUpdate } from "../funcs/tenantsUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { PageIterator, unwrapResultIterator } from "../types/operations.js"; - -export class Tenants extends ClientSDK { - /** - * Create tenant - * - * @remarks - * Create tenant under the current environment Tenants is not supported in code first version of the API. - */ - async create( - request: components.CreateTenantRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(tenantsCreate( - this, - request, - options, - )); - } - - /** - * Delete tenant - * - * @remarks - * Deletes a tenant entity from the Novu platform. Tenants is not supported in code first version of the API. - */ - async delete( - identifier: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(tenantsDelete( - this, - identifier, - options, - )); - } - - /** - * Get tenants - * - * @remarks - * Returns a list of tenants, could paginated using the `page` and `limit` query parameter. Tenants is not supported in code first version of the API. - */ - async list( - page?: number | undefined, - limit?: number | undefined, - options?: RequestOptions, - ): Promise> { - return unwrapResultIterator(tenantsList( - this, - page, - limit, - options, - )); - } - - /** - * Get tenant - * - * @remarks - * Get tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API. - */ - async retrieve( - identifier: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(tenantsRetrieve( - this, - identifier, - options, - )); - } - - /** - * Update tenant - * - * @remarks - * Update tenant by your internal id used to identify the tenant Tenants is not supported in code first version of the API. - */ - async update( - identifier: string, - updateTenantRequestDto: components.UpdateTenantRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(tenantsUpdate( - this, - identifier, - updateTenantRequestDto, - options, - )); - } -} diff --git a/src/sdk/topics.ts b/src/sdk/topics.ts deleted file mode 100644 index 1c6c17c3..00000000 --- a/src/sdk/topics.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { topicsCreate } from "../funcs/topicsCreate.js"; -import { topicsDelete } from "../funcs/topicsDelete.js"; -import { topicsList } from "../funcs/topicsList.js"; -import { topicsRename } from "../funcs/topicsRename.js"; -import { topicsRetrieve } from "../funcs/topicsRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { NovuSubscribers } from "./novusubscribers.js"; - -export class Topics extends ClientSDK { - private _subscribers?: NovuSubscribers; - get subscribers(): NovuSubscribers { - return (this._subscribers ??= new NovuSubscribers(this._options)); - } - - /** - * Topic creation - * - * @remarks - * Create a topic - */ - async create( - request: components.CreateTopicRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsCreate( - this, - request, - options, - )); - } - - /** - * Filter topics - * - * @remarks - * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - */ - async list( - request: operations.TopicsControllerListTopicsRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsList( - this, - request, - options, - )); - } - - /** - * Delete topic - * - * @remarks - * Delete a topic by its topic key if it has no subscribers - */ - async delete( - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsDelete( - this, - topicKey, - options, - )); - } - - /** - * Get topic - * - * @remarks - * Get a topic by its topic key - */ - async retrieve( - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsRetrieve( - this, - topicKey, - options, - )); - } - - /** - * Rename a topic - * - * @remarks - * Rename a topic by providing a new name - */ - async rename( - renameTopicRequestDto: components.RenameTopicRequestDto, - topicKey: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(topicsRename( - this, - renameTopicRequestDto, - topicKey, - options, - )); - } -} diff --git a/src/sdk/variables.ts b/src/sdk/variables.ts deleted file mode 100644 index 019a3b88..00000000 --- a/src/sdk/variables.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { workflowsVariablesRetrieve } from "../funcs/workflowsVariablesRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Variables extends ClientSDK { - /** - * Get available variables - * - * @remarks - * Get the variables that can be used in the workflow - */ - async retrieve( - options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowsVariablesRetrieve( - this, - options, - )); - } -} diff --git a/src/sdk/webhooks.ts b/src/sdk/webhooks.ts deleted file mode 100644 index 563aae20..00000000 --- a/src/sdk/webhooks.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { integrationsWebhooksRetrieve } from "../funcs/integrationsWebhooksRetrieve.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class Webhooks extends ClientSDK { - /** - * Get webhook support status for provider - * - * @remarks - * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - */ - async retrieve( - providerOrIntegrationId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(integrationsWebhooksRetrieve( - this, - providerOrIntegrationId, - options, - )); - } -} diff --git a/src/sdk/workflowgroups.ts b/src/sdk/workflowgroups.ts deleted file mode 100644 index 6bb5d9c1..00000000 --- a/src/sdk/workflowgroups.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { workflowGroupsCreate } from "../funcs/workflowGroupsCreate.js"; -import { workflowGroupsDelete } from "../funcs/workflowGroupsDelete.js"; -import { workflowGroupsList } from "../funcs/workflowGroupsList.js"; -import { workflowGroupsRetrieve } from "../funcs/workflowGroupsRetrieve.js"; -import { workflowGroupsUpdate } from "../funcs/workflowGroupsUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; - -export class WorkflowGroups extends ClientSDK { - /** - * Create workflow group - * - * @remarks - * workflow group was previously named notification group - */ - async create( - request: components.CreateNotificationGroupRequestDto, - options?: RequestOptions, - ): Promise< - operations.NotificationGroupsControllerCreateNotificationGroupResponse - > { - return unwrapAsync(workflowGroupsCreate( - this, - request, - options, - )); - } - - /** - * Get workflow groups - * - * @remarks - * workflow group was previously named notification group - */ - async list( - options?: RequestOptions, - ): Promise< - operations.NotificationGroupsControllerListNotificationGroupsResponse - > { - return unwrapAsync(workflowGroupsList( - this, - options, - )); - } - - /** - * Get workflow group - * - * @remarks - * workflow group was previously named notification group - */ - async retrieve( - id: string, - options?: RequestOptions, - ): Promise< - operations.NotificationGroupsControllerGetNotificationGroupResponse - > { - return unwrapAsync(workflowGroupsRetrieve( - this, - id, - options, - )); - } - - /** - * Update workflow group - * - * @remarks - * workflow group was previously named notification group - */ - async update( - createNotificationGroupRequestDto: - components.CreateNotificationGroupRequestDto, - id: string, - options?: RequestOptions, - ): Promise< - operations.NotificationGroupsControllerUpdateNotificationGroupResponse - > { - return unwrapAsync(workflowGroupsUpdate( - this, - createNotificationGroupRequestDto, - id, - options, - )); - } - - /** - * Delete workflow group - * - * @remarks - * workflow group was previously named notification group - */ - async delete( - id: string, - options?: RequestOptions, - ): Promise< - operations.NotificationGroupsControllerDeleteNotificationGroupResponse - > { - return unwrapAsync(workflowGroupsDelete( - this, - id, - options, - )); - } -} diff --git a/src/sdk/workflows.ts b/src/sdk/workflows.ts deleted file mode 100644 index fd9fc629..00000000 --- a/src/sdk/workflows.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { workflowsCreate } from "../funcs/workflowsCreate.js"; -import { workflowsDelete } from "../funcs/workflowsDelete.js"; -import { workflowsList } from "../funcs/workflowsList.js"; -import { workflowsRetrieve } from "../funcs/workflowsRetrieve.js"; -import { workflowsUpdate } from "../funcs/workflowsUpdate.js"; -import { ClientSDK, RequestOptions } from "../lib/sdks.js"; -import * as components from "../models/components/index.js"; -import * as operations from "../models/operations/index.js"; -import { unwrapAsync } from "../types/fp.js"; -import { Status } from "./status.js"; -import { Variables } from "./variables.js"; - -export class Workflows extends ClientSDK { - private _variables?: Variables; - get variables(): Variables { - return (this._variables ??= new Variables(this.options$)); - } - - private _status?: Status; - get status(): Status { - return (this._status ??= new Status(this.options$)); - } - - /** - * Create workflow - * - * @remarks - * Workflow was previously named notification template - */ - async create( - request: components.CreateWorkflowRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowsCreate( - this, - request, - options, - )); - } - - /** - * Delete workflow - * - * @remarks - * Workflow was previously named notification template - */ - async delete( - workflowId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowsDelete( - this, - workflowId, - options, - )); - } - - /** - * Get workflows - * - * @remarks - * Workflows were previously named notification templates - */ - async list( - request: operations.WorkflowControllerListWorkflowsRequest, - options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowsList( - this, - request, - options, - )); - } - - /** - * Get workflow - * - * @remarks - * Workflow was previously named notification template - */ - async retrieve( - workflowId: string, - options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowsRetrieve( - this, - workflowId, - options, - )); - } - - /** - * Update workflow - * - * @remarks - * Workflow was previously named notification template - */ - async update( - workflowId: string, - updateWorkflowRequestDto: components.UpdateWorkflowRequestDto, - options?: RequestOptions, - ): Promise { - return unwrapAsync(workflowsUpdate( - this, - workflowId, - updateWorkflowRequestDto, - options, - )); - } -} diff --git a/src/types/blobs.ts b/src/types/blobs.ts deleted file mode 100644 index 4ce84602..00000000 --- a/src/types/blobs.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export const blobLikeSchema: z.ZodType = - z.custom(isBlobLike, { - message: "expected a Blob, File or Blob-like object", - fatal: true, - }); - -export function isBlobLike(val: unknown): val is Blob { - if (val instanceof Blob) { - return true; - } - - if (typeof val !== "object" || val == null || !(Symbol.toStringTag in val)) { - return false; - } - - const name = val[Symbol.toStringTag]; - if (typeof name !== "string") { - return false; - } - if (name !== "Blob" && name !== "File") { - return false; - } - - return "stream" in val && typeof val.stream === "function"; -} diff --git a/src/types/constdatetime.ts b/src/types/constdatetime.ts deleted file mode 100644 index c0a4409c..00000000 --- a/src/types/constdatetime.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import * as z from "zod"; - -export function constDateTime( - val: string, -): z.ZodType { - return z.custom((v) => { - return ( - typeof v === "string" && new Date(v).getTime() === new Date(val).getTime() - ); - }, `Value must be equivelant to ${val}`); -} diff --git a/src/types/enums.ts b/src/types/enums.ts deleted file mode 100644 index 6fb6d910..00000000 --- a/src/types/enums.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -declare const __brand: unique symbol; -export type Unrecognized = T & { [__brand]: "unrecognized" }; - -export function catchUnrecognizedEnum(value: T): Unrecognized { - return value as Unrecognized; -} - -type Prettify = { [K in keyof T]: T[K] } & {}; -export type ClosedEnum = T[keyof T]; -export type OpenEnum = - | Prettify - | Unrecognized; diff --git a/src/types/fp.ts b/src/types/fp.ts deleted file mode 100644 index ccbe51ea..00000000 --- a/src/types/fp.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -/** - * A monad that captures the result of a function call or an error if it was not - * successful. Railway programming, enabled by this type, can be a nicer - * alternative to traditional exception throwing because it allows functions to - * declare all _known_ errors with static types and then check for them - * exhaustively in application code. Thrown exception have a type of `unknown` - * and break out of regular control flow of programs making them harder to - * inspect and more verbose work with due to try-catch blocks. - */ -export type Result = - | { ok: true; value: T; error?: never } - | { ok: false; value?: never; error: E }; - -export function OK(value: V): Result { - return { ok: true, value }; -} - -export function ERR(error: E): Result { - return { ok: false, error }; -} - -/** - * unwrap is a convenience function for extracting a value from a result or - * throwing if there was an error. - */ -export function unwrap(r: Result): T { - if (!r.ok) { - throw r.error; - } - return r.value; -} - -/** - * unwrapAsync is a convenience function for resolving a value from a Promise - * of a result or rejecting if an error occurred. - */ -export async function unwrapAsync( - pr: Promise>, -): Promise { - const r = await pr; - if (!r.ok) { - throw r.error; - } - - return r.value; -} diff --git a/src/types/index.ts b/src/types/index.ts deleted file mode 100644 index e124e817..00000000 --- a/src/types/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export { blobLikeSchema, isBlobLike } from "./blobs.js"; -export { catchUnrecognizedEnum } from "./enums.js"; -export type { ClosedEnum, OpenEnum, Unrecognized } from "./enums.js"; -export type { Result } from "./fp.js"; -export type { PageIterator, Paginator } from "./operations.js"; -export { createPageIterator } from "./operations.js"; -export { RFCDate } from "./rfcdate.js"; diff --git a/src/types/operations.ts b/src/types/operations.ts deleted file mode 100644 index 0952f6f4..00000000 --- a/src/types/operations.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import { Result } from "./fp.js"; - -export type Paginator = () => Promise }> | null; - -export type PageIterator = V & { - next: Paginator; - [Symbol.asyncIterator]: () => AsyncIterableIterator; -}; - -export function createPageIterator( - page: V & { next: Paginator }, - halt: (v: V) => boolean, -): { - [Symbol.asyncIterator]: () => AsyncIterableIterator; -} { - return { - [Symbol.asyncIterator]: async function* paginator() { - yield page; - if (halt(page)) { - return; - } - - let p: typeof page | null = page; - for (p = await p.next(); p != null; p = await p.next()) { - yield p; - if (halt(p)) { - return; - } - } - }, - }; -} - -/** - * This utility create a special iterator that yields a single value and - * terminates. It is useful in paginated SDK functions that have early return - * paths when things go wrong. - */ -export function haltIterator(v: V): PageIterator { - return { - ...v, - next: () => null, - [Symbol.asyncIterator]: async function* paginator() { - yield v; - }, - }; -} - -/** - * Converts an async iterator of `Result` into an async iterator of `V`. - * When error results occur, the underlying error value is thrown. - */ -export async function unwrapResultIterator( - iteratorPromise: Promise>>, -): Promise> { - const resultIter = await iteratorPromise; - - if (!resultIter.ok) { - throw resultIter.error; - } - - return { - ...resultIter.value, - next: unwrapPaginator(resultIter.next), - [Symbol.asyncIterator]: async function* paginator() { - for await (const page of resultIter) { - if (!page.ok) { - throw page.error; - } - yield page.value; - } - }, - }; -} - -function unwrapPaginator( - paginator: Paginator>, -): Paginator { - return () => { - const nextResult = paginator(); - if (nextResult == null) { - return null; - } - return nextResult.then((res) => { - if (!res.ok) { - throw res.error; - } - const out = { - ...res.value, - next: unwrapPaginator(res.next), - }; - return out; - }); - }; -} diff --git a/src/types/rfcdate.ts b/src/types/rfcdate.ts deleted file mode 100644 index c79b3f53..00000000 --- a/src/types/rfcdate.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -const dateRE = /^\d{4}-\d{2}-\d{2}$/; - -export class RFCDate { - private serialized: string; - - /** - * Creates a new RFCDate instance using today's date. - */ - static today(): RFCDate { - return new RFCDate(new Date()); - } - - /** - * Creates a new RFCDate instance using the provided input. - * If a string is used then in must be in the format YYYY-MM-DD. - * - * @param date A Date object or a date string in YYYY-MM-DD format - * @example - * new RFCDate("2022-01-01") - * @example - * new RFCDate(new Date()) - */ - constructor(date: Date | string) { - if (typeof date === "string" && !dateRE.test(date)) { - throw new RangeError( - "RFCDate: date strings must be in the format YYYY-MM-DD: " + date, - ); - } - - const value = new Date(date); - if (isNaN(+value)) { - throw new RangeError("RFCDate: invalid date provided: " + date); - } - - this.serialized = value.toISOString().slice(0, "YYYY-MM-DD".length); - if (!dateRE.test(this.serialized)) { - throw new TypeError( - `RFCDate: failed to build valid date with given value: ${date} serialized to ${this.serialized}`, - ); - } - } - - toJSON(): string { - return this.toString(); - } - - toString(): string { - return this.serialized; - } -} diff --git a/src/types/streams.ts b/src/types/streams.ts deleted file mode 100644 index a0163e7a..00000000 --- a/src/types/streams.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -export function isReadableStream( - val: unknown, -): val is ReadableStream { - if (typeof val !== "object" || val === null) { - return false; - } - - // Check for the presence of methods specific to ReadableStream - const stream = val as ReadableStream; - - // ReadableStream has methods like getReader, cancel, and tee - return ( - typeof stream.getReader === "function" && - typeof stream.cancel === "function" && - typeof stream.tee === "function" - ); -} From 8c775105c320797bee54d3a07e740cf3411ccf93 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:30:44 +0100 Subject: [PATCH 10/12] relaunch --- .speakeasy/gen.lock | 4 +- .speakeasy/temp/applied_vJmsxPMnEh.yaml | 8807 ------------------- .speakeasy/temp/downloaded_RHwSKJmVgU.yaml | 9166 -------------------- .speakeasy/temp/overlay_mYUHRoodFu.yaml | 8807 ------------------- .speakeasy/workflow.lock | 35 +- jsr.json | 2 +- package-lock.json | 4 +- package.json | 2 +- sources/code-samples.yaml | 286 +- 9 files changed, 73 insertions(+), 27040 deletions(-) delete mode 100644 .speakeasy/temp/applied_vJmsxPMnEh.yaml delete mode 100644 .speakeasy/temp/downloaded_RHwSKJmVgU.yaml delete mode 100644 .speakeasy/temp/overlay_mYUHRoodFu.yaml diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 01a487f5..55f1c65a 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -5,8 +5,8 @@ management: docVersion: "1.0" speakeasyVersion: 1.445.2 generationVersion: 2.461.4 - releaseVersion: 0.0.1-alpha.20 - configChecksum: 8a8a03fca9c3f77a90cff7b3c822375c + releaseVersion: 0.0.1-alpha.21 + configChecksum: fabf13d55adfbfa964856669a7e51924 published: true features: typescript: diff --git a/.speakeasy/temp/applied_vJmsxPMnEh.yaml b/.speakeasy/temp/applied_vJmsxPMnEh.yaml deleted file mode 100644 index 60718a3b..00000000 --- a/.speakeasy/temp/applied_vJmsxPMnEh.yaml +++ /dev/null @@ -1,8807 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: Environments.ApiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancelByTransactionId - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: Notifications.Stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: graph - x-speakeasy-group: Notifications.Stats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: Integrations.Webhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setAsPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: Subscribers.Credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: Subscribers.Credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: Subscribers.Credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineFlag - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: retrieveByLevel - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: Subscribers.Notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: unseenCount - x-speakeasy-group: Subscribers.Notifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: markAllAs - x-speakeasy-group: Subscribers.Messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: Subscribers.Messages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: Subscribers.Messages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: chatAccessOauthCallBack - x-speakeasy-group: Subscribers.Authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: chatAccessOauth - x-speakeasy-group: Subscribers.Authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: assign - x-speakeasy-group: Topics.Subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: Topics.Subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: Topics.Subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_RHwSKJmVgU.yaml b/.speakeasy/temp/downloaded_RHwSKJmVgU.yaml deleted file mode 100644 index 8e0ac771..00000000 --- a/.speakeasy/temp/downloaded_RHwSKJmVgU.yaml +++ /dev/null @@ -1,9166 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: Environments.ApiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: |2- - - Trigger event is the main (and only) way to send notifications to subscribers. - The trigger identifier is used to match the particular workflow associated with it. - Additional information can be passed according the body interface below. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: |2- - - Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. - The bulk API is limited to 100 events per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to - send announcements, etc. - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancel - summary: Cancel triggered event - description: |2- - - Using a previously generated transactionId during the event trigger, - will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... - - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: Notifications.Stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: graph - x-speakeasy-group: Notifications.Stats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. - Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are - successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on - the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that - organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that - are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: Integrations.Webhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported - or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setAsPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in - the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and - `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will - be later used to receive notifications, and access notification feeds. - Communication credentials such as email, phone number, and 3 rd party - credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: |2- - - Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. - The bulk API is limited to 500 subscribers per request. - - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: Subscribers.Credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: Subscribers.Credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack - and push tokens. - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: Subscribers.Credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineFlag - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: retrieveByLevel - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be - included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: Subscribers.Notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string - like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: unseenCount - x-speakeasy-group: Subscribers.Notifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: markAllAs - x-speakeasy-group: Subscribers.Messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: Subscribers.Messages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. - Optionally you can pass feed id (or array) to mark messages of a - particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: Subscribers.Messages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: chatAccessOauthCallBack - x-speakeasy-group: Subscribers.Authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: chatAccessOauth - x-speakeasy-group: Subscribers.Authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query - parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of - message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query - parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: assign - x-speakeasy-group: Topics.Subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: Topics.Subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: Topics.Subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it - can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. - Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the - current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is - currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a - temporary overload or scheduled maintenance, which will likely be - alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more - details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to - trigger workflows, and enable you to send notifications to subscribers - based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by - a workflow acting as a message blueprint. Notifications can be individual - or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your - favorite delivery provider. During the runtime of the API, the - Integrations Store is responsible for storing the configurations of all - the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure - to wrap content of email notifications. Layouts can be manipulated and - assigned to new or existing workflows within the Novu platform, allowing - users to create, manage, and assign these layouts to workflows, so they - can be reused to structure the appearance of notifications sent through - the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a - container for the logic and blueprint that are associated with a type of - notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same - functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous - to a pending pull request in git, enabling you to test changes before they - are applied to your environment and atomically apply them when you are - ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your - data and configuration. This means that subscribers, and preferences - created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for - a domain or subdomain. The feature parses the contents of the email and - POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing - message associated with its relevant metadata. This can be used to monitor - activity and discover potential issues with a specific provider or a - channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have - organizations, they are referred to as tenants. Tenants in Novu provides - the ability to tailor specific notification experiences to users of - different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a - particular channel. Messages contain information about the request that - triggered its delivery, a view of the data sent to the recipient, and a - timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each - organization you create has its own separate integration store, workflows, - subscribers, and API keys. This separation of resources allows you to - manage multi-tenant environments and separate domains within a single - account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They - provided detailed information on the execution of a workflow, including - the status of each step, the input and output of each step, and the - overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey - ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This - identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the workflow, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - Existing tenants will be updated with the provided details. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. - This identifier can be found on the template page. - payload: - type: object - description: >- - The payload object is used to pass additional custom information - that could be used to render the template, or perform routing rules - based on it. - This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID - if not provided. - actor: - description: >- - It is used to display the Avatar of the provided actor's subscriber - id or actor object. - If a new actor object is provided, we will create a new subscriber in our system - - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: |- - It is used to specify a tenant context during trigger event. - If a new tenant object is provided, we will create a new tenant. - - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field - will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be - obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given - provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the - subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually - correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and - should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this - workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the - workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for - the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an - unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the - Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the - topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. - The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be - refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token - bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that - was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_mYUHRoodFu.yaml b/.speakeasy/temp/overlay_mYUHRoodFu.yaml deleted file mode 100644 index 60718a3b..00000000 --- a/.speakeasy/temp/overlay_mYUHRoodFu.yaml +++ /dev/null @@ -1,8807 +0,0 @@ -openapi: 3.0.0 -paths: - /v1/environments/me: - get: - operationId: EnvironmentsControllerV1_getCurrentEnvironment - summary: Get current environment - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments: - get: - operationId: EnvironmentsControllerV1_listMyEnvironments - summary: Get environments - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EnvironmentResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/environments/api-keys: - get: - operationId: EnvironmentsControllerV1_listOrganizationApiKeys - x-speakeasy-group: Environments.ApiKeys - summary: Get api keys - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ApiKey' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Environments - security: - - api-key: [] - /v1/execution-details: - get: - operationId: ExecutionDetailsController_getExecutionDetailsForNotification - summary: Get execution details - parameters: - - name: notificationId - required: true - in: query - schema: - type: string - - name: subscriberId - required: true - in: query - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ExecutionDetailsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Execution Details - security: - - api-key: [] - /v1/events/trigger: - post: - operationId: EventsController_trigger - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Event - x-speakeasy-name-override: trigger - summary: Trigger event - description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/bulk: - post: - operationId: EventsController_triggerBulk - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Trigger Notification Events in Bulk - x-speakeasy-name-override: triggerBulk - summary: Bulk trigger event - description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkTriggerEventDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/broadcast: - post: - operationId: EventsController_broadcastEventToAll - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Broadcast Event to All - x-speakeasy-name-override: triggerBroadcast - summary: Broadcast event to all - description: >- - Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. - - In the future could be used to trigger events to a subset of subscribers based on defined filters. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventToAllRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerEventResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/events/trigger/{transactionId}: - delete: - operationId: EventsController_cancel - x-speakeasy-group: '' - x-speakeasy-usage-example: - title: Cancel Triggered Event - x-speakeasy-name-override: cancelByTransactionId - summary: Cancel triggered event - description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " - parameters: - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/DataBooleanDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Events - security: - - api-key: [] - /v1/notifications: - get: - operationId: NotificationsController_listNotifications - summary: Get notifications - parameters: - - name: channels - required: true - in: query - schema: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - name: templates - required: true - in: query - schema: - type: array - items: - type: string - - name: emails - required: true - in: query - schema: - type: array - items: - type: string - - name: search - required: true - in: query - deprecated: true - schema: - type: string - - name: subscriberIds - required: true - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: transactionId - required: false - in: query - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/stats: - get: - operationId: NotificationsController_getActivityStats - x-speakeasy-group: Notifications.Stats - summary: Get notification statistics - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityStatsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/graph/stats: - get: - operationId: NotificationsController_getActivityGraphStats - x-speakeasy-name-override: graph - x-speakeasy-group: Notifications.Stats - summary: Get notification graph statistics - parameters: - - name: days - required: false - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ActivityGraphStatesResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notifications/{notificationId}: - get: - operationId: NotificationsController_getNotification - summary: Get notification - parameters: - - name: notificationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivityNotificationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Notifications - security: - - api-key: [] - /v1/notification-groups: - post: - operationId: NotificationGroupsController_createNotificationGroup - summary: Create workflow group - description: workflow group was previously named notification group - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - get: - operationId: NotificationGroupsController_listNotificationGroups - summary: Get workflow groups - description: workflow group was previously named notification group - parameters: [] - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/notification-groups/{id}: - get: - operationId: NotificationGroupsController_getNotificationGroup - summary: Get workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - patch: - operationId: NotificationGroupsController_updateNotificationGroup - summary: Update workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateNotificationGroupRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/NotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - delete: - operationId: NotificationGroupsController_deleteNotificationGroup - summary: Delete workflow group - description: workflow group was previously named notification group - parameters: - - name: id - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Workflow groups - security: - - api-key: [] - /v1/integrations: - get: - operationId: IntegrationsController_listIntegrations - summary: Get integrations - description: >- - Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - post: - operationId: IntegrationsController_createIntegration - summary: Create integration - description: >- - Create an integration for the current environment the user is based on the API key provided - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateIntegrationRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/active: - get: - operationId: IntegrationsController_getActiveIntegrations - x-speakeasy-name-override: listActive - summary: Get active integrations - description: >- - Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change - parameters: [] - responses: - '200': - description: >- - The list of active integrations belonging to the organization that are successfully returned. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: - get: - operationId: IntegrationsController_getWebhookSupportStatus - x-speakeasy-group: Integrations.Webhooks - summary: Get webhook support status for provider - description: >- - Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value - parameters: - - name: providerOrIntegrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: The status of the webhook for the provider requested - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: boolean - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}: - put: - operationId: IntegrationsController_updateIntegrationById - summary: Update integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateIntegrationRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - delete: - operationId: IntegrationsController_removeIntegration - summary: Delete integration - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IntegrationResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/integrations/{integrationId}/set-primary: - post: - operationId: IntegrationsController_setIntegrationAsPrimary - x-speakeasy-name-override: setAsPrimary - summary: Set integration as primary - parameters: - - name: integrationId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/IntegrationResponseDto' - '404': - description: >- - The integration with the integrationId provided does not exist in the database. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Integrations - security: - - api-key: [] - /v1/subscribers: - get: - operationId: SubscribersController_listSubscribers - x-speakeasy-pagination: - type: offsetLimit - inputs: - - name: page - in: parameters - type: page - - name: limit - in: parameters - type: limit - outputs: - results: $.data.resultArray - summary: Get subscribers - description: >- - Returns a list of subscribers, could paginated using the `page` and `limit` query parameter - parameters: - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - post: - operationId: SubscribersController_createSubscriber - summary: Create subscriber - description: >- - Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateSubscriberRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}: - get: - operationId: SubscribersController_getSubscriber - summary: Get subscriber - description: Get subscriber by your internal id used to identify the subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeTopics - required: false - in: query - description: Includes the topics associated with the subscriber - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - put: - operationId: SubscribersController_updateSubscriber - summary: Update subscriber - description: Used to update the subscriber entity with new information - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - delete: - operationId: SubscribersController_removeSubscriber - summary: Delete subscriber - description: Deletes a subscriber entity from the Novu platform - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteSubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/bulk: - post: - operationId: SubscribersController_bulkCreateSubscribers - x-speakeasy-name-override: createBulk - summary: Bulk create subscribers - description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/BulkSubscriberCreateDto' - responses: - '201': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials: - put: - operationId: SubscribersController_updateSubscriberChannel - x-speakeasy-group: Subscribers.Credentials - summary: Update subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_modifySubscriberChannel - x-speakeasy-name-override: append - x-speakeasy-group: Subscribers.Credentials - summary: Modify subscriber credentials - description: >- - Subscriber credentials associated to the delivery methods such as slack and push tokens. - - This endpoint appends provided credentials and deviceTokens to the existing ones. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}: - delete: - operationId: SubscribersController_deleteSubscriberCredentials - x-speakeasy-group: Subscribers.Credentials - summary: Delete subscriber credentials by providerId - description: Delete subscriber credentials such as slack and expo tokens. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/online-status: - patch: - operationId: SubscribersController_updateSubscriberOnlineFlag - x-speakeasy-name-override: updateOnlineFlag - x-speakeasy-group: Subscribers.properties - summary: Update subscriber online status - description: Used to update the subscriber isOnline flag. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriberResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences: - get: - operationId: SubscribersController_listSubscriberPreferences - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberGlobalPreferences - x-speakeasy-name-override: updateGlobal - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber global preferences - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/preferences/{parameter}: - get: - operationId: SubscribersController_getSubscriberPreferenceByLevel - x-speakeasy-name-override: retrieveByLevel - x-speakeasy-group: Subscribers.Preferences - summary: Get subscriber preferences by level - parameters: - - name: includeInactiveChannels - required: false - in: query - description: >- - A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true - schema: - type: boolean - - name: parameter - required: true - in: path - description: 'the preferences level to be retrieved (template / global) ' - schema: - enum: - - global - - template - type: string - - name: subscriberId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - patch: - operationId: SubscribersController_updateSubscriberPreference - x-speakeasy-group: Subscribers.Preferences - summary: Update subscriber preference - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: parameter - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/feed: - get: - operationId: SubscribersController_getNotificationsFeed - x-speakeasy-group: Subscribers.Notifications - summary: Get in-app notification feed for a particular subscriber - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: page - required: false - in: query - schema: - type: number - - name: limit - required: false - in: query - schema: - maximum: 100 - default: 10 - type: number - - name: read - required: false - in: query - schema: - type: boolean - - name: seen - required: false - in: query - schema: - type: boolean - - name: payload - required: false - in: query - description: Base64 encoded string of the partial payload JSON object - example: >- - btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/PaginatedResponseDto' - - properties: - data: - type: array - items: - $ref: '#/components/schemas/FeedResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/notifications/unseen: - get: - operationId: SubscribersController_getUnseenCount - x-speakeasy-name-override: unseenCount - x-speakeasy-group: Subscribers.Notifications - summary: Get the unseen in-app notifications count for subscribers feed - parameters: - - name: seen - required: true - in: query - schema: - type: boolean - - name: subscriberId - required: true - in: path - schema: - type: string - - name: limit - required: true - in: query - schema: - type: number - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/UnseenCountResponse' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-as: - post: - operationId: SubscribersController_markMessagesAs - x-speakeasy-name-override: markAllAs - x-speakeasy-group: Subscribers.Messages - summary: Mark a subscriber messages as seen, read, unseen or unread - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MessageMarkAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/MessageEntity' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/mark-all: - post: - operationId: SubscribersController_markAllUnreadAsRead - x-speakeasy-name-override: markAll - x-speakeasy-group: Subscribers.Messages - summary: >- - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkAllMessageAsRequestDto' - responses: - '201': - description: '' - content: - application/json: - schema: - type: number - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: - post: - operationId: SubscribersController_markActionAsSeen - x-speakeasy-name-override: updateAsSeen - x-speakeasy-group: Subscribers.Messages - summary: Mark message action as seen - parameters: - - name: messageId - required: true - in: path - schema: - type: string - - name: type - required: true - in: path - schema: {} - - name: subscriberId - required: true - in: path - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/MarkMessageActionAsSeenDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/MessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: - get: - operationId: SubscribersController_chatOauthCallback - x-speakeasy-name-override: chatAccessOauthCallBack - x-speakeasy-group: Subscribers.Authentication - summary: Handle providers oauth redirect - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: code - required: true - in: query - schema: - type: string - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: - get: - operationId: SubscribersController_chatAccessOauth - x-speakeasy-name-override: chatAccessOauth - x-speakeasy-group: Subscribers.Authentication - summary: Handle chat oauth - parameters: - - name: subscriberId - required: true - in: path - schema: - type: string - - name: providerId - required: true - in: path - schema: {} - - name: hmacHash - required: true - in: query - schema: - type: string - - name: environmentId - required: true - in: query - schema: - type: string - - name: integrationIdentifier - required: false - in: query - schema: - type: string - responses: - '200': - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Subscribers - security: - - api-key: [] - /v1/messages: - get: - operationId: MessagesController_getMessages - summary: Get messages - description: >- - Returns a list of messages, could paginate using the `page` query parameter - parameters: - - name: channel - required: false - in: query - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: subscriberId - required: false - in: query - schema: - type: string - - name: transactionId - required: false - in: query - schema: - type: array - items: - type: string - - name: page - required: false - in: query - schema: - default: 0 - type: number - - name: limit - required: false - in: query - schema: - default: 10 - type: number - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/ActivitiesResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/{messageId}: - delete: - operationId: MessagesController_deleteMessage - summary: Delete message - description: Deletes a message entity from the Novu platform - parameters: - - name: messageId - required: true - in: path - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteMessageResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/messages/transaction/{transactionId}: - delete: - operationId: MessagesController_deleteMessagesByTransactionId - x-speakeasy-name-override: deleteByTransactionId - summary: Delete messages by transactionId - description: >- - Deletes messages entity from the Novu platform using TransactionId of message - parameters: - - name: channel - required: false - in: query - description: The channel of the message to be deleted - schema: - enum: - - in_app - - email - - sms - - chat - - push - type: string - - name: transactionId - required: true - in: path - schema: - type: string - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Messages - security: - - api-key: [] - /v1/topics: - post: - operationId: TopicsController_createTopic - summary: Topic creation - description: Create a topic - parameters: [] - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicRequestDto' - responses: - '201': - description: Created - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/CreateTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_listTopics - summary: Filter topics - description: >- - Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter - parameters: - - name: page - required: false - in: query - description: Number of page for the pagination - schema: - minimum: 0 - default: 0 - type: number - - name: pageSize - required: false - in: query - description: Size of page for the pagination - schema: - minimum: 0 - default: 10 - type: number - - name: key - required: false - in: query - description: Topic key - schema: - type: string - responses: - '200': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/FilterTopicsResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers: - post: - operationId: TopicsController_addSubscribers - x-speakeasy-name-override: assign - x-speakeasy-group: Topics.Subscribers - summary: Subscribers addition - description: Add subscribers to a topic by key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: - get: - operationId: TopicsController_getTopicSubscriber - x-speakeasy-group: Topics.Subscribers - summary: Check topic subscriber - description: Check if a subscriber belongs to a certain topic - parameters: - - name: externalSubscriberId - required: true - in: path - description: The external subscriber id - schema: - type: string - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/TopicSubscriberDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}/subscribers/removal: - post: - operationId: TopicsController_removeSubscribers - x-speakeasy-group: Topics.Subscribers - summary: Subscribers removal - description: Remove subscribers from a topic - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RemoveSubscribersRequestDto' - responses: - '204': - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - description: '' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - /v1/topics/{topicKey}: - delete: - operationId: TopicsController_deleteTopic - summary: Delete topic - description: Delete a topic by its topic key if it has no subscribers - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '204': - description: The topic has been deleted correctly - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '404': - description: >- - The topic with the key provided does not exist in the database so it can not be deleted. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - '409': - description: >- - The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - get: - operationId: TopicsController_getTopic - summary: Get topic - description: Get a topic by its topic key - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/GetTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] - patch: - operationId: TopicsController_renameTopic - x-speakeasy-name-override: rename - summary: Rename a topic - description: Rename a topic by providing a new name - parameters: - - name: topicKey - required: true - in: path - description: The topic key - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicRequestDto' - responses: - '200': - description: Ok - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - content: - application/json: - schema: - $ref: '#/components/schemas/RenameTopicResponseDto' - '409': - description: >- - The request could not be completed due to a conflict with the current state of the target resource. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - Link: - $ref: '#/components/headers/Link' - content: - application/json: - schema: - type: string - example: >- - Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second - '429': - description: 'The client has sent too many requests in a given amount of time. ' - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: API rate limit exceeded - '503': - description: >- - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - RateLimit-Limit: - $ref: '#/components/headers/RateLimit-Limit' - RateLimit-Remaining: - $ref: '#/components/headers/RateLimit-Remaining' - RateLimit-Reset: - $ref: '#/components/headers/RateLimit-Reset' - RateLimit-Policy: - $ref: '#/components/headers/RateLimit-Policy' - Idempotency-Key: - $ref: '#/components/headers/Idempotency-Key' - Idempotency-Replay: - $ref: '#/components/headers/Idempotency-Replay' - Retry-After: - $ref: '#/components/headers/Retry-After' - content: - application/json: - schema: - type: string - example: Please wait some time, then try again. - tags: - - Topics - security: - - api-key: [] -info: - title: Novu API - description: >- - Novu REST API. Please see https://docs.novu.co/api-reference for more details. - version: '1.0' - contact: - name: Novu Support - url: https://discord.gg/novu - email: support@novu.co - termsOfService: https://novu.co/terms - license: - name: MIT - url: https://opensource.org/license/mit -tags: - - name: Events - description: >- - Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. - externalDocs: - url: https://docs.novu.co/workflows - - name: Subscribers - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/subscribers - - name: Topics - description: >- - 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. - externalDocs: - url: https://docs.novu.co/subscribers/topics - - name: Notification - description: >- - A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. - externalDocs: - url: https://docs.novu.co/getting-started/introduction - - name: Integrations - description: >- - With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. - externalDocs: - url: https://docs.novu.co/channels-and-providers/integration-store - - name: Layouts - description: >- - Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. - externalDocs: - url: https://docs.novu.co/content-creation-design/layouts - - name: Workflows - description: >- - All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. - externalDocs: - url: https://docs.novu.co/workflows - - name: Notification Templates - description: >- - Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. - - name: Workflow groups - description: Workflow groups are used to organize workflows into logical groups. - - name: Changes - description: >- - Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. - externalDocs: - url: >- - https://docs.novu.co/platform/environments#promoting-pending-changes-to-production - - name: Environments - description: >- - Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. - externalDocs: - url: https://docs.novu.co/platform/environments - - name: Inbound Parse - description: >- - Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. - externalDocs: - url: https://docs.novu.co/platform/inbound-parse-webhook - - name: Feeds - description: >- - Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. - externalDocs: - url: https://docs.novu.co/activity-feed - - name: Tenants - description: >- - A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. - externalDocs: - url: https://docs.novu.co/tenants - - name: Messages - description: >- - A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. - externalDocs: - url: https://docs.novu.co/workflows/messages - - name: Organizations - description: >- - An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. - externalDocs: - url: https://docs.novu.co/platform/organizations - - name: Execution Details - description: >- - Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. - externalDocs: - url: https://docs.novu.co/activity-feed -servers: - - url: https://api.novu.co - - url: https://eu.api.novu.co -components: - securitySchemes: - api-key: - type: apiKey - in: header - name: Authorization - description: >- - API key authentication. Allowed headers-- "Authorization: ApiKey ". - schemas: - DataWrapperDto: - type: object - properties: - data: - type: object - required: - - data - EnvironmentResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _organizationId: - type: string - identifier: - type: string - apiKeys: - type: array - items: - type: string - _parentId: - type: string - slug: - type: string - required: - - name - - _organizationId - - identifier - - _parentId - ApiKey: - type: object - properties: - key: - type: string - _userId: - type: string - required: - - key - - _userId - ExecutionDetailsResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _jobId: - type: string - _environmentId: - type: string - _notificationId: - type: string - _notificationTemplateId: - type: string - _subscriberId: - type: string - _messageId: - type: string - providerId: - type: string - transactionId: - type: string - channel: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - detail: - type: string - source: - type: string - enum: - - Credentials - - Internal - - Payload - - Webhook - status: - type: string - enum: - - Success - - Warning - - Failed - - Pending - - Queued - - ReadConfirmation - isTest: - type: boolean - isRetry: - type: boolean - createdAt: - type: string - required: - - _organizationId - - _jobId - - _environmentId - - _notificationId - - _notificationTemplateId - - _subscriberId - - transactionId - - channel - - detail - - source - - status - - isTest - - isRetry - TriggerEventResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: If trigger was acknowledged or not - status: - enum: - - error - - trigger_not_active - - no_workflow_active_steps_defined - - no_workflow_steps_defined - - processed - - subscriber_id_missing - - no_tenant_found - type: string - description: Status for trigger - error: - description: In case of an error, this field will contain the error message - type: array - items: - type: string - transactionId: - type: string - description: Transaction id for trigger - required: - - acknowledged - - status - TopicPayloadDto: - type: object - properties: - topicKey: - type: string - type: - enum: - - Subscriber - - Topic - type: string - example: Topic - required: - - topicKey - - type - TenantPayloadDto: - type: object - properties: - identifier: - type: string - name: - type: string - data: - type: object - SubscriberPayloadDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - TriggerEventRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. - example: workflow_identifier - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - to: - type: array - description: The recipients list of people who will receive the notification. - items: - oneOf: - - $ref: '#/components/schemas/SubscriberPayloadDto' - - type: string - description: Unique identifier of a subscriber in your systems - example: SUBSCRIBER_ID - - $ref: '#/components/schemas/TopicPayloadDto' - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - bridgeUrl: - type: string - controls: - type: object - required: - - name - - to - BulkTriggerEventDto: - type: object - properties: - events: - type: array - items: - $ref: '#/components/schemas/TriggerEventRequestDto' - required: - - events - TriggerEventToAllRequestDto: - type: object - properties: - name: - type: string - description: >- - The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. - payload: - type: object - description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." - example: - comment_id: string - post: - text: string - overrides: - type: object - description: This could be used to override provider specific configurations - example: - fcm: - data: - key: value - transactionId: - type: string - description: >- - A unique identifier for this transaction, we will generated a UUID if not provided. - actor: - description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " - oneOf: - - type: string - description: Unique identifier of a subscriber in your systems - - $ref: '#/components/schemas/SubscriberPayloadDto' - tenant: - description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " - oneOf: - - type: string - description: Unique identifier of a tenant in your system - - $ref: '#/components/schemas/TenantPayloadDto' - required: - - name - - payload - DataBooleanDto: - type: object - properties: - data: - type: boolean - required: - - data - ActivitiesResponseDto: - type: object - properties: - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - ActivityStatsResponseDto: - type: object - properties: - weeklySent: - type: number - monthlySent: - type: number - required: - - weeklySent - - monthlySent - ActivityGraphStatesResponse: - type: object - properties: - _id: - type: string - count: - type: number - templates: - type: array - items: - type: string - channels: - type: array - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - required: - - _id - - count - - templates - - channels - ActivityNotificationSubscriberResponseDto: - type: object - properties: - firstName: - type: string - _id: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - required: - - _id - ActivityNotificationTemplateResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - triggers: - type: array - items: - type: string - required: - - name - - triggers - ActivityNotificationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - transactionId: - type: string - createdAt: - type: string - channels: - type: string - items: - type: string - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - enum: - - in_app - - email - - sms - - chat - - push - - digest - - trigger - - delay - - custom - subscriber: - $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' - template: - $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' - jobs: - type: array - items: - type: string - required: - - _environmentId - - _organizationId - - transactionId - NotificationGroupResponseDto: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - CreateNotificationGroupRequestDto: - type: object - properties: - name: - type: string - required: - - name - DeleteNotificationGroupResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CredentialsDto: - type: object - properties: - apiKey: - type: string - user: - type: string - secretKey: - type: string - domain: - type: string - password: - type: string - host: - type: string - port: - type: string - secure: - type: boolean - region: - type: string - accountSid: - type: string - messageProfileId: - type: string - token: - type: string - from: - type: string - senderName: - type: string - projectName: - type: string - applicationId: - type: string - clientId: - type: string - requireTls: - type: boolean - ignoreTls: - type: boolean - tlsOptions: - type: object - baseUrl: - type: string - webhookUrl: - type: string - redirectUrl: - type: string - hmac: - type: boolean - serviceAccount: - type: string - ipPoolName: - type: string - apiKeyRequestHeader: - type: string - secretKeyRequestHeader: - type: string - idPath: - type: string - datePath: - type: string - apiToken: - type: string - authenticateByToken: - type: boolean - authenticationTokenKey: - type: string - instanceId: - type: string - alertUid: - type: string - title: - type: string - imageUrl: - type: string - state: - type: string - externalLink: - type: string - channelId: - type: string - phoneNumberIdentification: - type: string - accessKey: - type: string - FieldFilterPart: - type: object - properties: - field: - type: string - value: - type: string - operator: - type: string - enum: - - LARGER - - SMALLER - - LARGER_EQUAL - - SMALLER_EQUAL - - EQUAL - - NOT_EQUAL - - ALL_IN - - ANY_IN - - NOT_IN - - BETWEEN - - NOT_BETWEEN - - LIKE - - NOT_LIKE - - IN - 'on': - type: string - enum: - - subscriber - - payload - required: - - field - - value - - operator - - 'on' - StepFilter: - type: object - properties: - isNegated: - type: boolean - type: - type: string - enum: - - BOOLEAN - - TEXT - - DATE - - NUMBER - - STATEMENT - - LIST - - MULTI_LIST - - GROUP - value: - type: string - enum: - - AND - - OR - children: - type: array - items: - $ref: '#/components/schemas/FieldFilterPart' - required: - - isNegated - - type - - value - - children - IntegrationResponseDto: - type: object - properties: - _id: - type: string - _environmentId: - type: string - _organizationId: - type: string - name: - type: string - identifier: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - primary: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - _environmentId - - _organizationId - - name - - identifier - - providerId - - channel - - credentials - - active - - deleted - - deletedAt - - deletedBy - - primary - CreateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - providerId: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - credentials: - $ref: '#/components/schemas/CredentialsDto' - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - required: - - providerId - - channel - UpdateIntegrationRequestDto: - type: object - properties: - name: - type: string - identifier: - type: string - _environmentId: - type: string - active: - type: boolean - description: >- - If the integration is active the validation on the credentials field will run - credentials: - $ref: '#/components/schemas/CredentialsDto' - removeNovuBranding: - type: boolean - description: If true, the Novu branding will be removed from the Inbox component - check: - type: boolean - conditions: - type: array - items: - $ref: '#/components/schemas/StepFilter' - PaginatedResponseDto: - type: object - properties: - page: - type: number - description: The current page of the paginated response - hasMore: - type: boolean - description: Does the list have more items to fetch - pageSize: - type: number - description: Number of items on each page - data: - description: The list of items matching the query - type: array - items: - type: object - required: - - page - - hasMore - - pageSize - - data - ChannelCredentials: - type: object - properties: - webhookUrl: - type: string - description: >- - Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. - channel: - type: string - description: Channel specification for Mattermost chat notifications - deviceTokens: - description: >- - Contains an array of the subscriber device tokens for a given provider. Used on Push integrations - type: array - items: - type: string - alertUid: - type: string - description: alert_uid for grafana on-call webhook payload - title: - type: string - description: title to be used with grafana on call webhook - imageUrl: - type: string - description: image_url property fo grafana on call webhook - state: - type: string - description: state property fo grafana on call webhook - externalUrl: - type: string - description: link_to_upstream_details property fo grafana on call webhook - required: - - webhookUrl - ChannelSettings: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - _integrationId: - type: string - description: Id of the integration that is used for this channel - required: - - providerId - - credentials - - _integrationId - SubscriberResponseDto: - type: object - properties: - _id: - type: string - description: >- - The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that - firstName: - type: string - lastName: - type: string - email: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - channels: - description: Channels settings for subscriber - type: array - items: - $ref: '#/components/schemas/ChannelSettings' - topics: - description: Topics that subscriber belongs to - type: array - items: - type: string - isOnline: - type: boolean - lastOnlineAt: - type: string - _organizationId: - type: string - _environmentId: - type: string - deleted: - type: boolean - createdAt: - type: string - updatedAt: - type: string - __v: - type: number - required: - - subscriberId - - _organizationId - - _environmentId - - deleted - - createdAt - - updatedAt - CreateSubscriberRequestDto: - type: object - properties: - subscriberId: - type: string - description: >- - The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - description: An http url to the profile image of your subscriber - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - required: - - subscriberId - BulkSubscriberCreateDto: - type: object - properties: - subscribers: - type: array - items: - type: string - required: - - subscribers - UpdateSubscriberRequestDto: - type: object - properties: - email: - type: string - firstName: - type: string - lastName: - type: string - phone: - type: string - avatar: - type: string - locale: - type: string - data: - type: object - channels: - type: array - items: - type: string - UpdateSubscriberChannelRequestDto: - type: object - properties: - providerId: - type: string - enum: - - slack - - discord - - msteams - - mattermost - - ryver - - zulip - - grafana-on-call - - getstream - - rocket-chat - - whatsapp-business - - fcm - - apns - - expo - - one-signal - - pushpad - - push-webhook - - pusher-beams - description: The provider identifier for the credentials - integrationIdentifier: - type: string - description: The integration identifier - credentials: - description: Credentials payload for the specified provider - allOf: - - $ref: '#/components/schemas/ChannelCredentials' - required: - - providerId - - credentials - UpdateSubscriberOnlineFlagRequestDto: - type: object - properties: - isOnline: - type: boolean - required: - - isOnline - DeleteSubscriberResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - TemplateResponse: - type: object - properties: - _id: - type: string - description: Unique identifier of the workflow - name: - type: string - description: Name of the workflow - critical: - type: boolean - description: >- - Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen - triggers: - description: Triggers are the events that will trigger the workflow. - type: array - items: - type: string - required: - - _id - - name - - critical - - triggers - PreferenceChannels: - type: object - properties: - email: - type: boolean - sms: - type: boolean - in_app: - type: boolean - chat: - type: boolean - push: - type: boolean - Preference: - type: object - properties: - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - channels: - description: >- - Subscriber preferences for the different channels regarding this workflow - allOf: - - $ref: '#/components/schemas/PreferenceChannels' - required: - - enabled - - channels - UpdateSubscriberPreferenceResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - template - - preference - GetSubscriberPreferencesResponseDto: - type: object - properties: - template: - description: The workflow information and if it is critical or not - allOf: - - $ref: '#/components/schemas/TemplateResponse' - preference: - description: The preferences of the subscriber regarding the related workflow - allOf: - - $ref: '#/components/schemas/Preference' - required: - - preference - ChannelPreference: - type: object - properties: - type: - type: string - enum: - - in_app - - email - - sms - - chat - - push - description: The type of channel that is enabled or not - enabled: - type: boolean - description: If channel is enabled or not - required: - - type - - enabled - UpdateSubscriberPreferenceRequestDto: - type: object - properties: - channel: - description: >- - The subscriber preferences for every ChannelTypeEnum for the workflow assigned. - allOf: - - $ref: '#/components/schemas/ChannelPreference' - enabled: - type: boolean - description: >- - Sets if the workflow is fully enabled for all channels or not for the subscriber. - UpdateSubscriberGlobalPreferencesRequestDto: - type: object - properties: - enabled: - type: boolean - description: Enable or disable the subscriber global preferences. - preferences: - description: The subscriber global preferences for every ChannelTypeEnum. - type: array - items: - $ref: '#/components/schemas/ChannelPreference' - FeedResponseDto: - type: object - properties: - totalCount: - type: number - hasMore: - type: boolean - data: - type: array - items: - type: string - pageSize: - type: number - page: - type: number - required: - - hasMore - - data - - pageSize - - page - UnseenCountResponse: - type: object - properties: - count: - type: number - required: - - count - MessageMarkAsRequestDto: - type: object - properties: - messageId: - oneOf: - - type: string - - type: array - items: - type: string - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - required: - - messageId - - markAs - MessageEntity: - type: object - properties: {} - MarkAllMessageAsRequestDto: - type: object - properties: - feedIdentifier: - oneOf: - - type: string - - type: array - items: - type: string - description: Optional feed identifier or array of feed identifiers - markAs: - enum: - - read - - seen - - unread - - unseen - type: string - description: Mark all subscriber messages as read, unread, seen or unseen - required: - - markAs - EmailBlockStyles: - type: object - properties: - textAlign: - type: string - enum: - - center - - left - - right - required: - - textAlign - EmailBlock: - type: object - properties: - type: - enum: - - button - - text - type: string - content: - type: string - url: - type: string - styles: - $ref: '#/components/schemas/EmailBlockStyles' - required: - - type - - content - MessageCTAData: - type: object - properties: - url: - type: string - MessageButton: - type: object - properties: - type: - type: string - enum: - - primary - - secondary - content: - type: string - resultContent: - type: string - required: - - type - - content - MessageActionResult: - type: object - properties: - payload: - type: object - type: - type: string - enum: - - primary - - secondary - MessageAction: - type: object - properties: - status: - type: string - enum: - - pending - - done - buttons: - type: array - items: - $ref: '#/components/schemas/MessageButton' - result: - $ref: '#/components/schemas/MessageActionResult' - MessageCTA: - type: object - properties: - type: - type: string - enum: - - redirect - data: - $ref: '#/components/schemas/MessageCTAData' - action: - $ref: '#/components/schemas/MessageAction' - required: - - data - NotificationGroup: - type: object - properties: - _id: - type: string - name: - type: string - _environmentId: - type: string - _organizationId: - type: string - _parentId: - type: string - required: - - name - - _environmentId - - _organizationId - DigestRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - regular - - backoff - backoff: - type: boolean - backoffAmount: - type: number - backoffUnit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - updateMode: - type: boolean - required: - - type - TimedConfig: - type: object - properties: - atTime: - type: string - weekDays: - type: array - items: - type: string - enum: - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - - sunday - monthDays: - type: array - items: - type: string - ordinal: - type: string - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - last - ordinalValue: - type: string - enum: - - day - - weekday - - weekend - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - monthlyType: - type: string - enum: - - each - - 'on' - DigestTimedMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - digestKey: - type: string - type: - type: string - enum: - - timed - timed: - $ref: '#/components/schemas/TimedConfig' - required: - - type - DelayRegularMetadata: - type: object - properties: - amount: - type: number - unit: - type: string - enum: - - seconds - - minutes - - hours - - days - - weeks - - months - type: - type: string - enum: - - regular - required: - - type - DelayScheduledMetadata: - type: object - properties: - type: - type: string - enum: - - scheduled - delayPath: - type: string - required: - - type - - delayPath - MessageTemplate: - type: object - properties: {} - NotificationStepVariant: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - NotificationStep: - type: object - properties: - _id: - type: string - uuid: - type: string - name: - type: string - _templateId: - type: string - active: - type: boolean - shouldStopOnFail: - type: boolean - template: - $ref: '#/components/schemas/MessageTemplate' - filters: - type: array - items: - $ref: '#/components/schemas/StepFilter' - _parentId: - type: object - metadata: - oneOf: - - $ref: '#/components/schemas/DigestRegularMetadata' - - $ref: '#/components/schemas/DigestTimedMetadata' - - $ref: '#/components/schemas/DelayRegularMetadata' - - $ref: '#/components/schemas/DelayScheduledMetadata' - replyCallback: - type: object - variants: - $ref: '#/components/schemas/NotificationStepVariant' - NotificationTriggerVariable: - type: object - properties: - name: - type: string - required: - - name - NotificationTrigger: - type: object - properties: - type: - type: string - enum: - - event - identifier: - type: string - variables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - subscriberVariables: - type: array - items: - $ref: '#/components/schemas/NotificationTriggerVariable' - required: - - type - - identifier - - variables - WorkflowResponse: - type: object - properties: - _id: - type: string - name: - type: string - description: - type: string - active: - type: boolean - draft: - type: boolean - preferenceSettings: - $ref: '#/components/schemas/PreferenceChannels' - critical: - type: boolean - tags: - type: array - items: - type: string - steps: - type: array - items: - $ref: '#/components/schemas/NotificationStep' - _organizationId: - type: string - _creatorId: - type: string - _environmentId: - type: string - triggers: - type: array - items: - $ref: '#/components/schemas/NotificationTrigger' - _notificationGroupId: - type: string - _parentId: - type: string - deleted: - type: boolean - deletedAt: - type: string - deletedBy: - type: string - notificationGroup: - $ref: '#/components/schemas/NotificationGroup' - data: - type: object - workflowIntegrationStatus: - type: object - required: - - name - - description - - active - - draft - - preferenceSettings - - critical - - tags - - steps - - _organizationId - - _creatorId - - _environmentId - - triggers - - _notificationGroupId - - deleted - - deletedAt - - deletedBy - MessageResponseDto: - type: object - properties: - _id: - type: string - _templateId: - type: string - _environmentId: - type: string - _messageTemplateId: - type: string - _organizationId: - type: string - _notificationId: - type: string - _subscriberId: - type: string - subscriber: - $ref: '#/components/schemas/SubscriberResponseDto' - template: - $ref: '#/components/schemas/WorkflowResponse' - templateIdentifier: - type: string - createdAt: - type: string - lastSeenDate: - type: string - lastReadDate: - type: string - content: - oneOf: - - $ref: '#/components/schemas/EmailBlock' - - type: string - transactionId: - type: string - subject: - type: string - channel: - enum: - - in_app - - email - - sms - - chat - - push - type: string - read: - type: boolean - seen: - type: boolean - email: - type: string - phone: - type: string - directWebhookUrl: - type: string - providerId: - type: string - deviceTokens: - type: array - items: - type: string - title: - type: string - cta: - $ref: '#/components/schemas/MessageCTA' - _feedId: - type: object - nullable: true - status: - type: string - enum: - - sent - - error - - warning - errorId: - type: string - errorText: - type: string - payload: - type: object - description: The payload that was used to send the notification trigger - overrides: - type: object - description: Provider specific overrides used when triggering the notification - required: - - _templateId - - _environmentId - - _messageTemplateId - - _organizationId - - _notificationId - - _subscriberId - - createdAt - - content - - transactionId - - channel - - read - - seen - - cta - - status - - errorId - - errorText - - payload - - overrides - MarkMessageActionAsSeenDto: - type: object - properties: - status: - enum: - - pending - - done - type: string - description: Message action status - payload: - type: object - description: Message action payload - required: - - status - DeleteMessageResponseDto: - type: object - properties: - acknowledged: - type: boolean - description: A boolean stating the success of the action - status: - type: string - description: The status enum for the performed action - enum: - - deleted - required: - - acknowledged - - status - CreateTopicResponseDto: - type: object - properties: - _id: - type: string - description: The unique identifier for the Topic created. - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - required: - - key - CreateTopicRequestDto: - type: object - properties: - key: - type: string - description: >- - User defined custom key and provided by the user that will be an unique identifier for the Topic created. - name: - type: string - description: >- - User defined custom name and provided by the user that will name the Topic created. - required: - - key - - name - AddSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be associated to the topic - type: array - items: - type: string - required: - - subscribers - TopicSubscriberDto: - type: object - properties: - _organizationId: - type: string - _environmentId: - type: string - _subscriberId: - type: string - _topicId: - type: string - topicKey: - type: string - externalSubscriberId: - type: string - required: - - _organizationId - - _environmentId - - _subscriberId - - _topicId - - topicKey - - externalSubscriberId - RemoveSubscribersRequestDto: - type: object - properties: - subscribers: - description: List of subscriber identifiers that will be removed to the topic - type: array - items: - type: string - required: - - subscribers - TopicDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - FilterTopicsResponseDto: - type: object - properties: - data: - type: array - items: - $ref: '#/components/schemas/TopicDto' - page: - type: number - pageSize: - type: number - totalCount: - type: number - required: - - data - - page - - pageSize - - totalCount - GetTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicResponseDto: - type: object - properties: - _id: - type: string - _organizationId: - type: string - _environmentId: - type: string - key: - type: string - name: - type: string - subscribers: - type: array - items: - type: string - required: - - _organizationId - - _environmentId - - key - - name - - subscribers - RenameTopicRequestDto: - type: object - properties: - name: - type: string - description: >- - User defined custom name and provided by the user to rename the topic. - required: - - name - GeneratePreviewResponseDto: - type: object - properties: {} - headers: - Content-Type: - required: true - description: The MIME type of the response body. - schema: - type: string - example: application/json - RateLimit-Limit: - required: false - description: >- - The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. - schema: - type: string - example: '100' - RateLimit-Remaining: - required: false - description: The number of requests remaining until the next window. - schema: - type: string - example: '93' - RateLimit-Reset: - required: false - description: >- - The remaining seconds until a request of the same cost will be refreshed. - schema: - type: string - example: '8' - RateLimit-Policy: - required: false - description: The rate limit policy that was used to evaluate the request. - schema: - type: string - example: >- - 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" - Retry-After: - required: false - description: >- - The number of seconds after which the client may retry the request that was previously rejected. - schema: - type: string - example: '8' - Idempotency-Key: - required: false - description: The idempotency key used to evaluate the request. - schema: - type: string - example: '8' - Idempotency-Replay: - required: false - description: Whether the request was a replay of a previous request. - schema: - type: string - example: 'true' - Link: - required: false - description: A link to the documentation. - schema: - type: string - example: https://docs.novu.co/ -externalDocs: - description: Novu Documentation - url: https://docs.novu.co -x-speakeasy-name-override: - - operationId: ^.*get.* - methodNameOverride: retrieve - - operationId: ^.*retrieve.* - methodNameOverride: retrieve - - operationId: ^.*create.* - methodNameOverride: create - - operationId: ^.*update.* - methodNameOverride: update - - operationId: ^.*list.* - methodNameOverride: list - - operationId: ^.*delete.* - methodNameOverride: delete - - operationId: ^.*remove.* - methodNameOverride: delete -x-speakeasy-retries: - strategy: backoff - backoff: - initialInterval: 500 - maxInterval: 30000 - maxElapsedTime: 3600000 - exponent: 1.5 - statusCodes: - - '408' - - '409' - - '429' - - 5XX - retryConnectionErrors: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 2190e744..cf9171c0 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,48 +1,29 @@ -<<<<<<< Updated upstream -speakeasyVersion: 1.399.2 +speakeasyVersion: 1.445.2 sources: json-development: sourceNamespace: json-development - sourceRevisionDigest: sha256:395eba518bfd3c604bf1fdd5dba5d7b7fd45b266e2e943805083c8bad4771fdd - sourceBlobDigest: sha256:a87a8330164b61538704ebe0d75d9adb307d3cc249d11a835b8cd71be3703570 -======= -speakeasyVersion: 1.444.1 -sources: - json-development: - sourceNamespace: json-development - sourceRevisionDigest: sha256:4b9174006d5eb012ca8c782224c03619125acd0335256a7701a8670288685d96 - sourceBlobDigest: sha256:770b3d589f922e7138332329b37f801c77002a53a0a7214de79afa467073d2e2 ->>>>>>> Stashed changes + sourceRevisionDigest: sha256:583c98bdfa85b8db8c89c540ff60bba0e87504738c862972b9a53dd8f1cb72e1 + sourceBlobDigest: sha256:9a32d337505c5b553403b49b706fc843ea54f603577cdbb1c532132b14cf8e08 tags: - latest + - "1.0" targets: my-first-target: source: json-development sourceNamespace: json-development -<<<<<<< Updated upstream - sourceRevisionDigest: sha256:395eba518bfd3c604bf1fdd5dba5d7b7fd45b266e2e943805083c8bad4771fdd - sourceBlobDigest: sha256:a87a8330164b61538704ebe0d75d9adb307d3cc249d11a835b8cd71be3703570 - codeSamplesNamespace: code-samples-typescript - codeSamplesRevisionDigest: sha256:ec9766637494086a4198568b8ec23f28a71e7af7bebc6b0b5b38460ea0edc273 -======= - sourceRevisionDigest: sha256:4b9174006d5eb012ca8c782224c03619125acd0335256a7701a8670288685d96 - sourceBlobDigest: sha256:770b3d589f922e7138332329b37f801c77002a53a0a7214de79afa467073d2e2 + sourceRevisionDigest: sha256:583c98bdfa85b8db8c89c540ff60bba0e87504738c862972b9a53dd8f1cb72e1 + sourceBlobDigest: sha256:9a32d337505c5b553403b49b706fc843ea54f603577cdbb1c532132b14cf8e08 codeSamplesNamespace: code-samples-typescript - codeSamplesRevisionDigest: sha256:4afbdd4336fa54e05fd4b0ed4b2c2ce2c6f9ac6f444516217a45b3aeca920dfd ->>>>>>> Stashed changes + codeSamplesRevisionDigest: sha256:fdc105680e168adee4774e3f3438896f5fa939814d294a84164702026ce6768d workflow: workflowVersion: 1.0.0 speakeasyVersion: latest sources: json-development: inputs: -<<<<<<< Updated upstream - - location: http://api.novu.co/openapi.sdk.json -======= - location: http://127.0.0.1:3000/openapi.sdk.yaml ->>>>>>> Stashed changes overlays: - - location: ./sources/cleanup-overlay.yaml + - location: .speakeasy/speakeasy-modifications-overlay.yaml output: sources/json-development.json registry: location: registry.speakeasyapi.dev/novu/novu/json-development diff --git a/jsr.json b/jsr.json index 1b84484c..42628871 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.20", + "version": "0.0.1-alpha.21", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index 9a74d22d..63e703a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.20", + "version": "0.0.1-alpha.21", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@novu/api", - "version": "0.0.1-alpha.20", + "version": "0.0.1-alpha.21", "devDependencies": { "@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/parser": "^7.7.1", diff --git a/package.json b/package.json index 8bc5709d..92813998 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.20", + "version": "0.0.1-alpha.21", "author": "Novu", "main": "./index.js", "sideEffects": false, diff --git a/sources/code-samples.yaml b/sources/code-samples.yaml index 5956a4d6..19a05111 100644 --- a/sources/code-samples.yaml +++ b/sources/code-samples.yaml @@ -3,507 +3,339 @@ info: title: CodeSamples overlay for typescript target version: 0.0.0 actions: - - target: $["paths"]["/v1/changes"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "ChangesController_getChanges" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.changes.retrieve({\n promoted: \"false\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/changes/bulk/apply"]["post"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "ChangesController_bulkApplyDiff" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.changes.applyBulk({\n changeIds: [\n \"\",\n ],\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/changes/count"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "ChangesController_getChangesCount" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.changes.count();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/changes/{changeId}/apply"]["post"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "ChangesController_applyDiff" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.changes.apply(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - target: $["paths"]["/v1/environments"]["get"] update: "x-codeSamples": - "lang": "typescript" - "label": "EnvironmentsController_listMyEnvironments" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.list();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "label": "EnvironmentsControllerV1_listMyEnvironments" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/environments/api-keys"]["get"] update: "x-codeSamples": - "lang": "typescript" - "label": "EnvironmentsController_listOrganizationApiKeys" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.apiKeys.list();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "label": "EnvironmentsControllerV1_listOrganizationApiKeys" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.apiKeys.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/environments/me"]["get"] update: "x-codeSamples": - "lang": "typescript" - "label": "EnvironmentsController_getCurrentEnvironment" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.retrieve();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "label": "EnvironmentsControllerV1_getCurrentEnvironment" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.environments.retrieve();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/events/trigger"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_trigger" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.trigger({\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.trigger({\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/events/trigger/broadcast"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_broadcastEventToAll" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBroadcast({\n name: \"\",\n payload: {},\n overrides: {},\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBroadcast({\n name: \"\",\n payload: {},\n overrides: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/events/trigger/bulk"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_triggerBulk" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBulk({\n events: [\n \n ],\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBulk({\n events: [\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n subscriberId: \"\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/events/trigger/{transactionId}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_cancel" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.cancel(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.cancelByTransactionId(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/execution-details"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "ExecutionDetailsController_getExecutionDetailsForNotification" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.executionDetails.retrieve(\"\", \"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/feeds"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "FeedsController_getFeeds" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.feeds.retrieve();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/feeds"]["post"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "FeedsController_createFeed" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.feeds.create({\n name: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/feeds/{feedId}"]["delete"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "FeedsController_deleteFeedById" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.feeds.delete(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.executionDetails.retrieve(\"\", \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/integrations"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "IntegrationsController_listIntegrations" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.list();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/integrations"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "IntegrationsController_createIntegration" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.create({\n providerId: \"\",\n channel: \"sms\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.create({\n providerId: \"\",\n channel: \"sms\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/integrations/active"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "IntegrationsController_getActiveIntegrations" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.listActive();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.listActive();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/integrations/webhook/provider/{providerOrIntegrationId}/status"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "IntegrationsController_getWebhookSupportStatus" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.webhooks.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.webhooks.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/integrations/{integrationId}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "IntegrationsController_removeIntegration" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.delete(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/integrations/{integrationId}"]["put"] update: "x-codeSamples": - "lang": "typescript" "label": "IntegrationsController_updateIntegrationById" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.update(\"\", {});\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.update({}, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/integrations/{integrationId}/set-primary"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "IntegrationsController_setIntegrationAsPrimary" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.setAsPrimary(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/layouts"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "LayoutsController_listLayouts" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.layouts.list({});\n}\n\nrun();" - - target: $["paths"]["/v1/layouts"]["post"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "LayoutsController_PropertyDescriptor" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.layouts.create();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/layouts/{layoutId}"]["delete"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "LayoutsController_deleteLayout" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.layouts.delete(\"\");\n}\n\nrun();" - - target: $["paths"]["/v1/layouts/{layoutId}"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "LayoutsController_getLayout" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.layouts.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/layouts/{layoutId}"]["patch"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "LayoutsController_updateLayout" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.layouts.update(\"\", {\n identifier: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/layouts/{layoutId}/default"]["post"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "LayoutsController_setDefaultLayout" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.layouts.setAsDefault(\"\");\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.integrations.setAsPrimary(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/messages"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "MessagesController_getMessages" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.messages.retrieve({});\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.messages.retrieve({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/messages/transaction/{transactionId}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "MessagesController_deleteMessagesByTransactionId" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.messages.deleteByTransactionId(\"\");\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.messages.deleteByTransactionId(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/messages/{messageId}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "MessagesController_deleteMessage" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.messages.delete(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.messages.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notification-groups"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationGroupsController_listNotificationGroups" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.list();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.list();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notification-groups"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationGroupsController_createNotificationGroup" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.create({\n name: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.create({\n name: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notification-groups/{id}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationGroupsController_deleteNotificationGroup" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.delete(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notification-groups/{id}"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationGroupsController_getNotificationGroup" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notification-groups/{id}"]["patch"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationGroupsController_updateNotificationGroup" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.update(\"\", {\n name: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflowGroups.update({\n name: \"\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notifications"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationsController_listNotifications" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.list({\n channels: [\n \"chat\",\n ],\n templates: [\n \"\",\n ],\n emails: [\n \"\",\n ],\n search: \"\",\n subscriberIds: [\n \"\",\n ],\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.list({\n channels: [\n \"sms\",\n \"chat\",\n \"in_app\",\n ],\n templates: [\n \"\",\n ],\n emails: [\n \"\",\n ],\n search: \"\",\n subscriberIds: [\n \"\",\n \"\",\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notifications/graph/stats"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationsController_getActivityGraphStats" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.stats.graph();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.stats.graph();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notifications/stats"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationsController_getActivityStats" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.stats.retrieve();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.stats.retrieve();\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/notifications/{notificationId}"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "NotificationsController_getNotification" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/organizations"]["patch"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "EEOrganizationController_renameOrganization" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.organizations.eeOrganizationControllerRenameOrganization({\n name: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/organizations/branding"]["put"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "EEOrganizationController_updateBrandingDetails" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.organizations.update({\n logo: \"\",\n color: \"fuchsia\",\n fontColor: \"\",\n contentBackground: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/organizations/me"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "EEOrganizationController_getMyOrganization" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.organizations.retrieve();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.notifications.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_listSubscribers" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.list();\n \n for await (const page of result) {\n // Handle the page\n console.log(page);\n }\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.list();\n\n for await (const page of result) {\n // Handle the page\n console.log(page);\n }\n}\n\nrun();" - target: $["paths"]["/v1/subscribers"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_createSubscriber" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.create({\n subscriberId: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.create({\n subscriberId: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/bulk"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_bulkCreateSubscribers" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.subscribers.createBulk({\n subscribers: [\n \"\",\n ],\n });\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.createBulk({\n subscribers: [\n \"\",\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_removeSubscriber" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.delete(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_getSubscriber" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}"]["put"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_updateSubscriber" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.update(\"\", {});\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.update({}, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["patch"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_modifySubscriberChannel" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.credentials.append(\"\", {\n providerId: 3462.44,\n credentials: {\n webhookUrl: \"\",\n },\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.credentials.append({\n providerId: \"zulip\",\n credentials: {\n webhookUrl: \"https://talkative-pop.org\",\n },\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["put"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_updateSubscriberChannel" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.credentials.update(\"\", {\n providerId: 8574.78,\n credentials: {\n webhookUrl: \"\",\n },\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.credentials.update({\n providerId: \"pushpad\",\n credentials: {\n webhookUrl: \"https://grown-worth.name\",\n },\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_deleteSubscriberCredentials" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.subscribers.credentials.delete(\"\", \"\");\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.credentials.delete(\"\", \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_chatAccessOauth" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.subscribers.authentication.chatAccessOauth({\n subscriberId: \"\",\n providerId: \"\",\n hmacHash: \"\",\n environmentId: \"\",\n });\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.authentication.chatAccessOauth({\n subscriberId: \"\",\n providerId: \"\",\n hmacHash: \"\",\n environmentId: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_chatOauthCallback" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.authentication.chatAccessOauthCallBack({\n subscriberId: \"\",\n providerId: \"\",\n code: \"\",\n hmacHash: \"\",\n environmentId: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.authentication.chatAccessOauthCallBack({\n subscriberId: \"\",\n providerId: \"\",\n code: \"\",\n hmacHash: \"\",\n environmentId: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-all"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_markAllUnreadAsRead" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.markAll(\"\", {\n markAs: \"seen\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.markAll({\n markAs: \"seen\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-as"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_markMessagesAs" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.markAllAs(\"\", {\n messageId: \"\",\n markAs: \"seen\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.markAllAs({\n messageId: \"\",\n markAs: \"unread\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_markActionAsSeen" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.updateAsSeen({\n messageId: \"\",\n type: \"\",\n subscriberId: \"\",\n markMessageActionAsSeenDto: {\n status: \"done\",\n },\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.messages.updateAsSeen({\n messageId: \"\",\n type: \"\",\n subscriberId: \"\",\n markMessageActionAsSeenDto: {\n status: \"done\",\n },\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/feed"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_getNotificationsFeed" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.notifications.retrieve({\n subscriberId: \"\",\n payload: \"btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.notifications.retrieve({\n subscriberId: \"\",\n payload: \"btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/unseen"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_getUnseenCount" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.notifications.unseenCount({\n seen: true,\n subscriberId: \"\",\n limit: 4322.81,\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.notifications.unseenCount({\n seen: true,\n subscriberId: \"\",\n limit: 4327.98,\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/online-status"]["patch"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_updateSubscriberOnlineFlag" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.properties.updateOnlineFlag(\"\", {\n isOnline: false,\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.properties.updateOnlineFlag({\n isOnline: false,\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_listSubscriberPreferences" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.list(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.list(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["patch"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_updateSubscriberGlobalPreferences" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.updateGlobal(\"\", {});\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.updateGlobal({}, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_getSubscriberPreferenceByLevel" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.retrieveByLevel(\"Topic\", \"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.retrieveByLevel({\n parameter: \"template\",\n subscriberId: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["patch"] update: "x-codeSamples": - "lang": "typescript" "label": "SubscribersController_updateSubscriberPreference" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.update({\n subscriberId: \"\",\n parameter: \"\",\n updateSubscriberPreferenceRequestDto: {},\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/tenants"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "TenantController_listTenants" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.tenants.list();\n \n for await (const page of result) {\n // Handle the page\n console.log(page);\n }\n}\n\nrun();" - - target: $["paths"]["/v1/tenants"]["post"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "TenantController_createTenant" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.tenants.create({\n identifier: \"\",\n name: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/tenants/{identifier}"]["delete"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "TenantController_removeTenant" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.tenants.delete(\"\");\n}\n\nrun();" - - target: $["paths"]["/v1/tenants/{identifier}"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "TenantController_getTenantById" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.tenants.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/tenants/{identifier}"]["patch"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "TenantController_updateTenant" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.tenants.update(\"\", {});\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.subscribers.preferences.update({\n subscriberId: \"\",\n parameter: \"\",\n updateSubscriberPreferenceRequestDto: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_listTopics" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.list({});\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.list({});\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_createTopic" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.create({\n key: \"\",\n name: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.create({\n key: \"\",\n name: \"\",\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics/{topicKey}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_deleteTopic" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.topics.delete(\"\");\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.delete(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics/{topicKey}"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_getTopic" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.retrieve(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics/{topicKey}"]["patch"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_renameTopic" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.rename(\"\", {\n name: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.rename({\n name: \"\",\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics/{topicKey}/subscribers"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_addSubscribers" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.topics.subscribers.assign(\"\", {\n subscribers: [\n \"\",\n ],\n });\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.subscribers.assign({\n subscribers: [\n \"\",\n \"\",\n \"\",\n ],\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics/{topicKey}/subscribers/removal"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_removeSubscribers" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n await novu.topics.subscribers.delete(\"\", {\n subscribers: [\n \"\",\n ],\n });\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.subscribers.delete({\n subscribers: [\n \"\",\n \"\",\n ],\n }, \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/topics/{topicKey}/subscribers/{externalSubscriberId}"]["get"] update: "x-codeSamples": - "lang": "typescript" "label": "TopicsController_getTopicSubscriber" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.subscribers.retrieve(\"\", \"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/workflows"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "WorkflowController_listWorkflows" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflows.list({});\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/workflows"]["post"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "WorkflowController_create" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflows.create({\n name: \"\",\n notificationGroupId: \"\",\n steps: [\n \n ],\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/workflows/variables"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "WorkflowController_getWorkflowVariables" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflows.variables.retrieve();\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/workflows/{workflowId}"]["delete"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "WorkflowController_deleteWorkflowById" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflows.delete(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/workflows/{workflowId}"]["get"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "WorkflowController_getWorkflowById" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflows.retrieve(\"\");\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/workflows/{workflowId}"]["put"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "WorkflowController_updateWorkflowById" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflows.update(\"\", {\n name: \"\",\n notificationGroupId: \"\",\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" - - target: $["paths"]["/v1/workflows/{workflowId}/status"]["put"] - update: - "x-codeSamples": - - "lang": "typescript" - "label": "WorkflowController_updateActiveStatus" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.workflows.status.update(\"\", {\n active: false,\n });\n \n // Handle the result\n console.log(result)\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.topics.subscribers.retrieve(\"\", \"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" From 2cdba1e831d5b0fdb3a42f67d4f551237edb3ee9 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:30:51 +0100 Subject: [PATCH 11/12] relaunch --- docs/lib/utils/retryconfig.md | 24 + .../components/activitiesresponsedto.md | 25 + .../components/activitygraphstatesresponse.md | 27 + .../activitynotificationresponsedto.md | 27 + ...activitynotificationresponsedtochannels.md | 15 + ...tivitynotificationsubscriberresponsedto.md | 21 + ...activitynotificationtemplateresponsedto.md | 22 + .../components/activitystatsresponsedto.md | 19 + docs/models/components/actor.md | 23 + .../components/addsubscribersrequestdto.md | 19 + docs/models/components/apikey.md | 19 + docs/models/components/backoffunit.md | 15 + .../components/bulksubscribercreatedto.md | 19 + docs/models/components/bulktriggereventdto.md | 26 + docs/models/components/channel.md | 15 + docs/models/components/channelcredentials.md | 24 + docs/models/components/channelpreference.md | 19 + .../components/channelpreferencetype.md | 17 + docs/models/components/channels.md | 15 + docs/models/components/channelsettings.md | 24 + docs/models/components/content.md | 20 + docs/models/components/controls.md | 14 + .../components/createintegrationrequestdto.md | 26 + .../createintegrationrequestdtochannel.md | 15 + .../createnotificationgrouprequestdto.md | 17 + .../components/createsubscriberrequestdto.md | 25 + .../createsubscriberrequestdtodata.md | 14 + .../components/createtopicrequestdto.md | 19 + .../components/createtopicresponsedto.md | 18 + docs/models/components/credentialsdto.md | 56 ++ docs/models/components/data.md | 14 + docs/models/components/databooleandto.md | 17 + .../models/components/delayregularmetadata.md | 19 + .../components/delayregularmetadatatype.md | 15 + .../components/delayregularmetadataunit.md | 15 + .../components/delayscheduledmetadata.md | 19 + .../components/delayscheduledmetadatatype.md | 15 + .../components/deletemessageresponsedto.md | 19 + .../deletemessageresponsedtostatus.md | 17 + .../deletenotificationgroupresponsedto.md | 19 + ...eletenotificationgroupresponsedtostatus.md | 17 + .../components/deletesubscriberresponsedto.md | 19 + .../deletesubscriberresponsedtostatus.md | 17 + .../components/digestregularmetadata.md | 24 + .../components/digestregularmetadatatype.md | 15 + docs/models/components/digesttimedmetadata.md | 21 + .../components/digesttimedmetadatatype.md | 15 + .../components/digesttimedmetadataunit.md | 15 + docs/models/components/emailblock.md | 21 + docs/models/components/emailblockstyles.md | 17 + docs/models/components/emailblocktype.md | 15 + .../components/environmentresponsedto.md | 26 + .../components/executiondetailsresponsedto.md | 45 ++ docs/models/components/feedid.md | 14 + docs/models/components/feedidentifier.md | 21 + docs/models/components/feedresponsedto.md | 26 + docs/models/components/fieldfilterpart.md | 23 + .../components/filtertopicsresponsedto.md | 33 ++ .../getsubscriberpreferencesresponsedto.md | 21 + docs/models/components/gettopicresponsedto.md | 28 + .../components/integrationresponsedto.md | 41 ++ .../integrationresponsedtochannel.md | 15 + .../components/markallmessageasrequestdto.md | 18 + .../markallmessageasrequestdtomarkas.md | 17 + docs/models/components/markas.md | 15 + .../components/markmessageactionasseendto.md | 18 + .../markmessageactionasseendtopayload.md | 16 + .../markmessageactionasseendtostatus.md | 17 + docs/models/components/messageaction.md | 17 + docs/models/components/messageactionresult.md | 16 + .../components/messageactionresultpayload.md | 14 + .../components/messageactionresulttype.md | 15 + docs/models/components/messageactionstatus.md | 15 + docs/models/components/messagebutton.md | 20 + docs/models/components/messagebuttontype.md | 15 + docs/models/components/messagecta.md | 19 + docs/models/components/messagectadata.md | 15 + docs/models/components/messagectatype.md | 15 + docs/models/components/messageentity.md | 14 + docs/models/components/messageid.md | 19 + .../components/messagemarkasrequestdto.md | 21 + docs/models/components/messageresponsedto.md | 67 +++ .../components/messageresponsedtochannel.md | 15 + .../components/messageresponsedtooverrides.md | 16 + .../components/messageresponsedtopayload.md | 16 + .../components/messageresponsedtostatus.md | 15 + docs/models/components/messagetemplate.md | 14 + docs/models/components/metadata.md | 38 ++ docs/models/components/monthlytype.md | 15 + docs/models/components/notificationgroup.md | 23 + .../notificationgroupresponsedto.md | 23 + docs/models/components/notificationstep.md | 26 + .../components/notificationstepvariant.md | 25 + .../notificationstepvariantmetadata.md | 38 ++ .../notificationstepvariantparentid.md | 14 + .../notificationstepvariantreplycallback.md | 14 + docs/models/components/notificationtrigger.md | 26 + .../components/notificationtriggertype.md | 15 + .../components/notificationtriggervariable.md | 17 + docs/models/components/on.md | 15 + docs/models/components/operator.md | 15 + docs/models/components/ordinal.md | 15 + docs/models/components/ordinalvalue.md | 15 + docs/models/components/overrides.md | 16 + docs/models/components/parentid.md | 14 + docs/models/components/payload.md | 17 + docs/models/components/preference.md | 19 + docs/models/components/preferencechannels.md | 19 + docs/models/components/providerid.md | 17 + .../components/removesubscribersrequestdto.md | 19 + .../components/renametopicrequestdto.md | 17 + .../components/renametopicresponsedto.md | 28 + docs/models/components/replycallback.md | 14 + docs/models/components/security.md | 17 + docs/models/components/source.md | 15 + docs/models/components/status.md | 15 + docs/models/components/stepfilter.md | 30 ++ docs/models/components/stepfiltertype.md | 15 + .../models/components/subscriberpayloaddto.md | 25 + .../components/subscriberresponsedto.md | 39 ++ docs/models/components/templateresponse.md | 25 + docs/models/components/tenant.md | 21 + docs/models/components/tenantpayloaddto.md | 17 + .../models/components/tenantpayloaddtodata.md | 14 + docs/models/components/textalign.md | 15 + docs/models/components/timedconfig.md | 20 + docs/models/components/tlsoptions.md | 14 + docs/models/components/to.md | 28 + docs/models/components/topicdto.md | 28 + docs/models/components/topicpayloaddto.md | 19 + docs/models/components/topicsubscriberdto.md | 27 + .../components/triggereventrequestdto.md | 32 ++ .../components/triggereventresponsedto.md | 21 + .../triggereventresponsedtostatus.md | 17 + .../components/triggereventtoallrequestdto.md | 24 + .../triggereventtoallrequestdtoactor.md | 23 + .../triggereventtoallrequestdtooverrides.md | 16 + .../triggereventtoallrequestdtopayload.md | 17 + .../triggereventtoallrequestdtotenant.md | 21 + docs/models/components/type.md | 15 + docs/models/components/unit.md | 15 + docs/models/components/unseencountresponse.md | 17 + .../components/updateintegrationrequestdto.md | 22 + .../updatesubscriberchannelrequestdto.md | 22 + ...tesubscriberchannelrequestdtoproviderid.md | 17 + ...tesubscriberglobalpreferencesrequestdto.md | 16 + .../updatesubscriberonlineflagrequestdto.md | 17 + .../updatesubscriberpreferencerequestdto.md | 16 + .../updatesubscriberpreferenceresponsedto.md | 29 + .../components/updatesubscriberrequestdto.md | 22 + .../updatesubscriberrequestdtodata.md | 14 + docs/models/components/value.md | 15 + docs/models/components/weekdays.md | 15 + .../components/workflowintegrationstatus.md | 14 + docs/models/components/workflowresponse.md | 66 +++ .../models/components/workflowresponsedata.md | 14 + docs/models/operations/channel.md | 15 + docs/models/operations/channels.md | 15 + ...ntrollerv1getcurrentenvironmentresponse.md | 28 + ...scontrollerv1listmyenvironmentsresponse.md | 30 ++ ...rollerv1listorganizationapikeysresponse.md | 28 + ...tscontrollerbroadcasteventtoallresponse.md | 26 + .../eventscontrollercancelrequest.md | 17 + .../eventscontrollercancelresponse.md | 25 + .../eventscontrollertriggerbulkresponse.md | 28 + .../eventscontrollertriggerresponse.md | 26 + ...texecutiondetailsfornotificationrequest.md | 20 + ...executiondetailsfornotificationresponse.md | 40 ++ ...ionscontrollercreateintegrationresponse.md | 36 ++ ...controllergetactiveintegrationsresponse.md | 38 ++ ...ontrollergetwebhooksupportstatusrequest.md | 17 + ...ntrollergetwebhooksupportstatusresponse.md | 23 + ...tionscontrollerlistintegrationsresponse.md | 38 ++ ...tionscontrollerremoveintegrationrequest.md | 17 + ...ionscontrollerremoveintegrationresponse.md | 38 ++ ...ontrollersetintegrationasprimaryrequest.md | 17 + ...ntrollersetintegrationasprimaryresponse.md | 36 ++ ...scontrollerupdateintegrationbyidrequest.md | 19 + ...controllerupdateintegrationbyidresponse.md | 36 ++ .../messagescontrollerdeletemessagerequest.md | 17 + ...messagescontrollerdeletemessageresponse.md | 26 + ...lerdeletemessagesbytransactionidrequest.md | 18 + ...erdeletemessagesbytransactionidresponse.md | 21 + .../messagescontrollergetmessagesrequest.md | 19 + .../messagescontrollergetmessagesresponse.md | 30 ++ ...ntrollercreatenotificationgroupresponse.md | 27 + ...ontrollerdeletenotificationgrouprequest.md | 17 + ...ntrollerdeletenotificationgroupresponse.md | 26 + ...pscontrollergetnotificationgrouprequest.md | 17 + ...scontrollergetnotificationgroupresponse.md | 27 + ...ontrollerlistnotificationgroupsresponse.md | 29 + ...ontrollerupdatenotificationgrouprequest.md | 21 + ...ntrollerupdatenotificationgroupresponse.md | 27 + ...scontrollergetactivitygraphstatsrequest.md | 15 + ...controllergetactivitygraphstatsresponse.md | 34 ++ ...tionscontrollergetactivitystatsresponse.md | 26 + ...cationscontrollergetnotificationrequest.md | 17 + ...ationscontrollergetnotificationresponse.md | 27 + ...tionscontrollerlistnotificationsrequest.md | 35 ++ ...ionscontrollerlistnotificationsresponse.md | 30 ++ docs/models/operations/parameter.md | 17 + docs/models/operations/queryparamchannel.md | 17 + ...controllerbulkcreatesubscribersresponse.md | 21 + ...criberscontrollerchataccessoauthrequest.md | 24 + ...riberscontrollerchataccessoauthresponse.md | 21 + ...iberscontrollerchatoauthcallbackrequest.md | 26 + ...berscontrollerchatoauthcallbackresponse.md | 23 + ...controllerchatoauthcallbackresponsebody.md | 14 + ...iberscontrollercreatesubscriberresponse.md | 30 ++ ...ollerdeletesubscribercredentialsrequest.md | 19 + ...llerdeletesubscribercredentialsresponse.md | 21 + ...rscontrollergetnotificationsfeedrequest.md | 24 + ...scontrollergetnotificationsfeedresponse.md | 37 ++ ...trollergetnotificationsfeedresponsebody.md | 32 ++ ...ergetsubscriberpreferencebylevelrequest.md | 20 + ...rgetsubscriberpreferencebylevelresponse.md | 30 ++ ...bscriberscontrollergetsubscriberrequest.md | 18 + ...scriberscontrollergetsubscriberresponse.md | 30 ++ ...scriberscontrollergetunseencountrequest.md | 21 + ...criberscontrollergetunseencountresponse.md | 25 + ...trollerlistsubscriberpreferencesrequest.md | 18 + ...rollerlistsubscriberpreferencesresponse.md | 38 ++ ...criberscontrollerlistsubscribersrequest.md | 16 + ...riberscontrollerlistsubscribersresponse.md | 37 ++ ...rscontrollerlistsubscribersresponsebody.md | 32 ++ ...riberscontrollermarkactionasseenrequest.md | 25 + ...iberscontrollermarkactionasseenresponse.md | 47 ++ ...erscontrollermarkallunreadasreadrequest.md | 21 + ...rscontrollermarkallunreadasreadresponse.md | 23 + ...scriberscontrollermarkmessagesasrequest.md | 22 + ...criberscontrollermarkmessagesasresponse.md | 25 + ...ontrollermodifysubscriberchannelrequest.md | 24 + ...ntrollermodifysubscriberchannelresponse.md | 30 ++ ...riberscontrollerremovesubscriberrequest.md | 17 + ...iberscontrollerremovesubscriberresponse.md | 26 + ...ontrollerupdatesubscriberchannelrequest.md | 24 + ...ntrollerupdatesubscriberchannelresponse.md | 30 ++ ...pdatesubscriberglobalpreferencesrequest.md | 19 + ...datesubscriberglobalpreferencesresponse.md | 36 ++ ...rollerupdatesubscriberonlineflagrequest.md | 21 + ...ollerupdatesubscriberonlineflagresponse.md | 30 ++ ...rollerupdatesubscriberpreferencerequest.md | 21 + ...ollerupdatesubscriberpreferenceresponse.md | 36 ++ ...riberscontrollerupdatesubscriberrequest.md | 19 + ...iberscontrollerupdatesubscriberresponse.md | 30 ++ .../topicscontrolleraddsubscribersrequest.md | 23 + .../topicscontrolleraddsubscribersresponse.md | 21 + .../topicscontrollercreatetopicresponse.md | 25 + .../topicscontrollerdeletetopicrequest.md | 17 + .../topicscontrollerdeletetopicresponse.md | 21 + .../topicscontrollergettopicrequest.md | 17 + .../topicscontrollergettopicresponse.md | 31 ++ ...picscontrollergettopicsubscriberrequest.md | 19 + ...icscontrollergettopicsubscriberresponse.md | 30 ++ .../topicscontrollerlisttopicsrequest.md | 17 + .../topicscontrollerlisttopicsresponse.md | 38 ++ ...opicscontrollerremovesubscribersrequest.md | 23 + ...picscontrollerremovesubscribersresponse.md | 21 + .../topicscontrollerrenametopicrequest.md | 21 + .../topicscontrollerrenametopicresponse.md | 31 ++ docs/sdks/apikeys/README.md | 79 +++ docs/sdks/authentication/README.md | 175 ++++++ docs/sdks/credentials/README.md | 251 +++++++++ docs/sdks/environments/README.md | 154 ++++++ docs/sdks/executiondetails/README.md | 84 +++ docs/sdks/integrations/README.md | 453 ++++++++++++++++ docs/sdks/messages/README.md | 230 ++++++++ docs/sdks/notifications/README.md | 187 +++++++ docs/sdks/novu/README.md | 437 +++++++++++++++ docs/sdks/novumessages/README.md | 252 +++++++++ docs/sdks/novunotifications/README.md | 167 ++++++ docs/sdks/novusubscribers/README.md | 249 +++++++++ docs/sdks/preferences/README.md | 315 +++++++++++ docs/sdks/properties/README.md | 85 +++ docs/sdks/stats/README.md | 152 ++++++ docs/sdks/subscribers/README.md | 470 ++++++++++++++++ docs/sdks/topics/README.md | 386 ++++++++++++++ docs/sdks/webhooks/README.md | 80 +++ docs/sdks/workflowgroups/README.md | 382 +++++++++++++ src/core.ts | 13 + src/funcs/cancelByTransactionId.ts | 154 ++++++ src/funcs/environmentsApiKeysList.ts | 124 +++++ src/funcs/environmentsList.ts | 124 +++++ src/funcs/environmentsRetrieve.ts | 124 +++++ src/funcs/executionDetailsRetrieve.ts | 157 ++++++ src/funcs/integrationsCreate.ts | 144 +++++ src/funcs/integrationsDelete.ts | 151 ++++++ src/funcs/integrationsList.ts | 126 +++++ src/funcs/integrationsListActive.ts | 127 +++++ src/funcs/integrationsSetAsPrimary.ts | 156 ++++++ src/funcs/integrationsUpdate.ts | 159 ++++++ src/funcs/integrationsWebhooksRetrieve.ts | 160 ++++++ src/funcs/messagesDelete.ts | 155 ++++++ src/funcs/messagesDeleteByTransactionId.ts | 169 ++++++ src/funcs/messagesRetrieve.ts | 153 ++++++ src/funcs/notificationsList.ts | 151 ++++++ src/funcs/notificationsRetrieve.ts | 151 ++++++ src/funcs/notificationsStatsGraph.ts | 152 ++++++ src/funcs/notificationsStatsRetrieve.ts | 123 +++++ ...ubscribersAuthenticationChatAccessOauth.ts | 160 ++++++ ...rsAuthenticationChatAccessOauthCallBack.ts | 161 ++++++ src/funcs/subscribersCreate.ts | 144 +++++ src/funcs/subscribersCreateBulk.ts | 146 +++++ src/funcs/subscribersCredentialsAppend.ts | 168 ++++++ src/funcs/subscribersCredentialsDelete.ts | 168 ++++++ src/funcs/subscribersCredentialsUpdate.ts | 166 ++++++ src/funcs/subscribersDelete.ts | 154 ++++++ src/funcs/subscribersList.ts | 203 +++++++ src/funcs/subscribersMessagesMarkAll.ts | 159 ++++++ src/funcs/subscribersMessagesMarkAllAs.ts | 159 ++++++ src/funcs/subscribersMessagesUpdateAsSeen.ts | 160 ++++++ src/funcs/subscribersNotificationsRetrieve.ts | 159 ++++++ .../subscribersNotificationsUnseenCount.ts | 155 ++++++ src/funcs/subscribersPreferencesList.ts | 163 ++++++ .../subscribersPreferencesRetrieveByLevel.ts | 161 ++++++ src/funcs/subscribersPreferencesUpdate.ts | 160 ++++++ .../subscribersPreferencesUpdateGlobal.ts | 166 ++++++ .../subscribersPropertiesUpdateOnlineFlag.ts | 169 ++++++ src/funcs/subscribersRetrieve.ts | 162 ++++++ src/funcs/subscribersUpdate.ts | 160 ++++++ src/funcs/topicsCreate.ts | 142 +++++ src/funcs/topicsDelete.ts | 153 ++++++ src/funcs/topicsList.ts | 148 ++++++ src/funcs/topicsRename.ts | 158 ++++++ src/funcs/topicsRetrieve.ts | 152 ++++++ src/funcs/topicsSubscribersAssign.ts | 162 ++++++ src/funcs/topicsSubscribersDelete.ts | 164 ++++++ src/funcs/topicsSubscribersRetrieve.ts | 164 ++++++ src/funcs/trigger.ts | 145 +++++ src/funcs/triggerBroadcast.ts | 146 +++++ src/funcs/triggerBulk.ts | 144 +++++ src/funcs/workflowGroupsCreate.ts | 145 +++++ src/funcs/workflowGroupsDelete.ts | 157 ++++++ src/funcs/workflowGroupsList.ts | 127 +++++ src/funcs/workflowGroupsRetrieve.ts | 157 ++++++ src/funcs/workflowGroupsUpdate.ts | 164 ++++++ src/hooks/hooks.ts | 112 ++++ src/hooks/index.ts | 6 + src/hooks/registration.ts | 14 + src/hooks/types.ts | 102 ++++ src/index.ts | 7 + src/lib/base64.ts | 37 ++ src/lib/config.ts | 61 +++ src/lib/dlv.ts | 53 ++ src/lib/encodings.ts | 449 ++++++++++++++++ src/lib/files.ts | 40 ++ src/lib/http.ts | 323 +++++++++++ src/lib/is-plain-object.ts | 43 ++ src/lib/logger.ts | 9 + src/lib/matchers.ts | 322 +++++++++++ src/lib/primitives.ts | 60 +++ src/lib/retries.ts | 219 ++++++++ src/lib/schemas.ts | 86 +++ src/lib/sdks.ts | 388 ++++++++++++++ src/lib/security.ts | 253 +++++++++ src/lib/url.ts | 33 ++ .../components/activitiesresponsedto.ts | 78 +++ .../components/activitygraphstatesresponse.ts | 118 +++++ .../activitynotificationresponsedto.ts | 166 ++++++ ...tivitynotificationsubscriberresponsedto.ts | 103 ++++ ...activitynotificationtemplateresponsedto.ts | 94 ++++ .../components/activitystatsresponsedto.ts | 70 +++ .../components/addsubscribersrequestdto.ts | 69 +++ src/models/components/apikey.ts | 72 +++ .../components/bulksubscribercreatedto.ts | 66 +++ src/models/components/bulktriggereventdto.ts | 72 +++ src/models/components/channelcredentials.ts | 118 +++++ src/models/components/channelpreference.ts | 113 ++++ src/models/components/channelsettings.ts | 150 ++++++ .../components/createintegrationrequestdto.ts | 158 ++++++ .../createnotificationgrouprequestdto.ts | 69 +++ .../components/createsubscriberrequestdto.ts | 156 ++++++ .../components/createtopicrequestdto.ts | 76 +++ .../components/createtopicresponsedto.ts | 85 +++ src/models/components/credentialsdto.ts | 272 ++++++++++ src/models/components/databooleandto.ts | 62 +++ src/models/components/delayregularmetadata.ts | 136 +++++ .../components/delayscheduledmetadata.ts | 99 ++++ .../components/deletemessageresponsedto.ts | 111 ++++ .../deletenotificationgroupresponsedto.ts | 117 ++++ .../components/deletesubscriberresponsedto.ts | 114 ++++ .../components/digestregularmetadata.ts | 183 +++++++ src/models/components/digesttimedmetadata.ts | 150 ++++++ src/models/components/emailblock.ts | 108 ++++ src/models/components/emailblockstyles.ts | 93 ++++ .../components/environmentresponsedto.ts | 103 ++++ .../components/executiondetailsresponsedto.ts | 244 +++++++++ src/models/components/feedresponsedto.ts | 80 +++ src/models/components/fieldfilterpart.ts | 137 +++++ .../components/filtertopicsresponsedto.ts | 84 +++ .../getsubscriberpreferencesresponsedto.ts | 93 ++++ src/models/components/gettopicresponsedto.ts | 99 ++++ src/models/components/index.ts | 85 +++ .../components/integrationresponsedto.ts | 176 ++++++ .../components/markallmessageasrequestdto.ts | 163 ++++++ .../components/markmessageactionasseendto.ts | 170 ++++++ src/models/components/messageaction.ts | 110 ++++ src/models/components/messageactionresult.ts | 150 ++++++ src/models/components/messagebutton.ts | 98 ++++ src/models/components/messagecta.ts | 109 ++++ src/models/components/messagectadata.ts | 62 +++ src/models/components/messageentity.ts | 54 ++ .../components/messagemarkasrequestdto.ts | 144 +++++ src/models/components/messageresponsedto.ts | 500 ++++++++++++++++++ src/models/components/messagetemplate.ts | 56 ++ src/models/components/notificationgroup.ts | 97 ++++ .../notificationgroupresponsedto.ts | 99 ++++ src/models/components/notificationstep.ts | 341 ++++++++++++ .../components/notificationstepvariant.ts | 358 +++++++++++++ src/models/components/notificationtrigger.ts | 115 ++++ .../components/notificationtriggervariable.ts | 68 +++ src/models/components/preference.ts | 78 +++ src/models/components/preferencechannels.ts | 91 ++++ .../components/removesubscribersrequestdto.ts | 71 +++ .../components/renametopicrequestdto.ts | 69 +++ .../components/renametopicresponsedto.ts | 99 ++++ src/models/components/security.ts | 71 +++ src/models/components/stepfilter.ts | 140 +++++ src/models/components/subscriberpayloaddto.ts | 144 +++++ .../components/subscriberresponsedto.ts | 167 ++++++ src/models/components/templateresponse.ts | 99 ++++ src/models/components/tenantpayloaddto.ts | 124 +++++ src/models/components/timedconfig.ts | 200 +++++++ src/models/components/topicdto.ts | 95 ++++ src/models/components/topicpayloaddto.ts | 95 ++++ src/models/components/topicsubscriberdto.ts | 101 ++++ .../components/triggereventrequestdto.ts | 450 ++++++++++++++++ .../components/triggereventresponsedto.ts | 131 +++++ .../components/triggereventtoallrequestdto.ts | 368 +++++++++++++ src/models/components/unseencountresponse.ts | 66 +++ .../components/updateintegrationrequestdto.ts | 123 +++++ .../updatesubscriberchannelrequestdto.ts | 145 +++++ ...tesubscriberglobalpreferencesrequestdto.ts | 95 ++++ .../updatesubscriberonlineflagrequestdto.ts | 71 +++ .../updatesubscriberpreferencerequestdto.ts | 87 +++ .../updatesubscriberpreferenceresponsedto.ts | 93 ++++ .../components/updatesubscriberrequestdto.ts | 146 +++++ src/models/components/workflowresponse.ts | 293 ++++++++++ src/models/errors/httpclienterrors.ts | 62 +++ src/models/errors/index.ts | 7 + src/models/errors/sdkerror.ts | 27 + src/models/errors/sdkvalidationerror.ts | 97 ++++ ...nmentscontrollerv1getcurrentenvironment.ts | 96 ++++ ...ironmentscontrollerv1listmyenvironments.ts | 96 ++++ ...entscontrollerv1listorganizationapikeys.ts | 94 ++++ .../eventscontrollerbroadcasteventtoall.ts | 95 ++++ .../operations/eventscontrollercancel.ts | 144 +++++ .../operations/eventscontrollertrigger.ts | 84 +++ .../operations/eventscontrollertriggerbulk.ts | 87 +++ ...ollergetexecutiondetailsfornotification.ts | 176 ++++++ src/models/operations/index.ts | 60 +++ ...integrationscontrollercreateintegration.ts | 96 ++++ ...grationscontrollergetactiveintegrations.ts | 96 ++++ ...ationscontrollergetwebhooksupportstatus.ts | 167 ++++++ .../integrationscontrollerlistintegrations.ts | 96 ++++ ...integrationscontrollerremoveintegration.ts | 168 ++++++ ...ationscontrollersetintegrationasprimary.ts | 168 ++++++ ...grationscontrollerupdateintegrationbyid.ts | 182 +++++++ .../messagescontrollerdeletemessage.ts | 157 ++++++ ...controllerdeletemessagesbytransactionid.ts | 202 +++++++ .../messagescontrollergetmessages.ts | 195 +++++++ ...groupscontrollercreatenotificationgroup.ts | 95 ++++ ...groupscontrollerdeletenotificationgroup.ts | 166 ++++++ ...iongroupscontrollergetnotificationgroup.ts | 165 ++++++ ...ngroupscontrollerlistnotificationgroups.ts | 95 ++++ ...groupscontrollerupdatenotificationgroup.ts | 182 +++++++ ...icationscontrollergetactivitygraphstats.ts | 168 ++++++ ...notificationscontrollergetactivitystats.ts | 96 ++++ .../notificationscontrollergetnotification.ts | 167 ++++++ ...otificationscontrollerlistnotifications.ts | 224 ++++++++ ...scriberscontrollerbulkcreatesubscribers.ts | 89 ++++ .../subscriberscontrollerchataccessoauth.ts | 175 ++++++ .../subscriberscontrollerchatoauthcallback.ts | 254 +++++++++ .../subscriberscontrollercreatesubscriber.ts | 95 ++++ ...rscontrollerdeletesubscribercredentials.ts | 162 ++++++ ...bscriberscontrollergetnotificationsfeed.ts | 288 ++++++++++ .../subscriberscontrollergetsubscriber.ts | 169 ++++++ ...ontrollergetsubscriberpreferencebylevel.ts | 216 ++++++++ .../subscriberscontrollergetunseencount.ts | 171 ++++++ ...berscontrollerlistsubscriberpreferences.ts | 178 +++++++ .../subscriberscontrollerlistsubscribers.ts | 267 ++++++++++ .../subscriberscontrollermarkactionasseen.ts | 188 +++++++ ...ubscriberscontrollermarkallunreadasread.ts | 182 +++++++ .../subscriberscontrollermarkmessagesas.ts | 175 ++++++ ...riberscontrollermodifysubscriberchannel.ts | 184 +++++++ .../subscriberscontrollerremovesubscriber.ts | 166 ++++++ .../subscriberscontrollerupdatesubscriber.ts | 180 +++++++ ...riberscontrollerupdatesubscriberchannel.ts | 184 +++++++ ...rollerupdatesubscriberglobalpreferences.ts | 184 +++++++ ...erscontrollerupdatesubscriberonlineflag.ts | 183 +++++++ ...erscontrollerupdatesubscriberpreference.ts | 187 +++++++ .../topicscontrolleraddsubscribers.ts | 160 ++++++ .../operations/topicscontrollercreatetopic.ts | 87 +++ .../operations/topicscontrollerdeletetopic.ts | 145 +++++ .../operations/topicscontrollergettopic.ts | 147 +++++ .../topicscontrollergettopicsubscriber.ts | 172 ++++++ .../operations/topicscontrollerlisttopics.ts | 164 ++++++ .../topicscontrollerremovesubscribers.ts | 174 ++++++ .../operations/topicscontrollerrenametopic.ts | 164 ++++++ src/sdk/apikeys.ts | 24 + src/sdk/authentication.ts | 41 ++ src/sdk/credentials.ts | 77 +++ src/sdk/environments.ts | 41 ++ src/sdk/executiondetails.ts | 28 + src/sdk/index.ts | 5 + src/sdk/integrations.ts | 113 ++++ src/sdk/messages.ts | 68 +++ src/sdk/notifications.ts | 45 ++ src/sdk/novumessages.ts | 59 +++ src/sdk/novunotifications.ts | 39 ++ src/sdk/novusubscribers.ts | 70 +++ src/sdk/preferences.ts | 84 +++ src/sdk/properties.ts | 33 ++ src/sdk/sdk.ts | 139 +++++ src/sdk/stats.ts | 37 ++ src/sdk/subscribers.ts | 167 ++++++ src/sdk/topics.ts | 108 ++++ src/sdk/webhooks.ts | 27 + src/sdk/workflowgroups.ts | 111 ++++ src/types/blobs.ts | 31 ++ src/types/constdatetime.ts | 15 + src/types/enums.ts | 16 + src/types/fp.ts | 50 ++ src/types/index.ts | 11 + src/types/operations.ts | 99 ++++ src/types/rfcdate.ts | 54 ++ src/types/streams.ts | 21 + 527 files changed, 43089 insertions(+) create mode 100644 docs/lib/utils/retryconfig.md create mode 100644 docs/models/components/activitiesresponsedto.md create mode 100644 docs/models/components/activitygraphstatesresponse.md create mode 100644 docs/models/components/activitynotificationresponsedto.md create mode 100644 docs/models/components/activitynotificationresponsedtochannels.md create mode 100644 docs/models/components/activitynotificationsubscriberresponsedto.md create mode 100644 docs/models/components/activitynotificationtemplateresponsedto.md create mode 100644 docs/models/components/activitystatsresponsedto.md create mode 100644 docs/models/components/actor.md create mode 100644 docs/models/components/addsubscribersrequestdto.md create mode 100644 docs/models/components/apikey.md create mode 100644 docs/models/components/backoffunit.md create mode 100644 docs/models/components/bulksubscribercreatedto.md create mode 100644 docs/models/components/bulktriggereventdto.md create mode 100644 docs/models/components/channel.md create mode 100644 docs/models/components/channelcredentials.md create mode 100644 docs/models/components/channelpreference.md create mode 100644 docs/models/components/channelpreferencetype.md create mode 100644 docs/models/components/channels.md create mode 100644 docs/models/components/channelsettings.md create mode 100644 docs/models/components/content.md create mode 100644 docs/models/components/controls.md create mode 100644 docs/models/components/createintegrationrequestdto.md create mode 100644 docs/models/components/createintegrationrequestdtochannel.md create mode 100644 docs/models/components/createnotificationgrouprequestdto.md create mode 100644 docs/models/components/createsubscriberrequestdto.md create mode 100644 docs/models/components/createsubscriberrequestdtodata.md create mode 100644 docs/models/components/createtopicrequestdto.md create mode 100644 docs/models/components/createtopicresponsedto.md create mode 100644 docs/models/components/credentialsdto.md create mode 100644 docs/models/components/data.md create mode 100644 docs/models/components/databooleandto.md create mode 100644 docs/models/components/delayregularmetadata.md create mode 100644 docs/models/components/delayregularmetadatatype.md create mode 100644 docs/models/components/delayregularmetadataunit.md create mode 100644 docs/models/components/delayscheduledmetadata.md create mode 100644 docs/models/components/delayscheduledmetadatatype.md create mode 100644 docs/models/components/deletemessageresponsedto.md create mode 100644 docs/models/components/deletemessageresponsedtostatus.md create mode 100644 docs/models/components/deletenotificationgroupresponsedto.md create mode 100644 docs/models/components/deletenotificationgroupresponsedtostatus.md create mode 100644 docs/models/components/deletesubscriberresponsedto.md create mode 100644 docs/models/components/deletesubscriberresponsedtostatus.md create mode 100644 docs/models/components/digestregularmetadata.md create mode 100644 docs/models/components/digestregularmetadatatype.md create mode 100644 docs/models/components/digesttimedmetadata.md create mode 100644 docs/models/components/digesttimedmetadatatype.md create mode 100644 docs/models/components/digesttimedmetadataunit.md create mode 100644 docs/models/components/emailblock.md create mode 100644 docs/models/components/emailblockstyles.md create mode 100644 docs/models/components/emailblocktype.md create mode 100644 docs/models/components/environmentresponsedto.md create mode 100644 docs/models/components/executiondetailsresponsedto.md create mode 100644 docs/models/components/feedid.md create mode 100644 docs/models/components/feedidentifier.md create mode 100644 docs/models/components/feedresponsedto.md create mode 100644 docs/models/components/fieldfilterpart.md create mode 100644 docs/models/components/filtertopicsresponsedto.md create mode 100644 docs/models/components/getsubscriberpreferencesresponsedto.md create mode 100644 docs/models/components/gettopicresponsedto.md create mode 100644 docs/models/components/integrationresponsedto.md create mode 100644 docs/models/components/integrationresponsedtochannel.md create mode 100644 docs/models/components/markallmessageasrequestdto.md create mode 100644 docs/models/components/markallmessageasrequestdtomarkas.md create mode 100644 docs/models/components/markas.md create mode 100644 docs/models/components/markmessageactionasseendto.md create mode 100644 docs/models/components/markmessageactionasseendtopayload.md create mode 100644 docs/models/components/markmessageactionasseendtostatus.md create mode 100644 docs/models/components/messageaction.md create mode 100644 docs/models/components/messageactionresult.md create mode 100644 docs/models/components/messageactionresultpayload.md create mode 100644 docs/models/components/messageactionresulttype.md create mode 100644 docs/models/components/messageactionstatus.md create mode 100644 docs/models/components/messagebutton.md create mode 100644 docs/models/components/messagebuttontype.md create mode 100644 docs/models/components/messagecta.md create mode 100644 docs/models/components/messagectadata.md create mode 100644 docs/models/components/messagectatype.md create mode 100644 docs/models/components/messageentity.md create mode 100644 docs/models/components/messageid.md create mode 100644 docs/models/components/messagemarkasrequestdto.md create mode 100644 docs/models/components/messageresponsedto.md create mode 100644 docs/models/components/messageresponsedtochannel.md create mode 100644 docs/models/components/messageresponsedtooverrides.md create mode 100644 docs/models/components/messageresponsedtopayload.md create mode 100644 docs/models/components/messageresponsedtostatus.md create mode 100644 docs/models/components/messagetemplate.md create mode 100644 docs/models/components/metadata.md create mode 100644 docs/models/components/monthlytype.md create mode 100644 docs/models/components/notificationgroup.md create mode 100644 docs/models/components/notificationgroupresponsedto.md create mode 100644 docs/models/components/notificationstep.md create mode 100644 docs/models/components/notificationstepvariant.md create mode 100644 docs/models/components/notificationstepvariantmetadata.md create mode 100644 docs/models/components/notificationstepvariantparentid.md create mode 100644 docs/models/components/notificationstepvariantreplycallback.md create mode 100644 docs/models/components/notificationtrigger.md create mode 100644 docs/models/components/notificationtriggertype.md create mode 100644 docs/models/components/notificationtriggervariable.md create mode 100644 docs/models/components/on.md create mode 100644 docs/models/components/operator.md create mode 100644 docs/models/components/ordinal.md create mode 100644 docs/models/components/ordinalvalue.md create mode 100644 docs/models/components/overrides.md create mode 100644 docs/models/components/parentid.md create mode 100644 docs/models/components/payload.md create mode 100644 docs/models/components/preference.md create mode 100644 docs/models/components/preferencechannels.md create mode 100644 docs/models/components/providerid.md create mode 100644 docs/models/components/removesubscribersrequestdto.md create mode 100644 docs/models/components/renametopicrequestdto.md create mode 100644 docs/models/components/renametopicresponsedto.md create mode 100644 docs/models/components/replycallback.md create mode 100644 docs/models/components/security.md create mode 100644 docs/models/components/source.md create mode 100644 docs/models/components/status.md create mode 100644 docs/models/components/stepfilter.md create mode 100644 docs/models/components/stepfiltertype.md create mode 100644 docs/models/components/subscriberpayloaddto.md create mode 100644 docs/models/components/subscriberresponsedto.md create mode 100644 docs/models/components/templateresponse.md create mode 100644 docs/models/components/tenant.md create mode 100644 docs/models/components/tenantpayloaddto.md create mode 100644 docs/models/components/tenantpayloaddtodata.md create mode 100644 docs/models/components/textalign.md create mode 100644 docs/models/components/timedconfig.md create mode 100644 docs/models/components/tlsoptions.md create mode 100644 docs/models/components/to.md create mode 100644 docs/models/components/topicdto.md create mode 100644 docs/models/components/topicpayloaddto.md create mode 100644 docs/models/components/topicsubscriberdto.md create mode 100644 docs/models/components/triggereventrequestdto.md create mode 100644 docs/models/components/triggereventresponsedto.md create mode 100644 docs/models/components/triggereventresponsedtostatus.md create mode 100644 docs/models/components/triggereventtoallrequestdto.md create mode 100644 docs/models/components/triggereventtoallrequestdtoactor.md create mode 100644 docs/models/components/triggereventtoallrequestdtooverrides.md create mode 100644 docs/models/components/triggereventtoallrequestdtopayload.md create mode 100644 docs/models/components/triggereventtoallrequestdtotenant.md create mode 100644 docs/models/components/type.md create mode 100644 docs/models/components/unit.md create mode 100644 docs/models/components/unseencountresponse.md create mode 100644 docs/models/components/updateintegrationrequestdto.md create mode 100644 docs/models/components/updatesubscriberchannelrequestdto.md create mode 100644 docs/models/components/updatesubscriberchannelrequestdtoproviderid.md create mode 100644 docs/models/components/updatesubscriberglobalpreferencesrequestdto.md create mode 100644 docs/models/components/updatesubscriberonlineflagrequestdto.md create mode 100644 docs/models/components/updatesubscriberpreferencerequestdto.md create mode 100644 docs/models/components/updatesubscriberpreferenceresponsedto.md create mode 100644 docs/models/components/updatesubscriberrequestdto.md create mode 100644 docs/models/components/updatesubscriberrequestdtodata.md create mode 100644 docs/models/components/value.md create mode 100644 docs/models/components/weekdays.md create mode 100644 docs/models/components/workflowintegrationstatus.md create mode 100644 docs/models/components/workflowresponse.md create mode 100644 docs/models/components/workflowresponsedata.md create mode 100644 docs/models/operations/channel.md create mode 100644 docs/models/operations/channels.md create mode 100644 docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md create mode 100644 docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md create mode 100644 docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md create mode 100644 docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md create mode 100644 docs/models/operations/eventscontrollercancelrequest.md create mode 100644 docs/models/operations/eventscontrollercancelresponse.md create mode 100644 docs/models/operations/eventscontrollertriggerbulkresponse.md create mode 100644 docs/models/operations/eventscontrollertriggerresponse.md create mode 100644 docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md create mode 100644 docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md create mode 100644 docs/models/operations/integrationscontrollercreateintegrationresponse.md create mode 100644 docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md create mode 100644 docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md create mode 100644 docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md create mode 100644 docs/models/operations/integrationscontrollerlistintegrationsresponse.md create mode 100644 docs/models/operations/integrationscontrollerremoveintegrationrequest.md create mode 100644 docs/models/operations/integrationscontrollerremoveintegrationresponse.md create mode 100644 docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md create mode 100644 docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md create mode 100644 docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md create mode 100644 docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md create mode 100644 docs/models/operations/messagescontrollerdeletemessagerequest.md create mode 100644 docs/models/operations/messagescontrollerdeletemessageresponse.md create mode 100644 docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md create mode 100644 docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md create mode 100644 docs/models/operations/messagescontrollergetmessagesrequest.md create mode 100644 docs/models/operations/messagescontrollergetmessagesresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md create mode 100644 docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md create mode 100644 docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md create mode 100644 docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md create mode 100644 docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md create mode 100644 docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md create mode 100644 docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md create mode 100644 docs/models/operations/notificationscontrollergetactivitystatsresponse.md create mode 100644 docs/models/operations/notificationscontrollergetnotificationrequest.md create mode 100644 docs/models/operations/notificationscontrollergetnotificationresponse.md create mode 100644 docs/models/operations/notificationscontrollerlistnotificationsrequest.md create mode 100644 docs/models/operations/notificationscontrollerlistnotificationsresponse.md create mode 100644 docs/models/operations/parameter.md create mode 100644 docs/models/operations/queryparamchannel.md create mode 100644 docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md create mode 100644 docs/models/operations/subscriberscontrollerchataccessoauthrequest.md create mode 100644 docs/models/operations/subscriberscontrollerchataccessoauthresponse.md create mode 100644 docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md create mode 100644 docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md create mode 100644 docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md create mode 100644 docs/models/operations/subscriberscontrollercreatesubscriberresponse.md create mode 100644 docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md create mode 100644 docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md create mode 100644 docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md create mode 100644 docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md create mode 100644 docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetsubscriberrequest.md create mode 100644 docs/models/operations/subscriberscontrollergetsubscriberresponse.md create mode 100644 docs/models/operations/subscriberscontrollergetunseencountrequest.md create mode 100644 docs/models/operations/subscriberscontrollergetunseencountresponse.md create mode 100644 docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md create mode 100644 docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md create mode 100644 docs/models/operations/subscriberscontrollerlistsubscribersrequest.md create mode 100644 docs/models/operations/subscriberscontrollerlistsubscribersresponse.md create mode 100644 docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md create mode 100644 docs/models/operations/subscriberscontrollermarkactionasseenrequest.md create mode 100644 docs/models/operations/subscriberscontrollermarkactionasseenresponse.md create mode 100644 docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md create mode 100644 docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md create mode 100644 docs/models/operations/subscriberscontrollermarkmessagesasrequest.md create mode 100644 docs/models/operations/subscriberscontrollermarkmessagesasresponse.md create mode 100644 docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md create mode 100644 docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md create mode 100644 docs/models/operations/subscriberscontrollerremovesubscriberrequest.md create mode 100644 docs/models/operations/subscriberscontrollerremovesubscriberresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md create mode 100644 docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md create mode 100644 docs/models/operations/topicscontrolleraddsubscribersrequest.md create mode 100644 docs/models/operations/topicscontrolleraddsubscribersresponse.md create mode 100644 docs/models/operations/topicscontrollercreatetopicresponse.md create mode 100644 docs/models/operations/topicscontrollerdeletetopicrequest.md create mode 100644 docs/models/operations/topicscontrollerdeletetopicresponse.md create mode 100644 docs/models/operations/topicscontrollergettopicrequest.md create mode 100644 docs/models/operations/topicscontrollergettopicresponse.md create mode 100644 docs/models/operations/topicscontrollergettopicsubscriberrequest.md create mode 100644 docs/models/operations/topicscontrollergettopicsubscriberresponse.md create mode 100644 docs/models/operations/topicscontrollerlisttopicsrequest.md create mode 100644 docs/models/operations/topicscontrollerlisttopicsresponse.md create mode 100644 docs/models/operations/topicscontrollerremovesubscribersrequest.md create mode 100644 docs/models/operations/topicscontrollerremovesubscribersresponse.md create mode 100644 docs/models/operations/topicscontrollerrenametopicrequest.md create mode 100644 docs/models/operations/topicscontrollerrenametopicresponse.md create mode 100644 docs/sdks/apikeys/README.md create mode 100644 docs/sdks/authentication/README.md create mode 100644 docs/sdks/credentials/README.md create mode 100644 docs/sdks/environments/README.md create mode 100644 docs/sdks/executiondetails/README.md create mode 100644 docs/sdks/integrations/README.md create mode 100644 docs/sdks/messages/README.md create mode 100644 docs/sdks/notifications/README.md create mode 100644 docs/sdks/novu/README.md create mode 100644 docs/sdks/novumessages/README.md create mode 100644 docs/sdks/novunotifications/README.md create mode 100644 docs/sdks/novusubscribers/README.md create mode 100644 docs/sdks/preferences/README.md create mode 100644 docs/sdks/properties/README.md create mode 100644 docs/sdks/stats/README.md create mode 100644 docs/sdks/subscribers/README.md create mode 100644 docs/sdks/topics/README.md create mode 100644 docs/sdks/webhooks/README.md create mode 100644 docs/sdks/workflowgroups/README.md create mode 100644 src/core.ts create mode 100644 src/funcs/cancelByTransactionId.ts create mode 100644 src/funcs/environmentsApiKeysList.ts create mode 100644 src/funcs/environmentsList.ts create mode 100644 src/funcs/environmentsRetrieve.ts create mode 100644 src/funcs/executionDetailsRetrieve.ts create mode 100644 src/funcs/integrationsCreate.ts create mode 100644 src/funcs/integrationsDelete.ts create mode 100644 src/funcs/integrationsList.ts create mode 100644 src/funcs/integrationsListActive.ts create mode 100644 src/funcs/integrationsSetAsPrimary.ts create mode 100644 src/funcs/integrationsUpdate.ts create mode 100644 src/funcs/integrationsWebhooksRetrieve.ts create mode 100644 src/funcs/messagesDelete.ts create mode 100644 src/funcs/messagesDeleteByTransactionId.ts create mode 100644 src/funcs/messagesRetrieve.ts create mode 100644 src/funcs/notificationsList.ts create mode 100644 src/funcs/notificationsRetrieve.ts create mode 100644 src/funcs/notificationsStatsGraph.ts create mode 100644 src/funcs/notificationsStatsRetrieve.ts create mode 100644 src/funcs/subscribersAuthenticationChatAccessOauth.ts create mode 100644 src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts create mode 100644 src/funcs/subscribersCreate.ts create mode 100644 src/funcs/subscribersCreateBulk.ts create mode 100644 src/funcs/subscribersCredentialsAppend.ts create mode 100644 src/funcs/subscribersCredentialsDelete.ts create mode 100644 src/funcs/subscribersCredentialsUpdate.ts create mode 100644 src/funcs/subscribersDelete.ts create mode 100644 src/funcs/subscribersList.ts create mode 100644 src/funcs/subscribersMessagesMarkAll.ts create mode 100644 src/funcs/subscribersMessagesMarkAllAs.ts create mode 100644 src/funcs/subscribersMessagesUpdateAsSeen.ts create mode 100644 src/funcs/subscribersNotificationsRetrieve.ts create mode 100644 src/funcs/subscribersNotificationsUnseenCount.ts create mode 100644 src/funcs/subscribersPreferencesList.ts create mode 100644 src/funcs/subscribersPreferencesRetrieveByLevel.ts create mode 100644 src/funcs/subscribersPreferencesUpdate.ts create mode 100644 src/funcs/subscribersPreferencesUpdateGlobal.ts create mode 100644 src/funcs/subscribersPropertiesUpdateOnlineFlag.ts create mode 100644 src/funcs/subscribersRetrieve.ts create mode 100644 src/funcs/subscribersUpdate.ts create mode 100644 src/funcs/topicsCreate.ts create mode 100644 src/funcs/topicsDelete.ts create mode 100644 src/funcs/topicsList.ts create mode 100644 src/funcs/topicsRename.ts create mode 100644 src/funcs/topicsRetrieve.ts create mode 100644 src/funcs/topicsSubscribersAssign.ts create mode 100644 src/funcs/topicsSubscribersDelete.ts create mode 100644 src/funcs/topicsSubscribersRetrieve.ts create mode 100644 src/funcs/trigger.ts create mode 100644 src/funcs/triggerBroadcast.ts create mode 100644 src/funcs/triggerBulk.ts create mode 100644 src/funcs/workflowGroupsCreate.ts create mode 100644 src/funcs/workflowGroupsDelete.ts create mode 100644 src/funcs/workflowGroupsList.ts create mode 100644 src/funcs/workflowGroupsRetrieve.ts create mode 100644 src/funcs/workflowGroupsUpdate.ts create mode 100644 src/hooks/hooks.ts create mode 100644 src/hooks/index.ts create mode 100644 src/hooks/registration.ts create mode 100644 src/hooks/types.ts create mode 100644 src/index.ts create mode 100644 src/lib/base64.ts create mode 100644 src/lib/config.ts create mode 100644 src/lib/dlv.ts create mode 100644 src/lib/encodings.ts create mode 100644 src/lib/files.ts create mode 100644 src/lib/http.ts create mode 100644 src/lib/is-plain-object.ts create mode 100644 src/lib/logger.ts create mode 100644 src/lib/matchers.ts create mode 100644 src/lib/primitives.ts create mode 100644 src/lib/retries.ts create mode 100644 src/lib/schemas.ts create mode 100644 src/lib/sdks.ts create mode 100644 src/lib/security.ts create mode 100644 src/lib/url.ts create mode 100644 src/models/components/activitiesresponsedto.ts create mode 100644 src/models/components/activitygraphstatesresponse.ts create mode 100644 src/models/components/activitynotificationresponsedto.ts create mode 100644 src/models/components/activitynotificationsubscriberresponsedto.ts create mode 100644 src/models/components/activitynotificationtemplateresponsedto.ts create mode 100644 src/models/components/activitystatsresponsedto.ts create mode 100644 src/models/components/addsubscribersrequestdto.ts create mode 100644 src/models/components/apikey.ts create mode 100644 src/models/components/bulksubscribercreatedto.ts create mode 100644 src/models/components/bulktriggereventdto.ts create mode 100644 src/models/components/channelcredentials.ts create mode 100644 src/models/components/channelpreference.ts create mode 100644 src/models/components/channelsettings.ts create mode 100644 src/models/components/createintegrationrequestdto.ts create mode 100644 src/models/components/createnotificationgrouprequestdto.ts create mode 100644 src/models/components/createsubscriberrequestdto.ts create mode 100644 src/models/components/createtopicrequestdto.ts create mode 100644 src/models/components/createtopicresponsedto.ts create mode 100644 src/models/components/credentialsdto.ts create mode 100644 src/models/components/databooleandto.ts create mode 100644 src/models/components/delayregularmetadata.ts create mode 100644 src/models/components/delayscheduledmetadata.ts create mode 100644 src/models/components/deletemessageresponsedto.ts create mode 100644 src/models/components/deletenotificationgroupresponsedto.ts create mode 100644 src/models/components/deletesubscriberresponsedto.ts create mode 100644 src/models/components/digestregularmetadata.ts create mode 100644 src/models/components/digesttimedmetadata.ts create mode 100644 src/models/components/emailblock.ts create mode 100644 src/models/components/emailblockstyles.ts create mode 100644 src/models/components/environmentresponsedto.ts create mode 100644 src/models/components/executiondetailsresponsedto.ts create mode 100644 src/models/components/feedresponsedto.ts create mode 100644 src/models/components/fieldfilterpart.ts create mode 100644 src/models/components/filtertopicsresponsedto.ts create mode 100644 src/models/components/getsubscriberpreferencesresponsedto.ts create mode 100644 src/models/components/gettopicresponsedto.ts create mode 100644 src/models/components/index.ts create mode 100644 src/models/components/integrationresponsedto.ts create mode 100644 src/models/components/markallmessageasrequestdto.ts create mode 100644 src/models/components/markmessageactionasseendto.ts create mode 100644 src/models/components/messageaction.ts create mode 100644 src/models/components/messageactionresult.ts create mode 100644 src/models/components/messagebutton.ts create mode 100644 src/models/components/messagecta.ts create mode 100644 src/models/components/messagectadata.ts create mode 100644 src/models/components/messageentity.ts create mode 100644 src/models/components/messagemarkasrequestdto.ts create mode 100644 src/models/components/messageresponsedto.ts create mode 100644 src/models/components/messagetemplate.ts create mode 100644 src/models/components/notificationgroup.ts create mode 100644 src/models/components/notificationgroupresponsedto.ts create mode 100644 src/models/components/notificationstep.ts create mode 100644 src/models/components/notificationstepvariant.ts create mode 100644 src/models/components/notificationtrigger.ts create mode 100644 src/models/components/notificationtriggervariable.ts create mode 100644 src/models/components/preference.ts create mode 100644 src/models/components/preferencechannels.ts create mode 100644 src/models/components/removesubscribersrequestdto.ts create mode 100644 src/models/components/renametopicrequestdto.ts create mode 100644 src/models/components/renametopicresponsedto.ts create mode 100644 src/models/components/security.ts create mode 100644 src/models/components/stepfilter.ts create mode 100644 src/models/components/subscriberpayloaddto.ts create mode 100644 src/models/components/subscriberresponsedto.ts create mode 100644 src/models/components/templateresponse.ts create mode 100644 src/models/components/tenantpayloaddto.ts create mode 100644 src/models/components/timedconfig.ts create mode 100644 src/models/components/topicdto.ts create mode 100644 src/models/components/topicpayloaddto.ts create mode 100644 src/models/components/topicsubscriberdto.ts create mode 100644 src/models/components/triggereventrequestdto.ts create mode 100644 src/models/components/triggereventresponsedto.ts create mode 100644 src/models/components/triggereventtoallrequestdto.ts create mode 100644 src/models/components/unseencountresponse.ts create mode 100644 src/models/components/updateintegrationrequestdto.ts create mode 100644 src/models/components/updatesubscriberchannelrequestdto.ts create mode 100644 src/models/components/updatesubscriberglobalpreferencesrequestdto.ts create mode 100644 src/models/components/updatesubscriberonlineflagrequestdto.ts create mode 100644 src/models/components/updatesubscriberpreferencerequestdto.ts create mode 100644 src/models/components/updatesubscriberpreferenceresponsedto.ts create mode 100644 src/models/components/updatesubscriberrequestdto.ts create mode 100644 src/models/components/workflowresponse.ts create mode 100644 src/models/errors/httpclienterrors.ts create mode 100644 src/models/errors/index.ts create mode 100644 src/models/errors/sdkerror.ts create mode 100644 src/models/errors/sdkvalidationerror.ts create mode 100644 src/models/operations/environmentscontrollerv1getcurrentenvironment.ts create mode 100644 src/models/operations/environmentscontrollerv1listmyenvironments.ts create mode 100644 src/models/operations/environmentscontrollerv1listorganizationapikeys.ts create mode 100644 src/models/operations/eventscontrollerbroadcasteventtoall.ts create mode 100644 src/models/operations/eventscontrollercancel.ts create mode 100644 src/models/operations/eventscontrollertrigger.ts create mode 100644 src/models/operations/eventscontrollertriggerbulk.ts create mode 100644 src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts create mode 100644 src/models/operations/index.ts create mode 100644 src/models/operations/integrationscontrollercreateintegration.ts create mode 100644 src/models/operations/integrationscontrollergetactiveintegrations.ts create mode 100644 src/models/operations/integrationscontrollergetwebhooksupportstatus.ts create mode 100644 src/models/operations/integrationscontrollerlistintegrations.ts create mode 100644 src/models/operations/integrationscontrollerremoveintegration.ts create mode 100644 src/models/operations/integrationscontrollersetintegrationasprimary.ts create mode 100644 src/models/operations/integrationscontrollerupdateintegrationbyid.ts create mode 100644 src/models/operations/messagescontrollerdeletemessage.ts create mode 100644 src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts create mode 100644 src/models/operations/messagescontrollergetmessages.ts create mode 100644 src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts create mode 100644 src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts create mode 100644 src/models/operations/notificationgroupscontrollergetnotificationgroup.ts create mode 100644 src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts create mode 100644 src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts create mode 100644 src/models/operations/notificationscontrollergetactivitygraphstats.ts create mode 100644 src/models/operations/notificationscontrollergetactivitystats.ts create mode 100644 src/models/operations/notificationscontrollergetnotification.ts create mode 100644 src/models/operations/notificationscontrollerlistnotifications.ts create mode 100644 src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts create mode 100644 src/models/operations/subscriberscontrollerchataccessoauth.ts create mode 100644 src/models/operations/subscriberscontrollerchatoauthcallback.ts create mode 100644 src/models/operations/subscriberscontrollercreatesubscriber.ts create mode 100644 src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts create mode 100644 src/models/operations/subscriberscontrollergetnotificationsfeed.ts create mode 100644 src/models/operations/subscriberscontrollergetsubscriber.ts create mode 100644 src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts create mode 100644 src/models/operations/subscriberscontrollergetunseencount.ts create mode 100644 src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts create mode 100644 src/models/operations/subscriberscontrollerlistsubscribers.ts create mode 100644 src/models/operations/subscriberscontrollermarkactionasseen.ts create mode 100644 src/models/operations/subscriberscontrollermarkallunreadasread.ts create mode 100644 src/models/operations/subscriberscontrollermarkmessagesas.ts create mode 100644 src/models/operations/subscriberscontrollermodifysubscriberchannel.ts create mode 100644 src/models/operations/subscriberscontrollerremovesubscriber.ts create mode 100644 src/models/operations/subscriberscontrollerupdatesubscriber.ts create mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts create mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts create mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts create mode 100644 src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts create mode 100644 src/models/operations/topicscontrolleraddsubscribers.ts create mode 100644 src/models/operations/topicscontrollercreatetopic.ts create mode 100644 src/models/operations/topicscontrollerdeletetopic.ts create mode 100644 src/models/operations/topicscontrollergettopic.ts create mode 100644 src/models/operations/topicscontrollergettopicsubscriber.ts create mode 100644 src/models/operations/topicscontrollerlisttopics.ts create mode 100644 src/models/operations/topicscontrollerremovesubscribers.ts create mode 100644 src/models/operations/topicscontrollerrenametopic.ts create mode 100644 src/sdk/apikeys.ts create mode 100644 src/sdk/authentication.ts create mode 100644 src/sdk/credentials.ts create mode 100644 src/sdk/environments.ts create mode 100644 src/sdk/executiondetails.ts create mode 100644 src/sdk/index.ts create mode 100644 src/sdk/integrations.ts create mode 100644 src/sdk/messages.ts create mode 100644 src/sdk/notifications.ts create mode 100644 src/sdk/novumessages.ts create mode 100644 src/sdk/novunotifications.ts create mode 100644 src/sdk/novusubscribers.ts create mode 100644 src/sdk/preferences.ts create mode 100644 src/sdk/properties.ts create mode 100644 src/sdk/sdk.ts create mode 100644 src/sdk/stats.ts create mode 100644 src/sdk/subscribers.ts create mode 100644 src/sdk/topics.ts create mode 100644 src/sdk/webhooks.ts create mode 100644 src/sdk/workflowgroups.ts create mode 100644 src/types/blobs.ts create mode 100644 src/types/constdatetime.ts create mode 100644 src/types/enums.ts create mode 100644 src/types/fp.ts create mode 100644 src/types/index.ts create mode 100644 src/types/operations.ts create mode 100644 src/types/rfcdate.ts create mode 100644 src/types/streams.ts diff --git a/docs/lib/utils/retryconfig.md b/docs/lib/utils/retryconfig.md new file mode 100644 index 00000000..08f95f45 --- /dev/null +++ b/docs/lib/utils/retryconfig.md @@ -0,0 +1,24 @@ +# RetryConfig + +Allows customizing the default retry configuration. It is only permitted in methods that accept retry policies. + +## Fields + +| Name | Type | Description | Example | +| ------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------ | ----------- | +| `strategy` | `"backoff" | "none"` | The retry strategy to use. | `"backoff"` | +| `backoff` | [BackoffStrategy](#backoffstrategy) | When strategy is "backoff", this configurates for the backoff parameters. | | +| `retryConnectionErrors` | `*boolean*` | When strategy is "backoff", this determines whether or not to retry on connection errors. | `true` | + +## BackoffStrategy + +The backoff strategy allows retrying a request with an exponential backoff between each retry. + +### Fields + +| Name | Type | Description | Example | +| ------------------ | ------------ | ----------------------------------------- | -------- | +| `initialInterval` | `*number*` | The initial interval in milliseconds. | `500` | +| `maxInterval` | `*number*` | The maximum interval in milliseconds. | `60000` | +| `exponent` | `*number*` | The exponent to use for the backoff. | `1.5` | +| `maxElapsedTime` | `*number*` | The maximum elapsed time in milliseconds. | `300000` | \ No newline at end of file diff --git a/docs/models/components/activitiesresponsedto.md b/docs/models/components/activitiesresponsedto.md new file mode 100644 index 00000000..c4fa33ec --- /dev/null +++ b/docs/models/components/activitiesresponsedto.md @@ -0,0 +1,25 @@ +# ActivitiesResponseDto + +## Example Usage + +```typescript +import { ActivitiesResponseDto } from "@novu/api/models/components"; + +let value: ActivitiesResponseDto = { + hasMore: false, + data: [ + "", + ], + pageSize: 9767.61, + page: 6048.46, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `hasMore` | *boolean* | :heavy_check_mark: | N/A | +| `data` | *string*[] | :heavy_check_mark: | N/A | +| `pageSize` | *number* | :heavy_check_mark: | N/A | +| `page` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitygraphstatesresponse.md b/docs/models/components/activitygraphstatesresponse.md new file mode 100644 index 00000000..2acbe744 --- /dev/null +++ b/docs/models/components/activitygraphstatesresponse.md @@ -0,0 +1,27 @@ +# ActivityGraphStatesResponse + +## Example Usage + +```typescript +import { ActivityGraphStatesResponse } from "@novu/api/models/components"; + +let value: ActivityGraphStatesResponse = { + id: "", + count: 2961.40, + templates: [ + "", + ], + channels: [ + "in_app", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | +| `count` | *number* | :heavy_check_mark: | N/A | +| `templates` | *string*[] | :heavy_check_mark: | N/A | +| `channels` | [components.Channels](../../models/components/channels.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationresponsedto.md b/docs/models/components/activitynotificationresponsedto.md new file mode 100644 index 00000000..65be8f43 --- /dev/null +++ b/docs/models/components/activitynotificationresponsedto.md @@ -0,0 +1,27 @@ +# ActivityNotificationResponseDto + +## Example Usage + +```typescript +import { ActivityNotificationResponseDto } from "@novu/api/models/components"; + +let value: ActivityNotificationResponseDto = { + environmentId: "", + organizationId: "", + transactionId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_minus_sign: | N/A | +| `channels` | [components.ActivityNotificationResponseDtoChannels](../../models/components/activitynotificationresponsedtochannels.md) | :heavy_minus_sign: | N/A | +| `subscriber` | [components.ActivityNotificationSubscriberResponseDto](../../models/components/activitynotificationsubscriberresponsedto.md) | :heavy_minus_sign: | N/A | +| `template` | [components.ActivityNotificationTemplateResponseDto](../../models/components/activitynotificationtemplateresponsedto.md) | :heavy_minus_sign: | N/A | +| `jobs` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationresponsedtochannels.md b/docs/models/components/activitynotificationresponsedtochannels.md new file mode 100644 index 00000000..452b1139 --- /dev/null +++ b/docs/models/components/activitynotificationresponsedtochannels.md @@ -0,0 +1,15 @@ +# ActivityNotificationResponseDtoChannels + +## Example Usage + +```typescript +import { ActivityNotificationResponseDtoChannels } from "@novu/api/models/components"; + +let value: ActivityNotificationResponseDtoChannels = "trigger"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" | "digest" | "trigger" | "delay" | "custom" +``` \ No newline at end of file diff --git a/docs/models/components/activitynotificationsubscriberresponsedto.md b/docs/models/components/activitynotificationsubscriberresponsedto.md new file mode 100644 index 00000000..f6fb409b --- /dev/null +++ b/docs/models/components/activitynotificationsubscriberresponsedto.md @@ -0,0 +1,21 @@ +# ActivityNotificationSubscriberResponseDto + +## Example Usage + +```typescript +import { ActivityNotificationSubscriberResponseDto } from "@novu/api/models/components"; + +let value: ActivityNotificationSubscriberResponseDto = { + id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `firstName` | *string* | :heavy_minus_sign: | N/A | +| `id` | *string* | :heavy_check_mark: | N/A | +| `lastName` | *string* | :heavy_minus_sign: | N/A | +| `email` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitynotificationtemplateresponsedto.md b/docs/models/components/activitynotificationtemplateresponsedto.md new file mode 100644 index 00000000..54054b48 --- /dev/null +++ b/docs/models/components/activitynotificationtemplateresponsedto.md @@ -0,0 +1,22 @@ +# ActivityNotificationTemplateResponseDto + +## Example Usage + +```typescript +import { ActivityNotificationTemplateResponseDto } from "@novu/api/models/components"; + +let value: ActivityNotificationTemplateResponseDto = { + name: "", + triggers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `triggers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/activitystatsresponsedto.md b/docs/models/components/activitystatsresponsedto.md new file mode 100644 index 00000000..46aee20a --- /dev/null +++ b/docs/models/components/activitystatsresponsedto.md @@ -0,0 +1,19 @@ +# ActivityStatsResponseDto + +## Example Usage + +```typescript +import { ActivityStatsResponseDto } from "@novu/api/models/components"; + +let value: ActivityStatsResponseDto = { + weeklySent: 391.88, + monthlySent: 2828.07, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `weeklySent` | *number* | :heavy_check_mark: | N/A | +| `monthlySent` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/actor.md b/docs/models/components/actor.md new file mode 100644 index 00000000..ea709b08 --- /dev/null +++ b/docs/models/components/actor.md @@ -0,0 +1,23 @@ +# Actor + +It is used to display the Avatar of the provided actor's subscriber id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `components.SubscriberPayloadDto` + +```typescript +const value: components.SubscriberPayloadDto = { + subscriberId: "", +}; +``` + diff --git a/docs/models/components/addsubscribersrequestdto.md b/docs/models/components/addsubscribersrequestdto.md new file mode 100644 index 00000000..983a3b5f --- /dev/null +++ b/docs/models/components/addsubscribersrequestdto.md @@ -0,0 +1,19 @@ +# AddSubscribersRequestDto + +## Example Usage + +```typescript +import { AddSubscribersRequestDto } from "@novu/api/models/components"; + +let value: AddSubscribersRequestDto = { + subscribers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `subscribers` | *string*[] | :heavy_check_mark: | List of subscriber identifiers that will be associated to the topic | \ No newline at end of file diff --git a/docs/models/components/apikey.md b/docs/models/components/apikey.md new file mode 100644 index 00000000..32d8641c --- /dev/null +++ b/docs/models/components/apikey.md @@ -0,0 +1,19 @@ +# ApiKey + +## Example Usage + +```typescript +import { ApiKey } from "@novu/api/models/components"; + +let value: ApiKey = { + key: "", + userId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | +| `userId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/backoffunit.md b/docs/models/components/backoffunit.md new file mode 100644 index 00000000..a7ea32ff --- /dev/null +++ b/docs/models/components/backoffunit.md @@ -0,0 +1,15 @@ +# BackoffUnit + +## Example Usage + +```typescript +import { BackoffUnit } from "@novu/api/models/components"; + +let value: BackoffUnit = "weeks"; +``` + +## Values + +```typescript +"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" +``` \ No newline at end of file diff --git a/docs/models/components/bulksubscribercreatedto.md b/docs/models/components/bulksubscribercreatedto.md new file mode 100644 index 00000000..497e5fb5 --- /dev/null +++ b/docs/models/components/bulksubscribercreatedto.md @@ -0,0 +1,19 @@ +# BulkSubscriberCreateDto + +## Example Usage + +```typescript +import { BulkSubscriberCreateDto } from "@novu/api/models/components"; + +let value: BulkSubscriberCreateDto = { + subscribers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/bulktriggereventdto.md b/docs/models/components/bulktriggereventdto.md new file mode 100644 index 00000000..a93c4ac6 --- /dev/null +++ b/docs/models/components/bulktriggereventdto.md @@ -0,0 +1,26 @@ +# BulkTriggerEventDto + +## Example Usage + +```typescript +import { BulkTriggerEventDto } from "@novu/api/models/components"; + +let value: BulkTriggerEventDto = { + events: [ + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + "SUBSCRIBER_ID", + ], + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `events` | [components.TriggerEventRequestDto](../../models/components/triggereventrequestdto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/channel.md b/docs/models/components/channel.md new file mode 100644 index 00000000..0f6af4c2 --- /dev/null +++ b/docs/models/components/channel.md @@ -0,0 +1,15 @@ +# Channel + +## Example Usage + +```typescript +import { Channel } from "@novu/api/models/components"; + +let value: Channel = "delay"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" | "digest" | "trigger" | "delay" | "custom" +``` \ No newline at end of file diff --git a/docs/models/components/channelcredentials.md b/docs/models/components/channelcredentials.md new file mode 100644 index 00000000..a4462dc6 --- /dev/null +++ b/docs/models/components/channelcredentials.md @@ -0,0 +1,24 @@ +# ChannelCredentials + +## Example Usage + +```typescript +import { ChannelCredentials } from "@novu/api/models/components"; + +let value: ChannelCredentials = { + webhookUrl: "https://finished-receptor.org", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `webhookUrl` | *string* | :heavy_check_mark: | Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. | +| `channel` | *string* | :heavy_minus_sign: | Channel specification for Mattermost chat notifications | +| `deviceTokens` | *string*[] | :heavy_minus_sign: | Contains an array of the subscriber device tokens for a given provider. Used on Push integrations | +| `alertUid` | *string* | :heavy_minus_sign: | alert_uid for grafana on-call webhook payload | +| `title` | *string* | :heavy_minus_sign: | title to be used with grafana on call webhook | +| `imageUrl` | *string* | :heavy_minus_sign: | image_url property fo grafana on call webhook | +| `state` | *string* | :heavy_minus_sign: | state property fo grafana on call webhook | +| `externalUrl` | *string* | :heavy_minus_sign: | link_to_upstream_details property fo grafana on call webhook | \ No newline at end of file diff --git a/docs/models/components/channelpreference.md b/docs/models/components/channelpreference.md new file mode 100644 index 00000000..ddd3acb6 --- /dev/null +++ b/docs/models/components/channelpreference.md @@ -0,0 +1,19 @@ +# ChannelPreference + +## Example Usage + +```typescript +import { ChannelPreference } from "@novu/api/models/components"; + +let value: ChannelPreference = { + type: "push", + enabled: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `type` | [components.ChannelPreferenceType](../../models/components/channelpreferencetype.md) | :heavy_check_mark: | The type of channel that is enabled or not | +| `enabled` | *boolean* | :heavy_check_mark: | If channel is enabled or not | \ No newline at end of file diff --git a/docs/models/components/channelpreferencetype.md b/docs/models/components/channelpreferencetype.md new file mode 100644 index 00000000..3fe32c71 --- /dev/null +++ b/docs/models/components/channelpreferencetype.md @@ -0,0 +1,17 @@ +# ChannelPreferenceType + +The type of channel that is enabled or not + +## Example Usage + +```typescript +import { ChannelPreferenceType } from "@novu/api/models/components"; + +let value: ChannelPreferenceType = "sms"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/components/channels.md b/docs/models/components/channels.md new file mode 100644 index 00000000..921dc283 --- /dev/null +++ b/docs/models/components/channels.md @@ -0,0 +1,15 @@ +# Channels + +## Example Usage + +```typescript +import { Channels } from "@novu/api/models/components"; + +let value: Channels = "in_app"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/components/channelsettings.md b/docs/models/components/channelsettings.md new file mode 100644 index 00000000..ec7684c0 --- /dev/null +++ b/docs/models/components/channelsettings.md @@ -0,0 +1,24 @@ +# ChannelSettings + +## Example Usage + +```typescript +import { ChannelSettings } from "@novu/api/models/components"; + +let value: ChannelSettings = { + providerId: "mattermost", + credentials: { + webhookUrl: "https://ajar-solvency.com", + }, + integrationId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `providerId` | [components.ProviderId](../../models/components/providerid.md) | :heavy_check_mark: | The provider identifier for the credentials | +| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | +| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | +| `integrationId` | *string* | :heavy_check_mark: | Id of the integration that is used for this channel | \ No newline at end of file diff --git a/docs/models/components/content.md b/docs/models/components/content.md new file mode 100644 index 00000000..1f27e6d7 --- /dev/null +++ b/docs/models/components/content.md @@ -0,0 +1,20 @@ +# Content + + +## Supported Types + +### `components.EmailBlock` + +```typescript +const value: components.EmailBlock = { + type: "text", + content: "", +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` + diff --git a/docs/models/components/controls.md b/docs/models/components/controls.md new file mode 100644 index 00000000..94e492f7 --- /dev/null +++ b/docs/models/components/controls.md @@ -0,0 +1,14 @@ +# Controls + +## Example Usage + +```typescript +import { Controls } from "@novu/api/models/components"; + +let value: Controls = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/createintegrationrequestdto.md b/docs/models/components/createintegrationrequestdto.md new file mode 100644 index 00000000..65b94eb8 --- /dev/null +++ b/docs/models/components/createintegrationrequestdto.md @@ -0,0 +1,26 @@ +# CreateIntegrationRequestDto + +## Example Usage + +```typescript +import { CreateIntegrationRequestDto } from "@novu/api/models/components"; + +let value: CreateIntegrationRequestDto = { + providerId: "", + channel: "chat", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `name` | *string* | :heavy_minus_sign: | N/A | +| `identifier` | *string* | :heavy_minus_sign: | N/A | +| `environmentId` | *string* | :heavy_minus_sign: | N/A | +| `providerId` | *string* | :heavy_check_mark: | N/A | +| `channel` | [components.CreateIntegrationRequestDtoChannel](../../models/components/createintegrationrequestdtochannel.md) | :heavy_check_mark: | N/A | +| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_minus_sign: | N/A | +| `active` | *boolean* | :heavy_minus_sign: | If the integration is active the validation on the credentials field will run | +| `check` | *boolean* | :heavy_minus_sign: | N/A | +| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/createintegrationrequestdtochannel.md b/docs/models/components/createintegrationrequestdtochannel.md new file mode 100644 index 00000000..c908a7b9 --- /dev/null +++ b/docs/models/components/createintegrationrequestdtochannel.md @@ -0,0 +1,15 @@ +# CreateIntegrationRequestDtoChannel + +## Example Usage + +```typescript +import { CreateIntegrationRequestDtoChannel } from "@novu/api/models/components"; + +let value: CreateIntegrationRequestDtoChannel = "in_app"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/components/createnotificationgrouprequestdto.md b/docs/models/components/createnotificationgrouprequestdto.md new file mode 100644 index 00000000..330c7811 --- /dev/null +++ b/docs/models/components/createnotificationgrouprequestdto.md @@ -0,0 +1,17 @@ +# CreateNotificationGroupRequestDto + +## Example Usage + +```typescript +import { CreateNotificationGroupRequestDto } from "@novu/api/models/components"; + +let value: CreateNotificationGroupRequestDto = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/createsubscriberrequestdto.md b/docs/models/components/createsubscriberrequestdto.md new file mode 100644 index 00000000..3af75e08 --- /dev/null +++ b/docs/models/components/createsubscriberrequestdto.md @@ -0,0 +1,25 @@ +# CreateSubscriberRequestDto + +## Example Usage + +```typescript +import { CreateSubscriberRequestDto } from "@novu/api/models/components"; + +let value: CreateSubscriberRequestDto = { + subscriberId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | +| `email` | *string* | :heavy_minus_sign: | N/A | +| `firstName` | *string* | :heavy_minus_sign: | N/A | +| `lastName` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | +| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | +| `locale` | *string* | :heavy_minus_sign: | N/A | +| `data` | [components.CreateSubscriberRequestDtoData](../../models/components/createsubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | +| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/createsubscriberrequestdtodata.md b/docs/models/components/createsubscriberrequestdtodata.md new file mode 100644 index 00000000..f0b620c2 --- /dev/null +++ b/docs/models/components/createsubscriberrequestdtodata.md @@ -0,0 +1,14 @@ +# CreateSubscriberRequestDtoData + +## Example Usage + +```typescript +import { CreateSubscriberRequestDtoData } from "@novu/api/models/components"; + +let value: CreateSubscriberRequestDtoData = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/createtopicrequestdto.md b/docs/models/components/createtopicrequestdto.md new file mode 100644 index 00000000..611f5b5a --- /dev/null +++ b/docs/models/components/createtopicrequestdto.md @@ -0,0 +1,19 @@ +# CreateTopicRequestDto + +## Example Usage + +```typescript +import { CreateTopicRequestDto } from "@novu/api/models/components"; + +let value: CreateTopicRequestDto = { + key: "", + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `key` | *string* | :heavy_check_mark: | User defined custom key and provided by the user that will be an unique identifier for the Topic created. | +| `name` | *string* | :heavy_check_mark: | User defined custom name and provided by the user that will name the Topic created. | \ No newline at end of file diff --git a/docs/models/components/createtopicresponsedto.md b/docs/models/components/createtopicresponsedto.md new file mode 100644 index 00000000..7399856b --- /dev/null +++ b/docs/models/components/createtopicresponsedto.md @@ -0,0 +1,18 @@ +# CreateTopicResponseDto + +## Example Usage + +```typescript +import { CreateTopicResponseDto } from "@novu/api/models/components"; + +let value: CreateTopicResponseDto = { + key: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | The unique identifier for the Topic created. | +| `key` | *string* | :heavy_check_mark: | User defined custom key and provided by the user that will be an unique identifier for the Topic created. | \ No newline at end of file diff --git a/docs/models/components/credentialsdto.md b/docs/models/components/credentialsdto.md new file mode 100644 index 00000000..3a905cac --- /dev/null +++ b/docs/models/components/credentialsdto.md @@ -0,0 +1,56 @@ +# CredentialsDto + +## Example Usage + +```typescript +import { CredentialsDto } from "@novu/api/models/components"; + +let value: CredentialsDto = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `apiKey` | *string* | :heavy_minus_sign: | N/A | +| `user` | *string* | :heavy_minus_sign: | N/A | +| `secretKey` | *string* | :heavy_minus_sign: | N/A | +| `domain` | *string* | :heavy_minus_sign: | N/A | +| `password` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | +| `port` | *string* | :heavy_minus_sign: | N/A | +| `secure` | *boolean* | :heavy_minus_sign: | N/A | +| `region` | *string* | :heavy_minus_sign: | N/A | +| `accountSid` | *string* | :heavy_minus_sign: | N/A | +| `messageProfileId` | *string* | :heavy_minus_sign: | N/A | +| `token` | *string* | :heavy_minus_sign: | N/A | +| `from` | *string* | :heavy_minus_sign: | N/A | +| `senderName` | *string* | :heavy_minus_sign: | N/A | +| `projectName` | *string* | :heavy_minus_sign: | N/A | +| `applicationId` | *string* | :heavy_minus_sign: | N/A | +| `clientId` | *string* | :heavy_minus_sign: | N/A | +| `requireTls` | *boolean* | :heavy_minus_sign: | N/A | +| `ignoreTls` | *boolean* | :heavy_minus_sign: | N/A | +| `tlsOptions` | [components.TlsOptions](../../models/components/tlsoptions.md) | :heavy_minus_sign: | N/A | +| `baseUrl` | *string* | :heavy_minus_sign: | N/A | +| `webhookUrl` | *string* | :heavy_minus_sign: | N/A | +| `redirectUrl` | *string* | :heavy_minus_sign: | N/A | +| `hmac` | *boolean* | :heavy_minus_sign: | N/A | +| `serviceAccount` | *string* | :heavy_minus_sign: | N/A | +| `ipPoolName` | *string* | :heavy_minus_sign: | N/A | +| `apiKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | +| `secretKeyRequestHeader` | *string* | :heavy_minus_sign: | N/A | +| `idPath` | *string* | :heavy_minus_sign: | N/A | +| `datePath` | *string* | :heavy_minus_sign: | N/A | +| `apiToken` | *string* | :heavy_minus_sign: | N/A | +| `authenticateByToken` | *boolean* | :heavy_minus_sign: | N/A | +| `authenticationTokenKey` | *string* | :heavy_minus_sign: | N/A | +| `instanceId` | *string* | :heavy_minus_sign: | N/A | +| `alertUid` | *string* | :heavy_minus_sign: | N/A | +| `title` | *string* | :heavy_minus_sign: | N/A | +| `imageUrl` | *string* | :heavy_minus_sign: | N/A | +| `state` | *string* | :heavy_minus_sign: | N/A | +| `externalLink` | *string* | :heavy_minus_sign: | N/A | +| `channelId` | *string* | :heavy_minus_sign: | N/A | +| `phoneNumberIdentification` | *string* | :heavy_minus_sign: | N/A | +| `accessKey` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/data.md b/docs/models/components/data.md new file mode 100644 index 00000000..936dce25 --- /dev/null +++ b/docs/models/components/data.md @@ -0,0 +1,14 @@ +# Data + +## Example Usage + +```typescript +import { Data } from "@novu/api/models/components"; + +let value: Data = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/databooleandto.md b/docs/models/components/databooleandto.md new file mode 100644 index 00000000..fd5bdad6 --- /dev/null +++ b/docs/models/components/databooleandto.md @@ -0,0 +1,17 @@ +# DataBooleanDto + +## Example Usage + +```typescript +import { DataBooleanDto } from "@novu/api/models/components"; + +let value: DataBooleanDto = { + data: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `data` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayregularmetadata.md b/docs/models/components/delayregularmetadata.md new file mode 100644 index 00000000..152d6ccf --- /dev/null +++ b/docs/models/components/delayregularmetadata.md @@ -0,0 +1,19 @@ +# DelayRegularMetadata + +## Example Usage + +```typescript +import { DelayRegularMetadata } from "@novu/api/models/components"; + +let value: DelayRegularMetadata = { + type: "regular", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `amount` | *number* | :heavy_minus_sign: | N/A | +| `unit` | [components.DelayRegularMetadataUnit](../../models/components/delayregularmetadataunit.md) | :heavy_minus_sign: | N/A | +| `type` | [components.DelayRegularMetadataType](../../models/components/delayregularmetadatatype.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayregularmetadatatype.md b/docs/models/components/delayregularmetadatatype.md new file mode 100644 index 00000000..52666530 --- /dev/null +++ b/docs/models/components/delayregularmetadatatype.md @@ -0,0 +1,15 @@ +# DelayRegularMetadataType + +## Example Usage + +```typescript +import { DelayRegularMetadataType } from "@novu/api/models/components"; + +let value: DelayRegularMetadataType = "regular"; +``` + +## Values + +```typescript +"regular" +``` \ No newline at end of file diff --git a/docs/models/components/delayregularmetadataunit.md b/docs/models/components/delayregularmetadataunit.md new file mode 100644 index 00000000..579f0e83 --- /dev/null +++ b/docs/models/components/delayregularmetadataunit.md @@ -0,0 +1,15 @@ +# DelayRegularMetadataUnit + +## Example Usage + +```typescript +import { DelayRegularMetadataUnit } from "@novu/api/models/components"; + +let value: DelayRegularMetadataUnit = "hours"; +``` + +## Values + +```typescript +"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" +``` \ No newline at end of file diff --git a/docs/models/components/delayscheduledmetadata.md b/docs/models/components/delayscheduledmetadata.md new file mode 100644 index 00000000..cc5d6fdf --- /dev/null +++ b/docs/models/components/delayscheduledmetadata.md @@ -0,0 +1,19 @@ +# DelayScheduledMetadata + +## Example Usage + +```typescript +import { DelayScheduledMetadata } from "@novu/api/models/components"; + +let value: DelayScheduledMetadata = { + type: "scheduled", + delayPath: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `type` | [components.DelayScheduledMetadataType](../../models/components/delayscheduledmetadatatype.md) | :heavy_check_mark: | N/A | +| `delayPath` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/delayscheduledmetadatatype.md b/docs/models/components/delayscheduledmetadatatype.md new file mode 100644 index 00000000..adfbf2db --- /dev/null +++ b/docs/models/components/delayscheduledmetadatatype.md @@ -0,0 +1,15 @@ +# DelayScheduledMetadataType + +## Example Usage + +```typescript +import { DelayScheduledMetadataType } from "@novu/api/models/components"; + +let value: DelayScheduledMetadataType = "scheduled"; +``` + +## Values + +```typescript +"scheduled" +``` \ No newline at end of file diff --git a/docs/models/components/deletemessageresponsedto.md b/docs/models/components/deletemessageresponsedto.md new file mode 100644 index 00000000..2942b551 --- /dev/null +++ b/docs/models/components/deletemessageresponsedto.md @@ -0,0 +1,19 @@ +# DeleteMessageResponseDto + +## Example Usage + +```typescript +import { DeleteMessageResponseDto } from "@novu/api/models/components"; + +let value: DeleteMessageResponseDto = { + acknowledged: false, + status: "deleted", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | +| `status` | [components.DeleteMessageResponseDtoStatus](../../models/components/deletemessageresponsedtostatus.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file diff --git a/docs/models/components/deletemessageresponsedtostatus.md b/docs/models/components/deletemessageresponsedtostatus.md new file mode 100644 index 00000000..60cab91b --- /dev/null +++ b/docs/models/components/deletemessageresponsedtostatus.md @@ -0,0 +1,17 @@ +# DeleteMessageResponseDtoStatus + +The status enum for the performed action + +## Example Usage + +```typescript +import { DeleteMessageResponseDtoStatus } from "@novu/api/models/components"; + +let value: DeleteMessageResponseDtoStatus = "deleted"; +``` + +## Values + +```typescript +"deleted" +``` \ No newline at end of file diff --git a/docs/models/components/deletenotificationgroupresponsedto.md b/docs/models/components/deletenotificationgroupresponsedto.md new file mode 100644 index 00000000..1543e617 --- /dev/null +++ b/docs/models/components/deletenotificationgroupresponsedto.md @@ -0,0 +1,19 @@ +# DeleteNotificationGroupResponseDto + +## Example Usage + +```typescript +import { DeleteNotificationGroupResponseDto } from "@novu/api/models/components"; + +let value: DeleteNotificationGroupResponseDto = { + acknowledged: false, + status: "deleted", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | +| `status` | [components.DeleteNotificationGroupResponseDtoStatus](../../models/components/deletenotificationgroupresponsedtostatus.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file diff --git a/docs/models/components/deletenotificationgroupresponsedtostatus.md b/docs/models/components/deletenotificationgroupresponsedtostatus.md new file mode 100644 index 00000000..97ae3ee1 --- /dev/null +++ b/docs/models/components/deletenotificationgroupresponsedtostatus.md @@ -0,0 +1,17 @@ +# DeleteNotificationGroupResponseDtoStatus + +The status enum for the performed action + +## Example Usage + +```typescript +import { DeleteNotificationGroupResponseDtoStatus } from "@novu/api/models/components"; + +let value: DeleteNotificationGroupResponseDtoStatus = "deleted"; +``` + +## Values + +```typescript +"deleted" +``` \ No newline at end of file diff --git a/docs/models/components/deletesubscriberresponsedto.md b/docs/models/components/deletesubscriberresponsedto.md new file mode 100644 index 00000000..68e2ba72 --- /dev/null +++ b/docs/models/components/deletesubscriberresponsedto.md @@ -0,0 +1,19 @@ +# DeleteSubscriberResponseDto + +## Example Usage + +```typescript +import { DeleteSubscriberResponseDto } from "@novu/api/models/components"; + +let value: DeleteSubscriberResponseDto = { + acknowledged: false, + status: "deleted", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `acknowledged` | *boolean* | :heavy_check_mark: | A boolean stating the success of the action | +| `status` | [components.DeleteSubscriberResponseDtoStatus](../../models/components/deletesubscriberresponsedtostatus.md) | :heavy_check_mark: | The status enum for the performed action | \ No newline at end of file diff --git a/docs/models/components/deletesubscriberresponsedtostatus.md b/docs/models/components/deletesubscriberresponsedtostatus.md new file mode 100644 index 00000000..80e97b35 --- /dev/null +++ b/docs/models/components/deletesubscriberresponsedtostatus.md @@ -0,0 +1,17 @@ +# DeleteSubscriberResponseDtoStatus + +The status enum for the performed action + +## Example Usage + +```typescript +import { DeleteSubscriberResponseDtoStatus } from "@novu/api/models/components"; + +let value: DeleteSubscriberResponseDtoStatus = "deleted"; +``` + +## Values + +```typescript +"deleted" +``` \ No newline at end of file diff --git a/docs/models/components/digestregularmetadata.md b/docs/models/components/digestregularmetadata.md new file mode 100644 index 00000000..b667be64 --- /dev/null +++ b/docs/models/components/digestregularmetadata.md @@ -0,0 +1,24 @@ +# DigestRegularMetadata + +## Example Usage + +```typescript +import { DigestRegularMetadata } from "@novu/api/models/components"; + +let value: DigestRegularMetadata = { + type: "regular", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `amount` | *number* | :heavy_minus_sign: | N/A | +| `unit` | [components.Unit](../../models/components/unit.md) | :heavy_minus_sign: | N/A | +| `digestKey` | *string* | :heavy_minus_sign: | N/A | +| `type` | [components.DigestRegularMetadataType](../../models/components/digestregularmetadatatype.md) | :heavy_check_mark: | N/A | +| `backoff` | *boolean* | :heavy_minus_sign: | N/A | +| `backoffAmount` | *number* | :heavy_minus_sign: | N/A | +| `backoffUnit` | [components.BackoffUnit](../../models/components/backoffunit.md) | :heavy_minus_sign: | N/A | +| `updateMode` | *boolean* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/digestregularmetadatatype.md b/docs/models/components/digestregularmetadatatype.md new file mode 100644 index 00000000..6830975b --- /dev/null +++ b/docs/models/components/digestregularmetadatatype.md @@ -0,0 +1,15 @@ +# DigestRegularMetadataType + +## Example Usage + +```typescript +import { DigestRegularMetadataType } from "@novu/api/models/components"; + +let value: DigestRegularMetadataType = "backoff"; +``` + +## Values + +```typescript +"regular" | "backoff" +``` \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadata.md b/docs/models/components/digesttimedmetadata.md new file mode 100644 index 00000000..c45fc8d6 --- /dev/null +++ b/docs/models/components/digesttimedmetadata.md @@ -0,0 +1,21 @@ +# DigestTimedMetadata + +## Example Usage + +```typescript +import { DigestTimedMetadata } from "@novu/api/models/components"; + +let value: DigestTimedMetadata = { + type: "timed", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `amount` | *number* | :heavy_minus_sign: | N/A | +| `unit` | [components.DigestTimedMetadataUnit](../../models/components/digesttimedmetadataunit.md) | :heavy_minus_sign: | N/A | +| `digestKey` | *string* | :heavy_minus_sign: | N/A | +| `type` | [components.DigestTimedMetadataType](../../models/components/digesttimedmetadatatype.md) | :heavy_check_mark: | N/A | +| `timed` | [components.TimedConfig](../../models/components/timedconfig.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadatatype.md b/docs/models/components/digesttimedmetadatatype.md new file mode 100644 index 00000000..a1b443b3 --- /dev/null +++ b/docs/models/components/digesttimedmetadatatype.md @@ -0,0 +1,15 @@ +# DigestTimedMetadataType + +## Example Usage + +```typescript +import { DigestTimedMetadataType } from "@novu/api/models/components"; + +let value: DigestTimedMetadataType = "timed"; +``` + +## Values + +```typescript +"timed" +``` \ No newline at end of file diff --git a/docs/models/components/digesttimedmetadataunit.md b/docs/models/components/digesttimedmetadataunit.md new file mode 100644 index 00000000..6f392cc4 --- /dev/null +++ b/docs/models/components/digesttimedmetadataunit.md @@ -0,0 +1,15 @@ +# DigestTimedMetadataUnit + +## Example Usage + +```typescript +import { DigestTimedMetadataUnit } from "@novu/api/models/components"; + +let value: DigestTimedMetadataUnit = "hours"; +``` + +## Values + +```typescript +"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" +``` \ No newline at end of file diff --git a/docs/models/components/emailblock.md b/docs/models/components/emailblock.md new file mode 100644 index 00000000..885e482c --- /dev/null +++ b/docs/models/components/emailblock.md @@ -0,0 +1,21 @@ +# EmailBlock + +## Example Usage + +```typescript +import { EmailBlock } from "@novu/api/models/components"; + +let value: EmailBlock = { + type: "button", + content: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `type` | [components.EmailBlockType](../../models/components/emailblocktype.md) | :heavy_check_mark: | N/A | +| `content` | *string* | :heavy_check_mark: | N/A | +| `url` | *string* | :heavy_minus_sign: | N/A | +| `styles` | [components.EmailBlockStyles](../../models/components/emailblockstyles.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/emailblockstyles.md b/docs/models/components/emailblockstyles.md new file mode 100644 index 00000000..8ddbd4e2 --- /dev/null +++ b/docs/models/components/emailblockstyles.md @@ -0,0 +1,17 @@ +# EmailBlockStyles + +## Example Usage + +```typescript +import { EmailBlockStyles } from "@novu/api/models/components"; + +let value: EmailBlockStyles = { + textAlign: "center", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `textAlign` | [components.TextAlign](../../models/components/textalign.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/emailblocktype.md b/docs/models/components/emailblocktype.md new file mode 100644 index 00000000..63e25e19 --- /dev/null +++ b/docs/models/components/emailblocktype.md @@ -0,0 +1,15 @@ +# EmailBlockType + +## Example Usage + +```typescript +import { EmailBlockType } from "@novu/api/models/components"; + +let value: EmailBlockType = "text"; +``` + +## Values + +```typescript +"button" | "text" +``` \ No newline at end of file diff --git a/docs/models/components/environmentresponsedto.md b/docs/models/components/environmentresponsedto.md new file mode 100644 index 00000000..c9b4473d --- /dev/null +++ b/docs/models/components/environmentresponsedto.md @@ -0,0 +1,26 @@ +# EnvironmentResponseDto + +## Example Usage + +```typescript +import { EnvironmentResponseDto } from "@novu/api/models/components"; + +let value: EnvironmentResponseDto = { + name: "", + organizationId: "", + identifier: "", + parentId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `identifier` | *string* | :heavy_check_mark: | N/A | +| `apiKeys` | *string*[] | :heavy_minus_sign: | N/A | +| `parentId` | *string* | :heavy_check_mark: | N/A | +| `slug` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/executiondetailsresponsedto.md b/docs/models/components/executiondetailsresponsedto.md new file mode 100644 index 00000000..62471cb7 --- /dev/null +++ b/docs/models/components/executiondetailsresponsedto.md @@ -0,0 +1,45 @@ +# ExecutionDetailsResponseDto + +## Example Usage + +```typescript +import { ExecutionDetailsResponseDto } from "@novu/api/models/components"; + +let value: ExecutionDetailsResponseDto = { + organizationId: "", + jobId: "", + environmentId: "", + notificationId: "", + notificationTemplateId: "", + subscriberId: "", + transactionId: "", + channel: "in_app", + detail: "", + source: "Webhook", + status: "Failed", + isTest: false, + isRetry: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `jobId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `notificationId` | *string* | :heavy_check_mark: | N/A | +| `notificationTemplateId` | *string* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `messageId` | *string* | :heavy_minus_sign: | N/A | +| `providerId` | *string* | :heavy_minus_sign: | N/A | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `channel` | [components.Channel](../../models/components/channel.md) | :heavy_check_mark: | N/A | +| `detail` | *string* | :heavy_check_mark: | N/A | +| `source` | [components.Source](../../models/components/source.md) | :heavy_check_mark: | N/A | +| `status` | [components.Status](../../models/components/status.md) | :heavy_check_mark: | N/A | +| `isTest` | *boolean* | :heavy_check_mark: | N/A | +| `isRetry` | *boolean* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/feedid.md b/docs/models/components/feedid.md new file mode 100644 index 00000000..1b186e15 --- /dev/null +++ b/docs/models/components/feedid.md @@ -0,0 +1,14 @@ +# FeedId + +## Example Usage + +```typescript +import { FeedId } from "@novu/api/models/components"; + +let value: FeedId = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/feedidentifier.md b/docs/models/components/feedidentifier.md new file mode 100644 index 00000000..10cebf51 --- /dev/null +++ b/docs/models/components/feedidentifier.md @@ -0,0 +1,21 @@ +# FeedIdentifier + +Optional feed identifier or array of feed identifiers + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `string[]` + +```typescript +const value: string[] = [ + "", +]; +``` + diff --git a/docs/models/components/feedresponsedto.md b/docs/models/components/feedresponsedto.md new file mode 100644 index 00000000..c8a09ed7 --- /dev/null +++ b/docs/models/components/feedresponsedto.md @@ -0,0 +1,26 @@ +# FeedResponseDto + +## Example Usage + +```typescript +import { FeedResponseDto } from "@novu/api/models/components"; + +let value: FeedResponseDto = { + hasMore: false, + data: [ + "", + ], + pageSize: 6994.79, + page: 2974.37, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `totalCount` | *number* | :heavy_minus_sign: | N/A | +| `hasMore` | *boolean* | :heavy_check_mark: | N/A | +| `data` | *string*[] | :heavy_check_mark: | N/A | +| `pageSize` | *number* | :heavy_check_mark: | N/A | +| `page` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/fieldfilterpart.md b/docs/models/components/fieldfilterpart.md new file mode 100644 index 00000000..c8c2e97b --- /dev/null +++ b/docs/models/components/fieldfilterpart.md @@ -0,0 +1,23 @@ +# FieldFilterPart + +## Example Usage + +```typescript +import { FieldFilterPart } from "@novu/api/models/components"; + +let value: FieldFilterPart = { + field: "", + value: "", + operator: "EQUAL", + on: "payload", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `field` | *string* | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | N/A | +| `operator` | [components.Operator](../../models/components/operator.md) | :heavy_check_mark: | N/A | +| `on` | [components.On](../../models/components/on.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/filtertopicsresponsedto.md b/docs/models/components/filtertopicsresponsedto.md new file mode 100644 index 00000000..09083966 --- /dev/null +++ b/docs/models/components/filtertopicsresponsedto.md @@ -0,0 +1,33 @@ +# FilterTopicsResponseDto + +## Example Usage + +```typescript +import { FilterTopicsResponseDto } from "@novu/api/models/components"; + +let value: FilterTopicsResponseDto = { + data: [ + { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], + }, + ], + page: 580.29, + pageSize: 4344.17, + totalCount: 3117.96, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `data` | [components.TopicDto](../../models/components/topicdto.md)[] | :heavy_check_mark: | N/A | +| `page` | *number* | :heavy_check_mark: | N/A | +| `pageSize` | *number* | :heavy_check_mark: | N/A | +| `totalCount` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/getsubscriberpreferencesresponsedto.md b/docs/models/components/getsubscriberpreferencesresponsedto.md new file mode 100644 index 00000000..a79fe0e5 --- /dev/null +++ b/docs/models/components/getsubscriberpreferencesresponsedto.md @@ -0,0 +1,21 @@ +# GetSubscriberPreferencesResponseDto + +## Example Usage + +```typescript +import { GetSubscriberPreferencesResponseDto } from "@novu/api/models/components"; + +let value: GetSubscriberPreferencesResponseDto = { + preference: { + enabled: false, + channels: {}, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_minus_sign: | The workflow information and if it is critical or not | +| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | \ No newline at end of file diff --git a/docs/models/components/gettopicresponsedto.md b/docs/models/components/gettopicresponsedto.md new file mode 100644 index 00000000..30950928 --- /dev/null +++ b/docs/models/components/gettopicresponsedto.md @@ -0,0 +1,28 @@ +# GetTopicResponseDto + +## Example Usage + +```typescript +import { GetTopicResponseDto } from "@novu/api/models/components"; + +let value: GetTopicResponseDto = { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `key` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/integrationresponsedto.md b/docs/models/components/integrationresponsedto.md new file mode 100644 index 00000000..6e1a89c8 --- /dev/null +++ b/docs/models/components/integrationresponsedto.md @@ -0,0 +1,41 @@ +# IntegrationResponseDto + +## Example Usage + +```typescript +import { IntegrationResponseDto } from "@novu/api/models/components"; + +let value: IntegrationResponseDto = { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "sms", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `identifier` | *string* | :heavy_check_mark: | N/A | +| `providerId` | *string* | :heavy_check_mark: | N/A | +| `channel` | [components.IntegrationResponseDtoChannel](../../models/components/integrationresponsedtochannel.md) | :heavy_check_mark: | N/A | +| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_check_mark: | N/A | +| `active` | *boolean* | :heavy_check_mark: | N/A | +| `deleted` | *boolean* | :heavy_check_mark: | N/A | +| `deletedAt` | *string* | :heavy_check_mark: | N/A | +| `deletedBy` | *string* | :heavy_check_mark: | N/A | +| `primary` | *boolean* | :heavy_check_mark: | N/A | +| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/integrationresponsedtochannel.md b/docs/models/components/integrationresponsedtochannel.md new file mode 100644 index 00000000..57607f6e --- /dev/null +++ b/docs/models/components/integrationresponsedtochannel.md @@ -0,0 +1,15 @@ +# IntegrationResponseDtoChannel + +## Example Usage + +```typescript +import { IntegrationResponseDtoChannel } from "@novu/api/models/components"; + +let value: IntegrationResponseDtoChannel = "email"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/components/markallmessageasrequestdto.md b/docs/models/components/markallmessageasrequestdto.md new file mode 100644 index 00000000..c4b5ef09 --- /dev/null +++ b/docs/models/components/markallmessageasrequestdto.md @@ -0,0 +1,18 @@ +# MarkAllMessageAsRequestDto + +## Example Usage + +```typescript +import { MarkAllMessageAsRequestDto } from "@novu/api/models/components"; + +let value: MarkAllMessageAsRequestDto = { + markAs: "unread", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `feedIdentifier` | *components.FeedIdentifier* | :heavy_minus_sign: | Optional feed identifier or array of feed identifiers | +| `markAs` | [components.MarkAllMessageAsRequestDtoMarkAs](../../models/components/markallmessageasrequestdtomarkas.md) | :heavy_check_mark: | Mark all subscriber messages as read, unread, seen or unseen | \ No newline at end of file diff --git a/docs/models/components/markallmessageasrequestdtomarkas.md b/docs/models/components/markallmessageasrequestdtomarkas.md new file mode 100644 index 00000000..e6c8a0f7 --- /dev/null +++ b/docs/models/components/markallmessageasrequestdtomarkas.md @@ -0,0 +1,17 @@ +# MarkAllMessageAsRequestDtoMarkAs + +Mark all subscriber messages as read, unread, seen or unseen + +## Example Usage + +```typescript +import { MarkAllMessageAsRequestDtoMarkAs } from "@novu/api/models/components"; + +let value: MarkAllMessageAsRequestDtoMarkAs = "unseen"; +``` + +## Values + +```typescript +"read" | "seen" | "unread" | "unseen" +``` \ No newline at end of file diff --git a/docs/models/components/markas.md b/docs/models/components/markas.md new file mode 100644 index 00000000..63197c56 --- /dev/null +++ b/docs/models/components/markas.md @@ -0,0 +1,15 @@ +# MarkAs + +## Example Usage + +```typescript +import { MarkAs } from "@novu/api/models/components"; + +let value: MarkAs = "seen"; +``` + +## Values + +```typescript +"read" | "seen" | "unread" | "unseen" +``` \ No newline at end of file diff --git a/docs/models/components/markmessageactionasseendto.md b/docs/models/components/markmessageactionasseendto.md new file mode 100644 index 00000000..862a243c --- /dev/null +++ b/docs/models/components/markmessageactionasseendto.md @@ -0,0 +1,18 @@ +# MarkMessageActionAsSeenDto + +## Example Usage + +```typescript +import { MarkMessageActionAsSeenDto } from "@novu/api/models/components"; + +let value: MarkMessageActionAsSeenDto = { + status: "pending", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `status` | [components.MarkMessageActionAsSeenDtoStatus](../../models/components/markmessageactionasseendtostatus.md) | :heavy_check_mark: | Message action status | +| `payload` | [components.MarkMessageActionAsSeenDtoPayload](../../models/components/markmessageactionasseendtopayload.md) | :heavy_minus_sign: | Message action payload | \ No newline at end of file diff --git a/docs/models/components/markmessageactionasseendtopayload.md b/docs/models/components/markmessageactionasseendtopayload.md new file mode 100644 index 00000000..f176f4e9 --- /dev/null +++ b/docs/models/components/markmessageactionasseendtopayload.md @@ -0,0 +1,16 @@ +# MarkMessageActionAsSeenDtoPayload + +Message action payload + +## Example Usage + +```typescript +import { MarkMessageActionAsSeenDtoPayload } from "@novu/api/models/components"; + +let value: MarkMessageActionAsSeenDtoPayload = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/markmessageactionasseendtostatus.md b/docs/models/components/markmessageactionasseendtostatus.md new file mode 100644 index 00000000..10687933 --- /dev/null +++ b/docs/models/components/markmessageactionasseendtostatus.md @@ -0,0 +1,17 @@ +# MarkMessageActionAsSeenDtoStatus + +Message action status + +## Example Usage + +```typescript +import { MarkMessageActionAsSeenDtoStatus } from "@novu/api/models/components"; + +let value: MarkMessageActionAsSeenDtoStatus = "pending"; +``` + +## Values + +```typescript +"pending" | "done" +``` \ No newline at end of file diff --git a/docs/models/components/messageaction.md b/docs/models/components/messageaction.md new file mode 100644 index 00000000..33317d1d --- /dev/null +++ b/docs/models/components/messageaction.md @@ -0,0 +1,17 @@ +# MessageAction + +## Example Usage + +```typescript +import { MessageAction } from "@novu/api/models/components"; + +let value: MessageAction = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `status` | [components.MessageActionStatus](../../models/components/messageactionstatus.md) | :heavy_minus_sign: | N/A | +| `buttons` | [components.MessageButton](../../models/components/messagebutton.md)[] | :heavy_minus_sign: | N/A | +| `result` | [components.MessageActionResult](../../models/components/messageactionresult.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageactionresult.md b/docs/models/components/messageactionresult.md new file mode 100644 index 00000000..bf928d87 --- /dev/null +++ b/docs/models/components/messageactionresult.md @@ -0,0 +1,16 @@ +# MessageActionResult + +## Example Usage + +```typescript +import { MessageActionResult } from "@novu/api/models/components"; + +let value: MessageActionResult = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `payload` | [components.MessageActionResultPayload](../../models/components/messageactionresultpayload.md) | :heavy_minus_sign: | N/A | +| `type` | [components.MessageActionResultType](../../models/components/messageactionresulttype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageactionresultpayload.md b/docs/models/components/messageactionresultpayload.md new file mode 100644 index 00000000..bbac45e2 --- /dev/null +++ b/docs/models/components/messageactionresultpayload.md @@ -0,0 +1,14 @@ +# MessageActionResultPayload + +## Example Usage + +```typescript +import { MessageActionResultPayload } from "@novu/api/models/components"; + +let value: MessageActionResultPayload = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageactionresulttype.md b/docs/models/components/messageactionresulttype.md new file mode 100644 index 00000000..7b4520f3 --- /dev/null +++ b/docs/models/components/messageactionresulttype.md @@ -0,0 +1,15 @@ +# MessageActionResultType + +## Example Usage + +```typescript +import { MessageActionResultType } from "@novu/api/models/components"; + +let value: MessageActionResultType = "primary"; +``` + +## Values + +```typescript +"primary" | "secondary" +``` \ No newline at end of file diff --git a/docs/models/components/messageactionstatus.md b/docs/models/components/messageactionstatus.md new file mode 100644 index 00000000..c039a55b --- /dev/null +++ b/docs/models/components/messageactionstatus.md @@ -0,0 +1,15 @@ +# MessageActionStatus + +## Example Usage + +```typescript +import { MessageActionStatus } from "@novu/api/models/components"; + +let value: MessageActionStatus = "pending"; +``` + +## Values + +```typescript +"pending" | "done" +``` \ No newline at end of file diff --git a/docs/models/components/messagebutton.md b/docs/models/components/messagebutton.md new file mode 100644 index 00000000..f51b4781 --- /dev/null +++ b/docs/models/components/messagebutton.md @@ -0,0 +1,20 @@ +# MessageButton + +## Example Usage + +```typescript +import { MessageButton } from "@novu/api/models/components"; + +let value: MessageButton = { + type: "primary", + content: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `type` | [components.MessageButtonType](../../models/components/messagebuttontype.md) | :heavy_check_mark: | N/A | +| `content` | *string* | :heavy_check_mark: | N/A | +| `resultContent` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagebuttontype.md b/docs/models/components/messagebuttontype.md new file mode 100644 index 00000000..b06cb585 --- /dev/null +++ b/docs/models/components/messagebuttontype.md @@ -0,0 +1,15 @@ +# MessageButtonType + +## Example Usage + +```typescript +import { MessageButtonType } from "@novu/api/models/components"; + +let value: MessageButtonType = "secondary"; +``` + +## Values + +```typescript +"primary" | "secondary" +``` \ No newline at end of file diff --git a/docs/models/components/messagecta.md b/docs/models/components/messagecta.md new file mode 100644 index 00000000..3b30fef1 --- /dev/null +++ b/docs/models/components/messagecta.md @@ -0,0 +1,19 @@ +# MessageCTA + +## Example Usage + +```typescript +import { MessageCTA } from "@novu/api/models/components"; + +let value: MessageCTA = { + data: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `type` | [components.MessageCTAType](../../models/components/messagectatype.md) | :heavy_minus_sign: | N/A | +| `data` | [components.MessageCTAData](../../models/components/messagectadata.md) | :heavy_check_mark: | N/A | +| `action` | [components.MessageAction](../../models/components/messageaction.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagectadata.md b/docs/models/components/messagectadata.md new file mode 100644 index 00000000..6256b50c --- /dev/null +++ b/docs/models/components/messagectadata.md @@ -0,0 +1,15 @@ +# MessageCTAData + +## Example Usage + +```typescript +import { MessageCTAData } from "@novu/api/models/components"; + +let value: MessageCTAData = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `url` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/messagectatype.md b/docs/models/components/messagectatype.md new file mode 100644 index 00000000..297b495e --- /dev/null +++ b/docs/models/components/messagectatype.md @@ -0,0 +1,15 @@ +# MessageCTAType + +## Example Usage + +```typescript +import { MessageCTAType } from "@novu/api/models/components"; + +let value: MessageCTAType = "redirect"; +``` + +## Values + +```typescript +"redirect" +``` \ No newline at end of file diff --git a/docs/models/components/messageentity.md b/docs/models/components/messageentity.md new file mode 100644 index 00000000..6e91c47a --- /dev/null +++ b/docs/models/components/messageentity.md @@ -0,0 +1,14 @@ +# MessageEntity + +## Example Usage + +```typescript +import { MessageEntity } from "@novu/api/models/components"; + +let value: MessageEntity = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageid.md b/docs/models/components/messageid.md new file mode 100644 index 00000000..46eeb36d --- /dev/null +++ b/docs/models/components/messageid.md @@ -0,0 +1,19 @@ +# MessageId + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `string[]` + +```typescript +const value: string[] = [ + "", +]; +``` + diff --git a/docs/models/components/messagemarkasrequestdto.md b/docs/models/components/messagemarkasrequestdto.md new file mode 100644 index 00000000..7a8a3575 --- /dev/null +++ b/docs/models/components/messagemarkasrequestdto.md @@ -0,0 +1,21 @@ +# MessageMarkAsRequestDto + +## Example Usage + +```typescript +import { MessageMarkAsRequestDto } from "@novu/api/models/components"; + +let value: MessageMarkAsRequestDto = { + messageId: [ + "", + ], + markAs: "unread", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `messageId` | *components.MessageId* | :heavy_check_mark: | N/A | +| `markAs` | [components.MarkAs](../../models/components/markas.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/messageresponsedto.md b/docs/models/components/messageresponsedto.md new file mode 100644 index 00000000..544b5ad3 --- /dev/null +++ b/docs/models/components/messageresponsedto.md @@ -0,0 +1,67 @@ +# MessageResponseDto + +## Example Usage + +```typescript +import { MessageResponseDto } from "@novu/api/models/components"; + +let value: MessageResponseDto = { + templateId: "", + environmentId: "", + messageTemplateId: "", + organizationId: "", + notificationId: "", + subscriberId: "", + createdAt: "", + content: "", + transactionId: "", + channel: "sms", + read: false, + seen: false, + cta: { + data: {}, + }, + status: "error", + errorId: "", + errorText: "", + payload: {}, + overrides: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `templateId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `messageTemplateId` | *string* | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `notificationId` | *string* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `subscriber` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_minus_sign: | N/A | +| `template` | [components.WorkflowResponse](../../models/components/workflowresponse.md) | :heavy_minus_sign: | N/A | +| `templateIdentifier` | *string* | :heavy_minus_sign: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `lastSeenDate` | *string* | :heavy_minus_sign: | N/A | +| `lastReadDate` | *string* | :heavy_minus_sign: | N/A | +| `content` | *components.Content* | :heavy_check_mark: | N/A | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `subject` | *string* | :heavy_minus_sign: | N/A | +| `channel` | [components.MessageResponseDtoChannel](../../models/components/messageresponsedtochannel.md) | :heavy_check_mark: | N/A | +| `read` | *boolean* | :heavy_check_mark: | N/A | +| `seen` | *boolean* | :heavy_check_mark: | N/A | +| `email` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | +| `directWebhookUrl` | *string* | :heavy_minus_sign: | N/A | +| `providerId` | *string* | :heavy_minus_sign: | N/A | +| `deviceTokens` | *string*[] | :heavy_minus_sign: | N/A | +| `title` | *string* | :heavy_minus_sign: | N/A | +| `cta` | [components.MessageCTA](../../models/components/messagecta.md) | :heavy_check_mark: | N/A | +| `feedId` | [components.FeedId](../../models/components/feedid.md) | :heavy_minus_sign: | N/A | +| `status` | [components.MessageResponseDtoStatus](../../models/components/messageresponsedtostatus.md) | :heavy_check_mark: | N/A | +| `errorId` | *string* | :heavy_check_mark: | N/A | +| `errorText` | *string* | :heavy_check_mark: | N/A | +| `payload` | [components.MessageResponseDtoPayload](../../models/components/messageresponsedtopayload.md) | :heavy_check_mark: | The payload that was used to send the notification trigger | +| `overrides` | [components.MessageResponseDtoOverrides](../../models/components/messageresponsedtooverrides.md) | :heavy_check_mark: | Provider specific overrides used when triggering the notification | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtochannel.md b/docs/models/components/messageresponsedtochannel.md new file mode 100644 index 00000000..1e367bec --- /dev/null +++ b/docs/models/components/messageresponsedtochannel.md @@ -0,0 +1,15 @@ +# MessageResponseDtoChannel + +## Example Usage + +```typescript +import { MessageResponseDtoChannel } from "@novu/api/models/components"; + +let value: MessageResponseDtoChannel = "sms"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/components/messageresponsedtooverrides.md b/docs/models/components/messageresponsedtooverrides.md new file mode 100644 index 00000000..f8131ed8 --- /dev/null +++ b/docs/models/components/messageresponsedtooverrides.md @@ -0,0 +1,16 @@ +# MessageResponseDtoOverrides + +Provider specific overrides used when triggering the notification + +## Example Usage + +```typescript +import { MessageResponseDtoOverrides } from "@novu/api/models/components"; + +let value: MessageResponseDtoOverrides = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtopayload.md b/docs/models/components/messageresponsedtopayload.md new file mode 100644 index 00000000..cee9625c --- /dev/null +++ b/docs/models/components/messageresponsedtopayload.md @@ -0,0 +1,16 @@ +# MessageResponseDtoPayload + +The payload that was used to send the notification trigger + +## Example Usage + +```typescript +import { MessageResponseDtoPayload } from "@novu/api/models/components"; + +let value: MessageResponseDtoPayload = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/messageresponsedtostatus.md b/docs/models/components/messageresponsedtostatus.md new file mode 100644 index 00000000..d2a8d2eb --- /dev/null +++ b/docs/models/components/messageresponsedtostatus.md @@ -0,0 +1,15 @@ +# MessageResponseDtoStatus + +## Example Usage + +```typescript +import { MessageResponseDtoStatus } from "@novu/api/models/components"; + +let value: MessageResponseDtoStatus = "warning"; +``` + +## Values + +```typescript +"sent" | "error" | "warning" +``` \ No newline at end of file diff --git a/docs/models/components/messagetemplate.md b/docs/models/components/messagetemplate.md new file mode 100644 index 00000000..cb701122 --- /dev/null +++ b/docs/models/components/messagetemplate.md @@ -0,0 +1,14 @@ +# MessageTemplate + +## Example Usage + +```typescript +import { MessageTemplate } from "@novu/api/models/components"; + +let value: MessageTemplate = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/metadata.md b/docs/models/components/metadata.md new file mode 100644 index 00000000..d4991d52 --- /dev/null +++ b/docs/models/components/metadata.md @@ -0,0 +1,38 @@ +# Metadata + + +## Supported Types + +### `components.DigestRegularMetadata` + +```typescript +const value: components.DigestRegularMetadata = { + type: "backoff", +}; +``` + +### `components.DigestTimedMetadata` + +```typescript +const value: components.DigestTimedMetadata = { + type: "timed", +}; +``` + +### `components.DelayRegularMetadata` + +```typescript +const value: components.DelayRegularMetadata = { + type: "regular", +}; +``` + +### `components.DelayScheduledMetadata` + +```typescript +const value: components.DelayScheduledMetadata = { + type: "scheduled", + delayPath: "", +}; +``` + diff --git a/docs/models/components/monthlytype.md b/docs/models/components/monthlytype.md new file mode 100644 index 00000000..8b6ac551 --- /dev/null +++ b/docs/models/components/monthlytype.md @@ -0,0 +1,15 @@ +# MonthlyType + +## Example Usage + +```typescript +import { MonthlyType } from "@novu/api/models/components"; + +let value: MonthlyType = "on"; +``` + +## Values + +```typescript +"each" | "on" +``` \ No newline at end of file diff --git a/docs/models/components/notificationgroup.md b/docs/models/components/notificationgroup.md new file mode 100644 index 00000000..da0294bb --- /dev/null +++ b/docs/models/components/notificationgroup.md @@ -0,0 +1,23 @@ +# NotificationGroup + +## Example Usage + +```typescript +import { NotificationGroup } from "@novu/api/models/components"; + +let value: NotificationGroup = { + name: "", + environmentId: "", + organizationId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `parentId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationgroupresponsedto.md b/docs/models/components/notificationgroupresponsedto.md new file mode 100644 index 00000000..55741489 --- /dev/null +++ b/docs/models/components/notificationgroupresponsedto.md @@ -0,0 +1,23 @@ +# NotificationGroupResponseDto + +## Example Usage + +```typescript +import { NotificationGroupResponseDto } from "@novu/api/models/components"; + +let value: NotificationGroupResponseDto = { + name: "", + environmentId: "", + organizationId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `parentId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstep.md b/docs/models/components/notificationstep.md new file mode 100644 index 00000000..5cab470b --- /dev/null +++ b/docs/models/components/notificationstep.md @@ -0,0 +1,26 @@ +# NotificationStep + +## Example Usage + +```typescript +import { NotificationStep } from "@novu/api/models/components"; + +let value: NotificationStep = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `uuid` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_minus_sign: | N/A | +| `templateId` | *string* | :heavy_minus_sign: | N/A | +| `active` | *boolean* | :heavy_minus_sign: | N/A | +| `shouldStopOnFail` | *boolean* | :heavy_minus_sign: | N/A | +| `template` | [components.MessageTemplate](../../models/components/messagetemplate.md) | :heavy_minus_sign: | N/A | +| `filters` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | +| `parentId` | [components.ParentId](../../models/components/parentid.md) | :heavy_minus_sign: | N/A | +| `metadata` | *components.Metadata* | :heavy_minus_sign: | N/A | +| `replyCallback` | [components.ReplyCallback](../../models/components/replycallback.md) | :heavy_minus_sign: | N/A | +| `variants` | [components.NotificationStepVariant](../../models/components/notificationstepvariant.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariant.md b/docs/models/components/notificationstepvariant.md new file mode 100644 index 00000000..cfb4d749 --- /dev/null +++ b/docs/models/components/notificationstepvariant.md @@ -0,0 +1,25 @@ +# NotificationStepVariant + +## Example Usage + +```typescript +import { NotificationStepVariant } from "@novu/api/models/components"; + +let value: NotificationStepVariant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `uuid` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_minus_sign: | N/A | +| `templateId` | *string* | :heavy_minus_sign: | N/A | +| `active` | *boolean* | :heavy_minus_sign: | N/A | +| `shouldStopOnFail` | *boolean* | :heavy_minus_sign: | N/A | +| `template` | [components.MessageTemplate](../../models/components/messagetemplate.md) | :heavy_minus_sign: | N/A | +| `filters` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | +| `parentId` | [components.NotificationStepVariantParentId](../../models/components/notificationstepvariantparentid.md) | :heavy_minus_sign: | N/A | +| `metadata` | *components.NotificationStepVariantMetadata* | :heavy_minus_sign: | N/A | +| `replyCallback` | [components.NotificationStepVariantReplyCallback](../../models/components/notificationstepvariantreplycallback.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariantmetadata.md b/docs/models/components/notificationstepvariantmetadata.md new file mode 100644 index 00000000..bcea460c --- /dev/null +++ b/docs/models/components/notificationstepvariantmetadata.md @@ -0,0 +1,38 @@ +# NotificationStepVariantMetadata + + +## Supported Types + +### `components.DigestRegularMetadata` + +```typescript +const value: components.DigestRegularMetadata = { + type: "backoff", +}; +``` + +### `components.DigestTimedMetadata` + +```typescript +const value: components.DigestTimedMetadata = { + type: "timed", +}; +``` + +### `components.DelayRegularMetadata` + +```typescript +const value: components.DelayRegularMetadata = { + type: "regular", +}; +``` + +### `components.DelayScheduledMetadata` + +```typescript +const value: components.DelayScheduledMetadata = { + type: "scheduled", + delayPath: "", +}; +``` + diff --git a/docs/models/components/notificationstepvariantparentid.md b/docs/models/components/notificationstepvariantparentid.md new file mode 100644 index 00000000..9a182149 --- /dev/null +++ b/docs/models/components/notificationstepvariantparentid.md @@ -0,0 +1,14 @@ +# NotificationStepVariantParentId + +## Example Usage + +```typescript +import { NotificationStepVariantParentId } from "@novu/api/models/components"; + +let value: NotificationStepVariantParentId = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/notificationstepvariantreplycallback.md b/docs/models/components/notificationstepvariantreplycallback.md new file mode 100644 index 00000000..8ab047a7 --- /dev/null +++ b/docs/models/components/notificationstepvariantreplycallback.md @@ -0,0 +1,14 @@ +# NotificationStepVariantReplyCallback + +## Example Usage + +```typescript +import { NotificationStepVariantReplyCallback } from "@novu/api/models/components"; + +let value: NotificationStepVariantReplyCallback = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/notificationtrigger.md b/docs/models/components/notificationtrigger.md new file mode 100644 index 00000000..d15253f7 --- /dev/null +++ b/docs/models/components/notificationtrigger.md @@ -0,0 +1,26 @@ +# NotificationTrigger + +## Example Usage + +```typescript +import { NotificationTrigger } from "@novu/api/models/components"; + +let value: NotificationTrigger = { + type: "event", + identifier: "", + variables: [ + { + name: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `type` | [components.NotificationTriggerType](../../models/components/notificationtriggertype.md) | :heavy_check_mark: | N/A | +| `identifier` | *string* | :heavy_check_mark: | N/A | +| `variables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_check_mark: | N/A | +| `subscriberVariables` | [components.NotificationTriggerVariable](../../models/components/notificationtriggervariable.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/notificationtriggertype.md b/docs/models/components/notificationtriggertype.md new file mode 100644 index 00000000..e8715b58 --- /dev/null +++ b/docs/models/components/notificationtriggertype.md @@ -0,0 +1,15 @@ +# NotificationTriggerType + +## Example Usage + +```typescript +import { NotificationTriggerType } from "@novu/api/models/components"; + +let value: NotificationTriggerType = "event"; +``` + +## Values + +```typescript +"event" +``` \ No newline at end of file diff --git a/docs/models/components/notificationtriggervariable.md b/docs/models/components/notificationtriggervariable.md new file mode 100644 index 00000000..4bca567c --- /dev/null +++ b/docs/models/components/notificationtriggervariable.md @@ -0,0 +1,17 @@ +# NotificationTriggerVariable + +## Example Usage + +```typescript +import { NotificationTriggerVariable } from "@novu/api/models/components"; + +let value: NotificationTriggerVariable = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/on.md b/docs/models/components/on.md new file mode 100644 index 00000000..3f67d3c1 --- /dev/null +++ b/docs/models/components/on.md @@ -0,0 +1,15 @@ +# On + +## Example Usage + +```typescript +import { On } from "@novu/api/models/components"; + +let value: On = "payload"; +``` + +## Values + +```typescript +"subscriber" | "payload" +``` \ No newline at end of file diff --git a/docs/models/components/operator.md b/docs/models/components/operator.md new file mode 100644 index 00000000..4d9a5b40 --- /dev/null +++ b/docs/models/components/operator.md @@ -0,0 +1,15 @@ +# Operator + +## Example Usage + +```typescript +import { Operator } from "@novu/api/models/components"; + +let value: Operator = "NOT_IN"; +``` + +## Values + +```typescript +"LARGER" | "SMALLER" | "LARGER_EQUAL" | "SMALLER_EQUAL" | "EQUAL" | "NOT_EQUAL" | "ALL_IN" | "ANY_IN" | "NOT_IN" | "BETWEEN" | "NOT_BETWEEN" | "LIKE" | "NOT_LIKE" | "IN" +``` \ No newline at end of file diff --git a/docs/models/components/ordinal.md b/docs/models/components/ordinal.md new file mode 100644 index 00000000..d30ab30d --- /dev/null +++ b/docs/models/components/ordinal.md @@ -0,0 +1,15 @@ +# Ordinal + +## Example Usage + +```typescript +import { Ordinal } from "@novu/api/models/components"; + +let value: Ordinal = "2"; +``` + +## Values + +```typescript +"1" | "2" | "3" | "4" | "5" | "last" +``` \ No newline at end of file diff --git a/docs/models/components/ordinalvalue.md b/docs/models/components/ordinalvalue.md new file mode 100644 index 00000000..31c73e0b --- /dev/null +++ b/docs/models/components/ordinalvalue.md @@ -0,0 +1,15 @@ +# OrdinalValue + +## Example Usage + +```typescript +import { OrdinalValue } from "@novu/api/models/components"; + +let value: OrdinalValue = "saturday"; +``` + +## Values + +```typescript +"day" | "weekday" | "weekend" | "sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" +``` \ No newline at end of file diff --git a/docs/models/components/overrides.md b/docs/models/components/overrides.md new file mode 100644 index 00000000..99d8c8be --- /dev/null +++ b/docs/models/components/overrides.md @@ -0,0 +1,16 @@ +# Overrides + +This could be used to override provider specific configurations + +## Example Usage + +```typescript +import { Overrides } from "@novu/api/models/components"; + +let value: Overrides = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/parentid.md b/docs/models/components/parentid.md new file mode 100644 index 00000000..8c641363 --- /dev/null +++ b/docs/models/components/parentid.md @@ -0,0 +1,14 @@ +# ParentId + +## Example Usage + +```typescript +import { ParentId } from "@novu/api/models/components"; + +let value: ParentId = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/payload.md b/docs/models/components/payload.md new file mode 100644 index 00000000..0d201d57 --- /dev/null +++ b/docs/models/components/payload.md @@ -0,0 +1,17 @@ +# Payload + +The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + +## Example Usage + +```typescript +import { Payload } from "@novu/api/models/components"; + +let value: Payload = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/preference.md b/docs/models/components/preference.md new file mode 100644 index 00000000..3d3470b3 --- /dev/null +++ b/docs/models/components/preference.md @@ -0,0 +1,19 @@ +# Preference + +## Example Usage + +```typescript +import { Preference } from "@novu/api/models/components"; + +let value: Preference = { + enabled: false, + channels: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `enabled` | *boolean* | :heavy_check_mark: | Sets if the workflow is fully enabled for all channels or not for the subscriber. | +| `channels` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | Subscriber preferences for the different channels regarding this workflow | \ No newline at end of file diff --git a/docs/models/components/preferencechannels.md b/docs/models/components/preferencechannels.md new file mode 100644 index 00000000..f6df176a --- /dev/null +++ b/docs/models/components/preferencechannels.md @@ -0,0 +1,19 @@ +# PreferenceChannels + +## Example Usage + +```typescript +import { PreferenceChannels } from "@novu/api/models/components"; + +let value: PreferenceChannels = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `email` | *boolean* | :heavy_minus_sign: | N/A | +| `sms` | *boolean* | :heavy_minus_sign: | N/A | +| `inApp` | *boolean* | :heavy_minus_sign: | N/A | +| `chat` | *boolean* | :heavy_minus_sign: | N/A | +| `push` | *boolean* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/providerid.md b/docs/models/components/providerid.md new file mode 100644 index 00000000..d9bbdbd0 --- /dev/null +++ b/docs/models/components/providerid.md @@ -0,0 +1,17 @@ +# ProviderId + +The provider identifier for the credentials + +## Example Usage + +```typescript +import { ProviderId } from "@novu/api/models/components"; + +let value: ProviderId = "ryver"; +``` + +## Values + +```typescript +"slack" | "discord" | "msteams" | "mattermost" | "ryver" | "zulip" | "grafana-on-call" | "getstream" | "rocket-chat" | "whatsapp-business" | "fcm" | "apns" | "expo" | "one-signal" | "pushpad" | "push-webhook" | "pusher-beams" +``` \ No newline at end of file diff --git a/docs/models/components/removesubscribersrequestdto.md b/docs/models/components/removesubscribersrequestdto.md new file mode 100644 index 00000000..6378417e --- /dev/null +++ b/docs/models/components/removesubscribersrequestdto.md @@ -0,0 +1,19 @@ +# RemoveSubscribersRequestDto + +## Example Usage + +```typescript +import { RemoveSubscribersRequestDto } from "@novu/api/models/components"; + +let value: RemoveSubscribersRequestDto = { + subscribers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `subscribers` | *string*[] | :heavy_check_mark: | List of subscriber identifiers that will be removed to the topic | \ No newline at end of file diff --git a/docs/models/components/renametopicrequestdto.md b/docs/models/components/renametopicrequestdto.md new file mode 100644 index 00000000..7e0ec720 --- /dev/null +++ b/docs/models/components/renametopicrequestdto.md @@ -0,0 +1,17 @@ +# RenameTopicRequestDto + +## Example Usage + +```typescript +import { RenameTopicRequestDto } from "@novu/api/models/components"; + +let value: RenameTopicRequestDto = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | User defined custom name and provided by the user to rename the topic. | \ No newline at end of file diff --git a/docs/models/components/renametopicresponsedto.md b/docs/models/components/renametopicresponsedto.md new file mode 100644 index 00000000..2e200baf --- /dev/null +++ b/docs/models/components/renametopicresponsedto.md @@ -0,0 +1,28 @@ +# RenameTopicResponseDto + +## Example Usage + +```typescript +import { RenameTopicResponseDto } from "@novu/api/models/components"; + +let value: RenameTopicResponseDto = { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `key` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/replycallback.md b/docs/models/components/replycallback.md new file mode 100644 index 00000000..e23aabc6 --- /dev/null +++ b/docs/models/components/replycallback.md @@ -0,0 +1,14 @@ +# ReplyCallback + +## Example Usage + +```typescript +import { ReplyCallback } from "@novu/api/models/components"; + +let value: ReplyCallback = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/security.md b/docs/models/components/security.md new file mode 100644 index 00000000..59a810c2 --- /dev/null +++ b/docs/models/components/security.md @@ -0,0 +1,17 @@ +# Security + +## Example Usage + +```typescript +import { Security } from "@novu/api/models/components"; + +let value: Security = { + apiKey: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `apiKey` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/source.md b/docs/models/components/source.md new file mode 100644 index 00000000..cc43d1f7 --- /dev/null +++ b/docs/models/components/source.md @@ -0,0 +1,15 @@ +# Source + +## Example Usage + +```typescript +import { Source } from "@novu/api/models/components"; + +let value: Source = "Credentials"; +``` + +## Values + +```typescript +"Credentials" | "Internal" | "Payload" | "Webhook" +``` \ No newline at end of file diff --git a/docs/models/components/status.md b/docs/models/components/status.md new file mode 100644 index 00000000..37cc848a --- /dev/null +++ b/docs/models/components/status.md @@ -0,0 +1,15 @@ +# Status + +## Example Usage + +```typescript +import { Status } from "@novu/api/models/components"; + +let value: Status = "ReadConfirmation"; +``` + +## Values + +```typescript +"Success" | "Warning" | "Failed" | "Pending" | "Queued" | "ReadConfirmation" +``` \ No newline at end of file diff --git a/docs/models/components/stepfilter.md b/docs/models/components/stepfilter.md new file mode 100644 index 00000000..92ed9d29 --- /dev/null +++ b/docs/models/components/stepfilter.md @@ -0,0 +1,30 @@ +# StepFilter + +## Example Usage + +```typescript +import { StepFilter } from "@novu/api/models/components"; + +let value: StepFilter = { + isNegated: false, + type: "STATEMENT", + value: "AND", + children: [ + { + field: "", + value: "", + operator: "ANY_IN", + on: "subscriber", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `isNegated` | *boolean* | :heavy_check_mark: | N/A | +| `type` | [components.StepFilterType](../../models/components/stepfiltertype.md) | :heavy_check_mark: | N/A | +| `value` | [components.Value](../../models/components/value.md) | :heavy_check_mark: | N/A | +| `children` | [components.FieldFilterPart](../../models/components/fieldfilterpart.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/stepfiltertype.md b/docs/models/components/stepfiltertype.md new file mode 100644 index 00000000..ace94e10 --- /dev/null +++ b/docs/models/components/stepfiltertype.md @@ -0,0 +1,15 @@ +# StepFilterType + +## Example Usage + +```typescript +import { StepFilterType } from "@novu/api/models/components"; + +let value: StepFilterType = "BOOLEAN"; +``` + +## Values + +```typescript +"BOOLEAN" | "TEXT" | "DATE" | "NUMBER" | "STATEMENT" | "LIST" | "MULTI_LIST" | "GROUP" +``` \ No newline at end of file diff --git a/docs/models/components/subscriberpayloaddto.md b/docs/models/components/subscriberpayloaddto.md new file mode 100644 index 00000000..d8af3779 --- /dev/null +++ b/docs/models/components/subscriberpayloaddto.md @@ -0,0 +1,25 @@ +# SubscriberPayloadDto + +## Example Usage + +```typescript +import { SubscriberPayloadDto } from "@novu/api/models/components"; + +let value: SubscriberPayloadDto = { + subscriberId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | +| `email` | *string* | :heavy_minus_sign: | N/A | +| `firstName` | *string* | :heavy_minus_sign: | N/A | +| `lastName` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | +| `avatar` | *string* | :heavy_minus_sign: | An http url to the profile image of your subscriber | +| `locale` | *string* | :heavy_minus_sign: | N/A | +| `data` | [components.Data](../../models/components/data.md) | :heavy_minus_sign: | N/A | +| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/subscriberresponsedto.md b/docs/models/components/subscriberresponsedto.md new file mode 100644 index 00000000..c42f918e --- /dev/null +++ b/docs/models/components/subscriberresponsedto.md @@ -0,0 +1,39 @@ +# SubscriberResponseDto + +## Example Usage + +```typescript +import { SubscriberResponseDto } from "@novu/api/models/components"; + +let value: SubscriberResponseDto = { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that | +| `firstName` | *string* | :heavy_minus_sign: | N/A | +| `lastName` | *string* | :heavy_minus_sign: | N/A | +| `email` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | +| `avatar` | *string* | :heavy_minus_sign: | N/A | +| `locale` | *string* | :heavy_minus_sign: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems | +| `channels` | [components.ChannelSettings](../../models/components/channelsettings.md)[] | :heavy_minus_sign: | Channels settings for subscriber | +| `topics` | *string*[] | :heavy_minus_sign: | Topics that subscriber belongs to | +| `isOnline` | *boolean* | :heavy_minus_sign: | N/A | +| `lastOnlineAt` | *string* | :heavy_minus_sign: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `deleted` | *boolean* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `updatedAt` | *string* | :heavy_check_mark: | N/A | +| `v` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/templateresponse.md b/docs/models/components/templateresponse.md new file mode 100644 index 00000000..b7db0638 --- /dev/null +++ b/docs/models/components/templateresponse.md @@ -0,0 +1,25 @@ +# TemplateResponse + +## Example Usage + +```typescript +import { TemplateResponse } from "@novu/api/models/components"; + +let value: TemplateResponse = { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier of the workflow | +| `name` | *string* | :heavy_check_mark: | Name of the workflow | +| `critical` | *boolean* | :heavy_check_mark: | Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen | +| `triggers` | *string*[] | :heavy_check_mark: | Triggers are the events that will trigger the workflow. | \ No newline at end of file diff --git a/docs/models/components/tenant.md b/docs/models/components/tenant.md new file mode 100644 index 00000000..41d67814 --- /dev/null +++ b/docs/models/components/tenant.md @@ -0,0 +1,21 @@ +# Tenant + +It is used to specify a tenant context during trigger event. + Existing tenants will be updated with the provided details. + + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `components.TenantPayloadDto` + +```typescript +const value: components.TenantPayloadDto = {}; +``` + diff --git a/docs/models/components/tenantpayloaddto.md b/docs/models/components/tenantpayloaddto.md new file mode 100644 index 00000000..661d9a83 --- /dev/null +++ b/docs/models/components/tenantpayloaddto.md @@ -0,0 +1,17 @@ +# TenantPayloadDto + +## Example Usage + +```typescript +import { TenantPayloadDto } from "@novu/api/models/components"; + +let value: TenantPayloadDto = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `identifier` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_minus_sign: | N/A | +| `data` | [components.TenantPayloadDtoData](../../models/components/tenantpayloaddtodata.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/tenantpayloaddtodata.md b/docs/models/components/tenantpayloaddtodata.md new file mode 100644 index 00000000..04522a7e --- /dev/null +++ b/docs/models/components/tenantpayloaddtodata.md @@ -0,0 +1,14 @@ +# TenantPayloadDtoData + +## Example Usage + +```typescript +import { TenantPayloadDtoData } from "@novu/api/models/components"; + +let value: TenantPayloadDtoData = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/textalign.md b/docs/models/components/textalign.md new file mode 100644 index 00000000..aa50769d --- /dev/null +++ b/docs/models/components/textalign.md @@ -0,0 +1,15 @@ +# TextAlign + +## Example Usage + +```typescript +import { TextAlign } from "@novu/api/models/components"; + +let value: TextAlign = "center"; +``` + +## Values + +```typescript +"center" | "left" | "right" +``` \ No newline at end of file diff --git a/docs/models/components/timedconfig.md b/docs/models/components/timedconfig.md new file mode 100644 index 00000000..201d9d7e --- /dev/null +++ b/docs/models/components/timedconfig.md @@ -0,0 +1,20 @@ +# TimedConfig + +## Example Usage + +```typescript +import { TimedConfig } from "@novu/api/models/components"; + +let value: TimedConfig = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `atTime` | *string* | :heavy_minus_sign: | N/A | +| `weekDays` | [components.WeekDays](../../models/components/weekdays.md)[] | :heavy_minus_sign: | N/A | +| `monthDays` | *string*[] | :heavy_minus_sign: | N/A | +| `ordinal` | [components.Ordinal](../../models/components/ordinal.md) | :heavy_minus_sign: | N/A | +| `ordinalValue` | [components.OrdinalValue](../../models/components/ordinalvalue.md) | :heavy_minus_sign: | N/A | +| `monthlyType` | [components.MonthlyType](../../models/components/monthlytype.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/tlsoptions.md b/docs/models/components/tlsoptions.md new file mode 100644 index 00000000..a0471566 --- /dev/null +++ b/docs/models/components/tlsoptions.md @@ -0,0 +1,14 @@ +# TlsOptions + +## Example Usage + +```typescript +import { TlsOptions } from "@novu/api/models/components"; + +let value: TlsOptions = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/to.md b/docs/models/components/to.md new file mode 100644 index 00000000..6a16d8b4 --- /dev/null +++ b/docs/models/components/to.md @@ -0,0 +1,28 @@ +# To + + +## Supported Types + +### `components.SubscriberPayloadDto` + +```typescript +const value: components.SubscriberPayloadDto = { + subscriberId: "", +}; +``` + +### `string` + +```typescript +const value: string = "SUBSCRIBER_ID"; +``` + +### `components.TopicPayloadDto` + +```typescript +const value: components.TopicPayloadDto = { + topicKey: "", + type: "Topic", +}; +``` + diff --git a/docs/models/components/topicdto.md b/docs/models/components/topicdto.md new file mode 100644 index 00000000..5bfda316 --- /dev/null +++ b/docs/models/components/topicdto.md @@ -0,0 +1,28 @@ +# TopicDto + +## Example Usage + +```typescript +import { TopicDto } from "@novu/api/models/components"; + +let value: TopicDto = { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `key` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `subscribers` | *string*[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/topicpayloaddto.md b/docs/models/components/topicpayloaddto.md new file mode 100644 index 00000000..030a93e5 --- /dev/null +++ b/docs/models/components/topicpayloaddto.md @@ -0,0 +1,19 @@ +# TopicPayloadDto + +## Example Usage + +```typescript +import { TopicPayloadDto } from "@novu/api/models/components"; + +let value: TopicPayloadDto = { + topicKey: "", + type: "Topic", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `topicKey` | *string* | :heavy_check_mark: | N/A | | +| `type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | N/A | Topic | \ No newline at end of file diff --git a/docs/models/components/topicsubscriberdto.md b/docs/models/components/topicsubscriberdto.md new file mode 100644 index 00000000..99c8f9b0 --- /dev/null +++ b/docs/models/components/topicsubscriberdto.md @@ -0,0 +1,27 @@ +# TopicSubscriberDto + +## Example Usage + +```typescript +import { TopicSubscriberDto } from "@novu/api/models/components"; + +let value: TopicSubscriberDto = { + organizationId: "", + environmentId: "", + subscriberId: "", + topicId: "", + topicKey: "", + externalSubscriberId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `topicId` | *string* | :heavy_check_mark: | N/A | +| `topicKey` | *string* | :heavy_check_mark: | N/A | +| `externalSubscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/triggereventrequestdto.md b/docs/models/components/triggereventrequestdto.md new file mode 100644 index 00000000..f852e4c2 --- /dev/null +++ b/docs/models/components/triggereventrequestdto.md @@ -0,0 +1,32 @@ +# TriggerEventRequestDto + +## Example Usage + +```typescript +import { TriggerEventRequestDto } from "@novu/api/models/components"; + +let value: TriggerEventRequestDto = { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + subscriberId: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. | workflow_identifier | +| `payload` | [components.Payload](../../models/components/payload.md) | :heavy_minus_sign: | The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it.
This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. | {
"comment_id": "string",
"post": {
"text": "string"
}
} | +| `overrides` | [components.Overrides](../../models/components/overrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | +| `to` | *components.To*[] | :heavy_check_mark: | The recipients list of people who will receive the notification. | | +| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | +| `actor` | *components.Actor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | +| `tenant` | *components.Tenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
Existing tenants will be updated with the provided details.
| | +| `bridgeUrl` | *string* | :heavy_minus_sign: | N/A | | +| `controls` | [components.Controls](../../models/components/controls.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/components/triggereventresponsedto.md b/docs/models/components/triggereventresponsedto.md new file mode 100644 index 00000000..89c9af1b --- /dev/null +++ b/docs/models/components/triggereventresponsedto.md @@ -0,0 +1,21 @@ +# TriggerEventResponseDto + +## Example Usage + +```typescript +import { TriggerEventResponseDto } from "@novu/api/models/components"; + +let value: TriggerEventResponseDto = { + acknowledged: false, + status: "error", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `acknowledged` | *boolean* | :heavy_check_mark: | If trigger was acknowledged or not | +| `status` | [components.TriggerEventResponseDtoStatus](../../models/components/triggereventresponsedtostatus.md) | :heavy_check_mark: | Status for trigger | +| `error` | *string*[] | :heavy_minus_sign: | In case of an error, this field will contain the error message | +| `transactionId` | *string* | :heavy_minus_sign: | Transaction id for trigger | \ No newline at end of file diff --git a/docs/models/components/triggereventresponsedtostatus.md b/docs/models/components/triggereventresponsedtostatus.md new file mode 100644 index 00000000..548b3edd --- /dev/null +++ b/docs/models/components/triggereventresponsedtostatus.md @@ -0,0 +1,17 @@ +# TriggerEventResponseDtoStatus + +Status for trigger + +## Example Usage + +```typescript +import { TriggerEventResponseDtoStatus } from "@novu/api/models/components"; + +let value: TriggerEventResponseDtoStatus = "processed"; +``` + +## Values + +```typescript +"error" | "trigger_not_active" | "no_workflow_active_steps_defined" | "no_workflow_steps_defined" | "processed" | "subscriber_id_missing" | "no_tenant_found" +``` \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdto.md b/docs/models/components/triggereventtoallrequestdto.md new file mode 100644 index 00000000..393033e9 --- /dev/null +++ b/docs/models/components/triggereventtoallrequestdto.md @@ -0,0 +1,24 @@ +# TriggerEventToAllRequestDto + +## Example Usage + +```typescript +import { TriggerEventToAllRequestDto } from "@novu/api/models/components"; + +let value: TriggerEventToAllRequestDto = { + name: "", + payload: {}, + overrides: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. | | +| `payload` | [components.TriggerEventToAllRequestDtoPayload](../../models/components/triggereventtoallrequestdtopayload.md) | :heavy_check_mark: | The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it.
This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. | {
"comment_id": "string",
"post": {
"text": "string"
}
} | +| `overrides` | [components.TriggerEventToAllRequestDtoOverrides](../../models/components/triggereventtoallrequestdtooverrides.md) | :heavy_minus_sign: | This could be used to override provider specific configurations | {
"fcm": {
"data": {
"key": "value"
}
}
} | +| `transactionId` | *string* | :heavy_minus_sign: | A unique identifier for this transaction, we will generated a UUID if not provided. | | +| `actor` | *components.TriggerEventToAllRequestDtoActor* | :heavy_minus_sign: | It is used to display the Avatar of the provided actor's subscriber id or actor object.
If a new actor object is provided, we will create a new subscriber in our system
| | +| `tenant` | *components.TriggerEventToAllRequestDtoTenant* | :heavy_minus_sign: | It is used to specify a tenant context during trigger event.
If a new tenant object is provided, we will create a new tenant.
| | \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdtoactor.md b/docs/models/components/triggereventtoallrequestdtoactor.md new file mode 100644 index 00000000..8eb237df --- /dev/null +++ b/docs/models/components/triggereventtoallrequestdtoactor.md @@ -0,0 +1,23 @@ +# TriggerEventToAllRequestDtoActor + +It is used to display the Avatar of the provided actor's subscriber id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `components.SubscriberPayloadDto` + +```typescript +const value: components.SubscriberPayloadDto = { + subscriberId: "", +}; +``` + diff --git a/docs/models/components/triggereventtoallrequestdtooverrides.md b/docs/models/components/triggereventtoallrequestdtooverrides.md new file mode 100644 index 00000000..89918b67 --- /dev/null +++ b/docs/models/components/triggereventtoallrequestdtooverrides.md @@ -0,0 +1,16 @@ +# TriggerEventToAllRequestDtoOverrides + +This could be used to override provider specific configurations + +## Example Usage + +```typescript +import { TriggerEventToAllRequestDtoOverrides } from "@novu/api/models/components"; + +let value: TriggerEventToAllRequestDtoOverrides = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdtopayload.md b/docs/models/components/triggereventtoallrequestdtopayload.md new file mode 100644 index 00000000..70baab8a --- /dev/null +++ b/docs/models/components/triggereventtoallrequestdtopayload.md @@ -0,0 +1,17 @@ +# TriggerEventToAllRequestDtoPayload + +The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + +## Example Usage + +```typescript +import { TriggerEventToAllRequestDtoPayload } from "@novu/api/models/components"; + +let value: TriggerEventToAllRequestDtoPayload = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/triggereventtoallrequestdtotenant.md b/docs/models/components/triggereventtoallrequestdtotenant.md new file mode 100644 index 00000000..c7d3d28b --- /dev/null +++ b/docs/models/components/triggereventtoallrequestdtotenant.md @@ -0,0 +1,21 @@ +# TriggerEventToAllRequestDtoTenant + +It is used to specify a tenant context during trigger event. + If a new tenant object is provided, we will create a new tenant. + + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `components.TenantPayloadDto` + +```typescript +const value: components.TenantPayloadDto = {}; +``` + diff --git a/docs/models/components/type.md b/docs/models/components/type.md new file mode 100644 index 00000000..ffc431f7 --- /dev/null +++ b/docs/models/components/type.md @@ -0,0 +1,15 @@ +# Type + +## Example Usage + +```typescript +import { Type } from "@novu/api/models/components"; + +let value: Type = "Topic"; +``` + +## Values + +```typescript +"Subscriber" | "Topic" +``` \ No newline at end of file diff --git a/docs/models/components/unit.md b/docs/models/components/unit.md new file mode 100644 index 00000000..2d1fae4a --- /dev/null +++ b/docs/models/components/unit.md @@ -0,0 +1,15 @@ +# Unit + +## Example Usage + +```typescript +import { Unit } from "@novu/api/models/components"; + +let value: Unit = "days"; +``` + +## Values + +```typescript +"seconds" | "minutes" | "hours" | "days" | "weeks" | "months" +``` \ No newline at end of file diff --git a/docs/models/components/unseencountresponse.md b/docs/models/components/unseencountresponse.md new file mode 100644 index 00000000..0c18cc03 --- /dev/null +++ b/docs/models/components/unseencountresponse.md @@ -0,0 +1,17 @@ +# UnseenCountResponse + +## Example Usage + +```typescript +import { UnseenCountResponse } from "@novu/api/models/components"; + +let value: UnseenCountResponse = { + count: 8137.98, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `count` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/updateintegrationrequestdto.md b/docs/models/components/updateintegrationrequestdto.md new file mode 100644 index 00000000..a5db2b51 --- /dev/null +++ b/docs/models/components/updateintegrationrequestdto.md @@ -0,0 +1,22 @@ +# UpdateIntegrationRequestDto + +## Example Usage + +```typescript +import { UpdateIntegrationRequestDto } from "@novu/api/models/components"; + +let value: UpdateIntegrationRequestDto = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `name` | *string* | :heavy_minus_sign: | N/A | +| `identifier` | *string* | :heavy_minus_sign: | N/A | +| `environmentId` | *string* | :heavy_minus_sign: | N/A | +| `active` | *boolean* | :heavy_minus_sign: | If the integration is active the validation on the credentials field will run | +| `credentials` | [components.CredentialsDto](../../models/components/credentialsdto.md) | :heavy_minus_sign: | N/A | +| `removeNovuBranding` | *boolean* | :heavy_minus_sign: | If true, the Novu branding will be removed from the Inbox component | +| `check` | *boolean* | :heavy_minus_sign: | N/A | +| `conditions` | [components.StepFilter](../../models/components/stepfilter.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberchannelrequestdto.md b/docs/models/components/updatesubscriberchannelrequestdto.md new file mode 100644 index 00000000..45d6f666 --- /dev/null +++ b/docs/models/components/updatesubscriberchannelrequestdto.md @@ -0,0 +1,22 @@ +# UpdateSubscriberChannelRequestDto + +## Example Usage + +```typescript +import { UpdateSubscriberChannelRequestDto } from "@novu/api/models/components"; + +let value: UpdateSubscriberChannelRequestDto = { + providerId: "whatsapp-business", + credentials: { + webhookUrl: "https://old-fashioned-deck.org", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `providerId` | [components.UpdateSubscriberChannelRequestDtoProviderId](../../models/components/updatesubscriberchannelrequestdtoproviderid.md) | :heavy_check_mark: | The provider identifier for the credentials | +| `integrationIdentifier` | *string* | :heavy_minus_sign: | The integration identifier | +| `credentials` | [components.ChannelCredentials](../../models/components/channelcredentials.md) | :heavy_check_mark: | Credentials payload for the specified provider | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md b/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md new file mode 100644 index 00000000..78e8a2e8 --- /dev/null +++ b/docs/models/components/updatesubscriberchannelrequestdtoproviderid.md @@ -0,0 +1,17 @@ +# UpdateSubscriberChannelRequestDtoProviderId + +The provider identifier for the credentials + +## Example Usage + +```typescript +import { UpdateSubscriberChannelRequestDtoProviderId } from "@novu/api/models/components"; + +let value: UpdateSubscriberChannelRequestDtoProviderId = "ryver"; +``` + +## Values + +```typescript +"slack" | "discord" | "msteams" | "mattermost" | "ryver" | "zulip" | "grafana-on-call" | "getstream" | "rocket-chat" | "whatsapp-business" | "fcm" | "apns" | "expo" | "one-signal" | "pushpad" | "push-webhook" | "pusher-beams" +``` \ No newline at end of file diff --git a/docs/models/components/updatesubscriberglobalpreferencesrequestdto.md b/docs/models/components/updatesubscriberglobalpreferencesrequestdto.md new file mode 100644 index 00000000..3f65c6d8 --- /dev/null +++ b/docs/models/components/updatesubscriberglobalpreferencesrequestdto.md @@ -0,0 +1,16 @@ +# UpdateSubscriberGlobalPreferencesRequestDto + +## Example Usage + +```typescript +import { UpdateSubscriberGlobalPreferencesRequestDto } from "@novu/api/models/components"; + +let value: UpdateSubscriberGlobalPreferencesRequestDto = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `enabled` | *boolean* | :heavy_minus_sign: | Enable or disable the subscriber global preferences. | +| `preferences` | [components.ChannelPreference](../../models/components/channelpreference.md)[] | :heavy_minus_sign: | The subscriber global preferences for every ChannelTypeEnum. | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberonlineflagrequestdto.md b/docs/models/components/updatesubscriberonlineflagrequestdto.md new file mode 100644 index 00000000..83061978 --- /dev/null +++ b/docs/models/components/updatesubscriberonlineflagrequestdto.md @@ -0,0 +1,17 @@ +# UpdateSubscriberOnlineFlagRequestDto + +## Example Usage + +```typescript +import { UpdateSubscriberOnlineFlagRequestDto } from "@novu/api/models/components"; + +let value: UpdateSubscriberOnlineFlagRequestDto = { + isOnline: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `isOnline` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberpreferencerequestdto.md b/docs/models/components/updatesubscriberpreferencerequestdto.md new file mode 100644 index 00000000..ab38c659 --- /dev/null +++ b/docs/models/components/updatesubscriberpreferencerequestdto.md @@ -0,0 +1,16 @@ +# UpdateSubscriberPreferenceRequestDto + +## Example Usage + +```typescript +import { UpdateSubscriberPreferenceRequestDto } from "@novu/api/models/components"; + +let value: UpdateSubscriberPreferenceRequestDto = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `channel` | [components.ChannelPreference](../../models/components/channelpreference.md) | :heavy_minus_sign: | The subscriber preferences for every ChannelTypeEnum for the workflow assigned. | +| `enabled` | *boolean* | :heavy_minus_sign: | Sets if the workflow is fully enabled for all channels or not for the subscriber. | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberpreferenceresponsedto.md b/docs/models/components/updatesubscriberpreferenceresponsedto.md new file mode 100644 index 00000000..1d52bc61 --- /dev/null +++ b/docs/models/components/updatesubscriberpreferenceresponsedto.md @@ -0,0 +1,29 @@ +# UpdateSubscriberPreferenceResponseDto + +## Example Usage + +```typescript +import { UpdateSubscriberPreferenceResponseDto } from "@novu/api/models/components"; + +let value: UpdateSubscriberPreferenceResponseDto = { + template: { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], + }, + preference: { + enabled: false, + channels: {}, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `template` | [components.TemplateResponse](../../models/components/templateresponse.md) | :heavy_check_mark: | The workflow information and if it is critical or not | +| `preference` | [components.Preference](../../models/components/preference.md) | :heavy_check_mark: | The preferences of the subscriber regarding the related workflow | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberrequestdto.md b/docs/models/components/updatesubscriberrequestdto.md new file mode 100644 index 00000000..abfd3ec6 --- /dev/null +++ b/docs/models/components/updatesubscriberrequestdto.md @@ -0,0 +1,22 @@ +# UpdateSubscriberRequestDto + +## Example Usage + +```typescript +import { UpdateSubscriberRequestDto } from "@novu/api/models/components"; + +let value: UpdateSubscriberRequestDto = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `email` | *string* | :heavy_minus_sign: | N/A | +| `firstName` | *string* | :heavy_minus_sign: | N/A | +| `lastName` | *string* | :heavy_minus_sign: | N/A | +| `phone` | *string* | :heavy_minus_sign: | N/A | +| `avatar` | *string* | :heavy_minus_sign: | N/A | +| `locale` | *string* | :heavy_minus_sign: | N/A | +| `data` | [components.UpdateSubscriberRequestDtoData](../../models/components/updatesubscriberrequestdtodata.md) | :heavy_minus_sign: | N/A | +| `channels` | *string*[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/updatesubscriberrequestdtodata.md b/docs/models/components/updatesubscriberrequestdtodata.md new file mode 100644 index 00000000..71cb8daa --- /dev/null +++ b/docs/models/components/updatesubscriberrequestdtodata.md @@ -0,0 +1,14 @@ +# UpdateSubscriberRequestDtoData + +## Example Usage + +```typescript +import { UpdateSubscriberRequestDtoData } from "@novu/api/models/components"; + +let value: UpdateSubscriberRequestDtoData = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/value.md b/docs/models/components/value.md new file mode 100644 index 00000000..b9f79c7e --- /dev/null +++ b/docs/models/components/value.md @@ -0,0 +1,15 @@ +# Value + +## Example Usage + +```typescript +import { Value } from "@novu/api/models/components"; + +let value: Value = "OR"; +``` + +## Values + +```typescript +"AND" | "OR" +``` \ No newline at end of file diff --git a/docs/models/components/weekdays.md b/docs/models/components/weekdays.md new file mode 100644 index 00000000..4a73d079 --- /dev/null +++ b/docs/models/components/weekdays.md @@ -0,0 +1,15 @@ +# WeekDays + +## Example Usage + +```typescript +import { WeekDays } from "@novu/api/models/components"; + +let value: WeekDays = "tuesday"; +``` + +## Values + +```typescript +"monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday" +``` \ No newline at end of file diff --git a/docs/models/components/workflowintegrationstatus.md b/docs/models/components/workflowintegrationstatus.md new file mode 100644 index 00000000..e7915938 --- /dev/null +++ b/docs/models/components/workflowintegrationstatus.md @@ -0,0 +1,14 @@ +# WorkflowIntegrationStatus + +## Example Usage + +```typescript +import { WorkflowIntegrationStatus } from "@novu/api/models/components"; + +let value: WorkflowIntegrationStatus = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/components/workflowresponse.md b/docs/models/components/workflowresponse.md new file mode 100644 index 00000000..a0bbc1bd --- /dev/null +++ b/docs/models/components/workflowresponse.md @@ -0,0 +1,66 @@ +# WorkflowResponse + +## Example Usage + +```typescript +import { WorkflowResponse } from "@novu/api/models/components"; + +let value: WorkflowResponse = { + name: "", + description: "hidden remand whether seriously huzzah immediately geez", + active: false, + draft: false, + preferenceSettings: {}, + critical: false, + tags: [ + "", + ], + steps: [ + {}, + ], + organizationId: "", + creatorId: "", + environmentId: "", + triggers: [ + { + type: "event", + identifier: "", + variables: [ + { + name: "", + }, + ], + }, + ], + notificationGroupId: "", + deleted: false, + deletedAt: "", + deletedBy: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `description` | *string* | :heavy_check_mark: | N/A | +| `active` | *boolean* | :heavy_check_mark: | N/A | +| `draft` | *boolean* | :heavy_check_mark: | N/A | +| `preferenceSettings` | [components.PreferenceChannels](../../models/components/preferencechannels.md) | :heavy_check_mark: | N/A | +| `critical` | *boolean* | :heavy_check_mark: | N/A | +| `tags` | *string*[] | :heavy_check_mark: | N/A | +| `steps` | [components.NotificationStep](../../models/components/notificationstep.md)[] | :heavy_check_mark: | N/A | +| `organizationId` | *string* | :heavy_check_mark: | N/A | +| `creatorId` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `triggers` | [components.NotificationTrigger](../../models/components/notificationtrigger.md)[] | :heavy_check_mark: | N/A | +| `notificationGroupId` | *string* | :heavy_check_mark: | N/A | +| `parentId` | *string* | :heavy_minus_sign: | N/A | +| `deleted` | *boolean* | :heavy_check_mark: | N/A | +| `deletedAt` | *string* | :heavy_check_mark: | N/A | +| `deletedBy` | *string* | :heavy_check_mark: | N/A | +| `notificationGroup` | [components.NotificationGroup](../../models/components/notificationgroup.md) | :heavy_minus_sign: | N/A | +| `data` | [components.WorkflowResponseData](../../models/components/workflowresponsedata.md) | :heavy_minus_sign: | N/A | +| `workflowIntegrationStatus` | [components.WorkflowIntegrationStatus](../../models/components/workflowintegrationstatus.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/workflowresponsedata.md b/docs/models/components/workflowresponsedata.md new file mode 100644 index 00000000..23301dd5 --- /dev/null +++ b/docs/models/components/workflowresponsedata.md @@ -0,0 +1,14 @@ +# WorkflowResponseData + +## Example Usage + +```typescript +import { WorkflowResponseData } from "@novu/api/models/components"; + +let value: WorkflowResponseData = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/operations/channel.md b/docs/models/operations/channel.md new file mode 100644 index 00000000..e7ab724b --- /dev/null +++ b/docs/models/operations/channel.md @@ -0,0 +1,15 @@ +# Channel + +## Example Usage + +```typescript +import { Channel } from "@novu/api/models/operations"; + +let value: Channel = "in_app"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/operations/channels.md b/docs/models/operations/channels.md new file mode 100644 index 00000000..a38b610c --- /dev/null +++ b/docs/models/operations/channels.md @@ -0,0 +1,15 @@ +# Channels + +## Example Usage + +```typescript +import { Channels } from "@novu/api/models/operations"; + +let value: Channels = "sms"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md b/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md new file mode 100644 index 00000000..57876028 --- /dev/null +++ b/docs/models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md @@ -0,0 +1,28 @@ +# EnvironmentsControllerV1GetCurrentEnvironmentResponse + +## Example Usage + +```typescript +import { EnvironmentsControllerV1GetCurrentEnvironmentResponse } from "@novu/api/models/operations"; + +let value: EnvironmentsControllerV1GetCurrentEnvironmentResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + organizationId: "", + identifier: "", + parentId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.EnvironmentResponseDto](../../models/components/environmentresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md b/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md new file mode 100644 index 00000000..b91cef1e --- /dev/null +++ b/docs/models/operations/environmentscontrollerv1listmyenvironmentsresponse.md @@ -0,0 +1,30 @@ +# EnvironmentsControllerV1ListMyEnvironmentsResponse + +## Example Usage + +```typescript +import { EnvironmentsControllerV1ListMyEnvironmentsResponse } from "@novu/api/models/operations"; + +let value: EnvironmentsControllerV1ListMyEnvironmentsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + name: "", + organizationId: "", + identifier: "", + parentId: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.EnvironmentResponseDto](../../models/components/environmentresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md b/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md new file mode 100644 index 00000000..fb55d9a1 --- /dev/null +++ b/docs/models/operations/environmentscontrollerv1listorganizationapikeysresponse.md @@ -0,0 +1,28 @@ +# EnvironmentsControllerV1ListOrganizationApiKeysResponse + +## Example Usage + +```typescript +import { EnvironmentsControllerV1ListOrganizationApiKeysResponse } from "@novu/api/models/operations"; + +let value: EnvironmentsControllerV1ListOrganizationApiKeysResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + key: "", + userId: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ApiKey](../../models/components/apikey.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md b/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md new file mode 100644 index 00000000..27d634f0 --- /dev/null +++ b/docs/models/operations/eventscontrollerbroadcasteventtoallresponse.md @@ -0,0 +1,26 @@ +# EventsControllerBroadcastEventToAllResponse + +## Example Usage + +```typescript +import { EventsControllerBroadcastEventToAllResponse } from "@novu/api/models/operations"; + +let value: EventsControllerBroadcastEventToAllResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "processed", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollercancelrequest.md b/docs/models/operations/eventscontrollercancelrequest.md new file mode 100644 index 00000000..72bf067b --- /dev/null +++ b/docs/models/operations/eventscontrollercancelrequest.md @@ -0,0 +1,17 @@ +# EventsControllerCancelRequest + +## Example Usage + +```typescript +import { EventsControllerCancelRequest } from "@novu/api/models/operations"; + +let value: EventsControllerCancelRequest = { + transactionId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollercancelresponse.md b/docs/models/operations/eventscontrollercancelresponse.md new file mode 100644 index 00000000..54202b4f --- /dev/null +++ b/docs/models/operations/eventscontrollercancelresponse.md @@ -0,0 +1,25 @@ +# EventsControllerCancelResponse + +## Example Usage + +```typescript +import { EventsControllerCancelResponse } from "@novu/api/models/operations"; + +let value: EventsControllerCancelResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + data: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DataBooleanDto](../../models/components/databooleandto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollertriggerbulkresponse.md b/docs/models/operations/eventscontrollertriggerbulkresponse.md new file mode 100644 index 00000000..774620e9 --- /dev/null +++ b/docs/models/operations/eventscontrollertriggerbulkresponse.md @@ -0,0 +1,28 @@ +# EventsControllerTriggerBulkResponse + +## Example Usage + +```typescript +import { EventsControllerTriggerBulkResponse } from "@novu/api/models/operations"; + +let value: EventsControllerTriggerBulkResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + acknowledged: false, + status: "subscriber_id_missing", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/eventscontrollertriggerresponse.md b/docs/models/operations/eventscontrollertriggerresponse.md new file mode 100644 index 00000000..0fd91b3a --- /dev/null +++ b/docs/models/operations/eventscontrollertriggerresponse.md @@ -0,0 +1,26 @@ +# EventsControllerTriggerResponse + +## Example Usage + +```typescript +import { EventsControllerTriggerResponse } from "@novu/api/models/operations"; + +let value: EventsControllerTriggerResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "no_workflow_steps_defined", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TriggerEventResponseDto](../../models/components/triggereventresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md new file mode 100644 index 00000000..edd1a2ca --- /dev/null +++ b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationrequest.md @@ -0,0 +1,20 @@ +# ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest + +## Example Usage + +```typescript +import { ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest } from "@novu/api/models/operations"; + +let value: ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = + { + notificationId: "", + subscriberId: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `notificationId` | *string* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md new file mode 100644 index 00000000..161f7486 --- /dev/null +++ b/docs/models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md @@ -0,0 +1,40 @@ +# ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse + +## Example Usage + +```typescript +import { ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse } from "@novu/api/models/operations"; + +let value: + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + organizationId: "", + jobId: "", + environmentId: "", + notificationId: "", + notificationTemplateId: "", + subscriberId: "", + transactionId: "", + channel: "push", + detail: "", + source: "Internal", + status: "Pending", + isTest: false, + isRetry: false, + }, + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ExecutionDetailsResponseDto](../../models/components/executiondetailsresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollercreateintegrationresponse.md b/docs/models/operations/integrationscontrollercreateintegrationresponse.md new file mode 100644 index 00000000..5a964ab9 --- /dev/null +++ b/docs/models/operations/integrationscontrollercreateintegrationresponse.md @@ -0,0 +1,36 @@ +# IntegrationsControllerCreateIntegrationResponse + +## Example Usage + +```typescript +import { IntegrationsControllerCreateIntegrationResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerCreateIntegrationResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "in_app", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md b/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md new file mode 100644 index 00000000..4b4c3e30 --- /dev/null +++ b/docs/models/operations/integrationscontrollergetactiveintegrationsresponse.md @@ -0,0 +1,38 @@ +# IntegrationsControllerGetActiveIntegrationsResponse + +## Example Usage + +```typescript +import { IntegrationsControllerGetActiveIntegrationsResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerGetActiveIntegrationsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "in_app", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md b/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md new file mode 100644 index 00000000..a3439ab3 --- /dev/null +++ b/docs/models/operations/integrationscontrollergetwebhooksupportstatusrequest.md @@ -0,0 +1,17 @@ +# IntegrationsControllerGetWebhookSupportStatusRequest + +## Example Usage + +```typescript +import { IntegrationsControllerGetWebhookSupportStatusRequest } from "@novu/api/models/operations"; + +let value: IntegrationsControllerGetWebhookSupportStatusRequest = { + providerOrIntegrationId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md b/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md new file mode 100644 index 00000000..e68cdb44 --- /dev/null +++ b/docs/models/operations/integrationscontrollergetwebhooksupportstatusresponse.md @@ -0,0 +1,23 @@ +# IntegrationsControllerGetWebhookSupportStatusResponse + +## Example Usage + +```typescript +import { IntegrationsControllerGetWebhookSupportStatusResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerGetWebhookSupportStatusResponse = { + headers: { + "key": [ + "", + ], + }, + result: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerlistintegrationsresponse.md b/docs/models/operations/integrationscontrollerlistintegrationsresponse.md new file mode 100644 index 00000000..40dd8daa --- /dev/null +++ b/docs/models/operations/integrationscontrollerlistintegrationsresponse.md @@ -0,0 +1,38 @@ +# IntegrationsControllerListIntegrationsResponse + +## Example Usage + +```typescript +import { IntegrationsControllerListIntegrationsResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerListIntegrationsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "in_app", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerremoveintegrationrequest.md b/docs/models/operations/integrationscontrollerremoveintegrationrequest.md new file mode 100644 index 00000000..0c1c7606 --- /dev/null +++ b/docs/models/operations/integrationscontrollerremoveintegrationrequest.md @@ -0,0 +1,17 @@ +# IntegrationsControllerRemoveIntegrationRequest + +## Example Usage + +```typescript +import { IntegrationsControllerRemoveIntegrationRequest } from "@novu/api/models/operations"; + +let value: IntegrationsControllerRemoveIntegrationRequest = { + integrationId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `integrationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerremoveintegrationresponse.md b/docs/models/operations/integrationscontrollerremoveintegrationresponse.md new file mode 100644 index 00000000..61c6a362 --- /dev/null +++ b/docs/models/operations/integrationscontrollerremoveintegrationresponse.md @@ -0,0 +1,38 @@ +# IntegrationsControllerRemoveIntegrationResponse + +## Example Usage + +```typescript +import { IntegrationsControllerRemoveIntegrationResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerRemoveIntegrationResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "chat", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md b/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md new file mode 100644 index 00000000..facc8217 --- /dev/null +++ b/docs/models/operations/integrationscontrollersetintegrationasprimaryrequest.md @@ -0,0 +1,17 @@ +# IntegrationsControllerSetIntegrationAsPrimaryRequest + +## Example Usage + +```typescript +import { IntegrationsControllerSetIntegrationAsPrimaryRequest } from "@novu/api/models/operations"; + +let value: IntegrationsControllerSetIntegrationAsPrimaryRequest = { + integrationId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `integrationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md b/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md new file mode 100644 index 00000000..57678ea8 --- /dev/null +++ b/docs/models/operations/integrationscontrollersetintegrationasprimaryresponse.md @@ -0,0 +1,36 @@ +# IntegrationsControllerSetIntegrationAsPrimaryResponse + +## Example Usage + +```typescript +import { IntegrationsControllerSetIntegrationAsPrimaryResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerSetIntegrationAsPrimaryResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "push", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md b/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md new file mode 100644 index 00000000..cb43386a --- /dev/null +++ b/docs/models/operations/integrationscontrollerupdateintegrationbyidrequest.md @@ -0,0 +1,19 @@ +# IntegrationsControllerUpdateIntegrationByIdRequest + +## Example Usage + +```typescript +import { IntegrationsControllerUpdateIntegrationByIdRequest } from "@novu/api/models/operations"; + +let value: IntegrationsControllerUpdateIntegrationByIdRequest = { + integrationId: "", + updateIntegrationRequestDto: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `integrationId` | *string* | :heavy_check_mark: | N/A | +| `updateIntegrationRequestDto` | [components.UpdateIntegrationRequestDto](../../models/components/updateintegrationrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md b/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md new file mode 100644 index 00000000..01b31772 --- /dev/null +++ b/docs/models/operations/integrationscontrollerupdateintegrationbyidresponse.md @@ -0,0 +1,36 @@ +# IntegrationsControllerUpdateIntegrationByIdResponse + +## Example Usage + +```typescript +import { IntegrationsControllerUpdateIntegrationByIdResponse } from "@novu/api/models/operations"; + +let value: IntegrationsControllerUpdateIntegrationByIdResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + name: "", + identifier: "", + providerId: "", + channel: "push", + credentials: {}, + active: false, + deleted: false, + deletedAt: "", + deletedBy: "", + primary: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.IntegrationResponseDto](../../models/components/integrationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessagerequest.md b/docs/models/operations/messagescontrollerdeletemessagerequest.md new file mode 100644 index 00000000..bd9b94de --- /dev/null +++ b/docs/models/operations/messagescontrollerdeletemessagerequest.md @@ -0,0 +1,17 @@ +# MessagesControllerDeleteMessageRequest + +## Example Usage + +```typescript +import { MessagesControllerDeleteMessageRequest } from "@novu/api/models/operations"; + +let value: MessagesControllerDeleteMessageRequest = { + messageId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `messageId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessageresponse.md b/docs/models/operations/messagescontrollerdeletemessageresponse.md new file mode 100644 index 00000000..f54d9dec --- /dev/null +++ b/docs/models/operations/messagescontrollerdeletemessageresponse.md @@ -0,0 +1,26 @@ +# MessagesControllerDeleteMessageResponse + +## Example Usage + +```typescript +import { MessagesControllerDeleteMessageResponse } from "@novu/api/models/operations"; + +let value: MessagesControllerDeleteMessageResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "deleted", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DeleteMessageResponseDto](../../models/components/deletemessageresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md new file mode 100644 index 00000000..5bea039e --- /dev/null +++ b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidrequest.md @@ -0,0 +1,18 @@ +# MessagesControllerDeleteMessagesByTransactionIdRequest + +## Example Usage + +```typescript +import { MessagesControllerDeleteMessagesByTransactionIdRequest } from "@novu/api/models/operations"; + +let value: MessagesControllerDeleteMessagesByTransactionIdRequest = { + transactionId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `channel` | [operations.QueryParamChannel](../../models/operations/queryparamchannel.md) | :heavy_minus_sign: | The channel of the message to be deleted | +| `transactionId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md new file mode 100644 index 00000000..eb117477 --- /dev/null +++ b/docs/models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md @@ -0,0 +1,21 @@ +# MessagesControllerDeleteMessagesByTransactionIdResponse + +## Example Usage + +```typescript +import { MessagesControllerDeleteMessagesByTransactionIdResponse } from "@novu/api/models/operations"; + +let value: MessagesControllerDeleteMessagesByTransactionIdResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollergetmessagesrequest.md b/docs/models/operations/messagescontrollergetmessagesrequest.md new file mode 100644 index 00000000..1a23c80a --- /dev/null +++ b/docs/models/operations/messagescontrollergetmessagesrequest.md @@ -0,0 +1,19 @@ +# MessagesControllerGetMessagesRequest + +## Example Usage + +```typescript +import { MessagesControllerGetMessagesRequest } from "@novu/api/models/operations"; + +let value: MessagesControllerGetMessagesRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `channel` | [operations.Channel](../../models/operations/channel.md) | :heavy_minus_sign: | N/A | +| `subscriberId` | *string* | :heavy_minus_sign: | N/A | +| `transactionId` | *string*[] | :heavy_minus_sign: | N/A | +| `page` | *number* | :heavy_minus_sign: | N/A | +| `limit` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/messagescontrollergetmessagesresponse.md b/docs/models/operations/messagescontrollergetmessagesresponse.md new file mode 100644 index 00000000..e3444aa3 --- /dev/null +++ b/docs/models/operations/messagescontrollergetmessagesresponse.md @@ -0,0 +1,30 @@ +# MessagesControllerGetMessagesResponse + +## Example Usage + +```typescript +import { MessagesControllerGetMessagesResponse } from "@novu/api/models/operations"; + +let value: MessagesControllerGetMessagesResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + hasMore: false, + data: [ + "", + ], + pageSize: 6531.08, + page: 2532.92, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md new file mode 100644 index 00000000..30dd544a --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md @@ -0,0 +1,27 @@ +# NotificationGroupsControllerCreateNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerCreateNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerCreateNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + environmentId: "", + organizationId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md b/docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md new file mode 100644 index 00000000..f460ee17 --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerdeletenotificationgrouprequest.md @@ -0,0 +1,17 @@ +# NotificationGroupsControllerDeleteNotificationGroupRequest + +## Example Usage + +```typescript +import { NotificationGroupsControllerDeleteNotificationGroupRequest } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerDeleteNotificationGroupRequest = { + id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md new file mode 100644 index 00000000..9d4b3783 --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md @@ -0,0 +1,26 @@ +# NotificationGroupsControllerDeleteNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerDeleteNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerDeleteNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "deleted", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DeleteNotificationGroupResponseDto](../../models/components/deletenotificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md b/docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md new file mode 100644 index 00000000..51bff1be --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollergetnotificationgrouprequest.md @@ -0,0 +1,17 @@ +# NotificationGroupsControllerGetNotificationGroupRequest + +## Example Usage + +```typescript +import { NotificationGroupsControllerGetNotificationGroupRequest } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerGetNotificationGroupRequest = { + id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md new file mode 100644 index 00000000..0a5962b8 --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollergetnotificationgroupresponse.md @@ -0,0 +1,27 @@ +# NotificationGroupsControllerGetNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerGetNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerGetNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + environmentId: "", + organizationId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md b/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md new file mode 100644 index 00000000..bfc3148c --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md @@ -0,0 +1,29 @@ +# NotificationGroupsControllerListNotificationGroupsResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerListNotificationGroupsResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerListNotificationGroupsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + name: "", + environmentId: "", + organizationId: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md b/docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md new file mode 100644 index 00000000..464f6cac --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerupdatenotificationgrouprequest.md @@ -0,0 +1,21 @@ +# NotificationGroupsControllerUpdateNotificationGroupRequest + +## Example Usage + +```typescript +import { NotificationGroupsControllerUpdateNotificationGroupRequest } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerUpdateNotificationGroupRequest = { + id: "", + createNotificationGroupRequestDto: { + name: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | +| `createNotificationGroupRequestDto` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md b/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md new file mode 100644 index 00000000..257ac529 --- /dev/null +++ b/docs/models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md @@ -0,0 +1,27 @@ +# NotificationGroupsControllerUpdateNotificationGroupResponse + +## Example Usage + +```typescript +import { NotificationGroupsControllerUpdateNotificationGroupResponse } from "@novu/api/models/operations"; + +let value: NotificationGroupsControllerUpdateNotificationGroupResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + name: "", + environmentId: "", + organizationId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.NotificationGroupResponseDto](../../models/components/notificationgroupresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md b/docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md new file mode 100644 index 00000000..a846d6c7 --- /dev/null +++ b/docs/models/operations/notificationscontrollergetactivitygraphstatsrequest.md @@ -0,0 +1,15 @@ +# NotificationsControllerGetActivityGraphStatsRequest + +## Example Usage + +```typescript +import { NotificationsControllerGetActivityGraphStatsRequest } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetActivityGraphStatsRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `days` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md b/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md new file mode 100644 index 00000000..f8de7850 --- /dev/null +++ b/docs/models/operations/notificationscontrollergetactivitygraphstatsresponse.md @@ -0,0 +1,34 @@ +# NotificationsControllerGetActivityGraphStatsResponse + +## Example Usage + +```typescript +import { NotificationsControllerGetActivityGraphStatsResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetActivityGraphStatsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + id: "", + count: 5680.45, + templates: [ + "", + ], + channels: [ + "push", + ], + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivityGraphStatesResponse](../../models/components/activitygraphstatesresponse.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetactivitystatsresponse.md b/docs/models/operations/notificationscontrollergetactivitystatsresponse.md new file mode 100644 index 00000000..0b4e27c4 --- /dev/null +++ b/docs/models/operations/notificationscontrollergetactivitystatsresponse.md @@ -0,0 +1,26 @@ +# NotificationsControllerGetActivityStatsResponse + +## Example Usage + +```typescript +import { NotificationsControllerGetActivityStatsResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetActivityStatsResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + weeklySent: 7917.25, + monthlySent: 5288.95, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivityStatsResponseDto](../../models/components/activitystatsresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetnotificationrequest.md b/docs/models/operations/notificationscontrollergetnotificationrequest.md new file mode 100644 index 00000000..41341f5c --- /dev/null +++ b/docs/models/operations/notificationscontrollergetnotificationrequest.md @@ -0,0 +1,17 @@ +# NotificationsControllerGetNotificationRequest + +## Example Usage + +```typescript +import { NotificationsControllerGetNotificationRequest } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetNotificationRequest = { + notificationId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `notificationId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollergetnotificationresponse.md b/docs/models/operations/notificationscontrollergetnotificationresponse.md new file mode 100644 index 00000000..b8b29c82 --- /dev/null +++ b/docs/models/operations/notificationscontrollergetnotificationresponse.md @@ -0,0 +1,27 @@ +# NotificationsControllerGetNotificationResponse + +## Example Usage + +```typescript +import { NotificationsControllerGetNotificationResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerGetNotificationResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + environmentId: "", + organizationId: "", + transactionId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivityNotificationResponseDto](../../models/components/activitynotificationresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollerlistnotificationsrequest.md b/docs/models/operations/notificationscontrollerlistnotificationsrequest.md new file mode 100644 index 00000000..052e45b8 --- /dev/null +++ b/docs/models/operations/notificationscontrollerlistnotificationsrequest.md @@ -0,0 +1,35 @@ +# NotificationsControllerListNotificationsRequest + +## Example Usage + +```typescript +import { NotificationsControllerListNotificationsRequest } from "@novu/api/models/operations"; + +let value: NotificationsControllerListNotificationsRequest = { + channels: [ + "push", + ], + templates: [ + "", + ], + emails: [ + "", + ], + search: "", + subscriberIds: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `channels` | [operations.Channels](../../models/operations/channels.md)[] | :heavy_check_mark: | N/A | +| `templates` | *string*[] | :heavy_check_mark: | N/A | +| `emails` | *string*[] | :heavy_check_mark: | N/A | +| ~~`search`~~ | *string* | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible. | +| `subscriberIds` | *string*[] | :heavy_check_mark: | N/A | +| `page` | *number* | :heavy_minus_sign: | N/A | +| `transactionId` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/notificationscontrollerlistnotificationsresponse.md b/docs/models/operations/notificationscontrollerlistnotificationsresponse.md new file mode 100644 index 00000000..220f95f4 --- /dev/null +++ b/docs/models/operations/notificationscontrollerlistnotificationsresponse.md @@ -0,0 +1,30 @@ +# NotificationsControllerListNotificationsResponse + +## Example Usage + +```typescript +import { NotificationsControllerListNotificationsResponse } from "@novu/api/models/operations"; + +let value: NotificationsControllerListNotificationsResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + hasMore: false, + data: [ + "", + ], + pageSize: 9636.63, + page: 3834.42, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.ActivitiesResponseDto](../../models/components/activitiesresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/parameter.md b/docs/models/operations/parameter.md new file mode 100644 index 00000000..db1b216b --- /dev/null +++ b/docs/models/operations/parameter.md @@ -0,0 +1,17 @@ +# Parameter + +the preferences level to be retrieved (template / global) + +## Example Usage + +```typescript +import { Parameter } from "@novu/api/models/operations"; + +let value: Parameter = "global"; +``` + +## Values + +```typescript +"global" | "template" +``` \ No newline at end of file diff --git a/docs/models/operations/queryparamchannel.md b/docs/models/operations/queryparamchannel.md new file mode 100644 index 00000000..a9acdf68 --- /dev/null +++ b/docs/models/operations/queryparamchannel.md @@ -0,0 +1,17 @@ +# QueryParamChannel + +The channel of the message to be deleted + +## Example Usage + +```typescript +import { QueryParamChannel } from "@novu/api/models/operations"; + +let value: QueryParamChannel = "sms"; +``` + +## Values + +```typescript +"in_app" | "email" | "sms" | "chat" | "push" +``` \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md b/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md new file mode 100644 index 00000000..c03b7c54 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md @@ -0,0 +1,21 @@ +# SubscribersControllerBulkCreateSubscribersResponse + +## Example Usage + +```typescript +import { SubscribersControllerBulkCreateSubscribersResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerBulkCreateSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md b/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md new file mode 100644 index 00000000..e1a3c7a7 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerchataccessoauthrequest.md @@ -0,0 +1,24 @@ +# SubscribersControllerChatAccessOauthRequest + +## Example Usage + +```typescript +import { SubscribersControllerChatAccessOauthRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerChatAccessOauthRequest = { + subscriberId: "", + providerId: "", + hmacHash: "", + environmentId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `providerId` | *any* | :heavy_check_mark: | N/A | +| `hmacHash` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `integrationIdentifier` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md b/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md new file mode 100644 index 00000000..45085487 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerchataccessoauthresponse.md @@ -0,0 +1,21 @@ +# SubscribersControllerChatAccessOauthResponse + +## Example Usage + +```typescript +import { SubscribersControllerChatAccessOauthResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerChatAccessOauthResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md new file mode 100644 index 00000000..115eb8c6 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerchatoauthcallbackrequest.md @@ -0,0 +1,26 @@ +# SubscribersControllerChatOauthCallbackRequest + +## Example Usage + +```typescript +import { SubscribersControllerChatOauthCallbackRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerChatOauthCallbackRequest = { + subscriberId: "", + providerId: "", + code: "", + hmacHash: "", + environmentId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `providerId` | *any* | :heavy_check_mark: | N/A | +| `code` | *string* | :heavy_check_mark: | N/A | +| `hmacHash` | *string* | :heavy_check_mark: | N/A | +| `environmentId` | *string* | :heavy_check_mark: | N/A | +| `integrationIdentifier` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md new file mode 100644 index 00000000..1f17ff94 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponse.md @@ -0,0 +1,23 @@ +# SubscribersControllerChatOauthCallbackResponse + +## Example Usage + +```typescript +import { SubscribersControllerChatOauthCallbackResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerChatOauthCallbackResponse = { + headers: { + "key": [ + "", + ], + }, + result: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [operations.SubscribersControllerChatOauthCallbackResponseBody](../../models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md new file mode 100644 index 00000000..9476de24 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerchatoauthcallbackresponsebody.md @@ -0,0 +1,14 @@ +# SubscribersControllerChatOauthCallbackResponseBody + +## Example Usage + +```typescript +import { SubscribersControllerChatOauthCallbackResponseBody } from "@novu/api/models/operations"; + +let value: SubscribersControllerChatOauthCallbackResponseBody = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md b/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md new file mode 100644 index 00000000..12c5d2d3 --- /dev/null +++ b/docs/models/operations/subscriberscontrollercreatesubscriberresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerCreateSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerCreateSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerCreateSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md new file mode 100644 index 00000000..6f2cf92f --- /dev/null +++ b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsrequest.md @@ -0,0 +1,19 @@ +# SubscribersControllerDeleteSubscriberCredentialsRequest + +## Example Usage + +```typescript +import { SubscribersControllerDeleteSubscriberCredentialsRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerDeleteSubscriberCredentialsRequest = { + subscriberId: "", + providerId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `providerId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md new file mode 100644 index 00000000..96b2334f --- /dev/null +++ b/docs/models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md @@ -0,0 +1,21 @@ +# SubscribersControllerDeleteSubscriberCredentialsResponse + +## Example Usage + +```typescript +import { SubscribersControllerDeleteSubscriberCredentialsResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerDeleteSubscriberCredentialsResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md new file mode 100644 index 00000000..59ad8e16 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedrequest.md @@ -0,0 +1,24 @@ +# SubscribersControllerGetNotificationsFeedRequest + +## Example Usage + +```typescript +import { SubscribersControllerGetNotificationsFeedRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetNotificationsFeedRequest = { + subscriberId: "", + payload: + "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | | +| `page` | *number* | :heavy_minus_sign: | N/A | | +| `limit` | *number* | :heavy_minus_sign: | N/A | | +| `read` | *boolean* | :heavy_minus_sign: | N/A | | +| `seen` | *boolean* | :heavy_minus_sign: | N/A | | +| `payload` | *string* | :heavy_minus_sign: | Base64 encoded string of the partial payload JSON object | btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md new file mode 100644 index 00000000..8941f043 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponse.md @@ -0,0 +1,37 @@ +# SubscribersControllerGetNotificationsFeedResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetNotificationsFeedResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetNotificationsFeedResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + page: 3595.08, + hasMore: false, + pageSize: 4370.32, + data: [ + { + hasMore: false, + data: [ + "", + ], + pageSize: 6976.31, + page: 602.25, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [operations.SubscribersControllerGetNotificationsFeedResponseBody](../../models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md new file mode 100644 index 00000000..a612bdac --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetnotificationsfeedresponsebody.md @@ -0,0 +1,32 @@ +# SubscribersControllerGetNotificationsFeedResponseBody + +## Example Usage + +```typescript +import { SubscribersControllerGetNotificationsFeedResponseBody } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetNotificationsFeedResponseBody = { + page: 6120.96, + hasMore: false, + pageSize: 6169.34, + data: [ + { + hasMore: false, + data: [ + "", + ], + pageSize: 9437.48, + page: 6818.20, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `page` | *number* | :heavy_check_mark: | The current page of the paginated response | +| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | +| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | +| `data` | [components.FeedResponseDto](../../models/components/feedresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md new file mode 100644 index 00000000..e8279689 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md @@ -0,0 +1,20 @@ +# SubscribersControllerGetSubscriberPreferenceByLevelRequest + +## Example Usage + +```typescript +import { SubscribersControllerGetSubscriberPreferenceByLevelRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetSubscriberPreferenceByLevelRequest = { + parameter: "template", + subscriberId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | +| `parameter` | [operations.Parameter](../../models/operations/parameter.md) | :heavy_check_mark: | the preferences level to be retrieved (template / global) | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md new file mode 100644 index 00000000..4c8c5595 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerGetSubscriberPreferenceByLevelResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetSubscriberPreferenceByLevelResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetSubscriberPreferenceByLevelResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + preference: { + enabled: false, + channels: {}, + }, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.GetSubscriberPreferencesResponseDto](../../models/components/getsubscriberpreferencesresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberrequest.md b/docs/models/operations/subscriberscontrollergetsubscriberrequest.md new file mode 100644 index 00000000..e7ad3e9f --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetsubscriberrequest.md @@ -0,0 +1,18 @@ +# SubscribersControllerGetSubscriberRequest + +## Example Usage + +```typescript +import { SubscribersControllerGetSubscriberRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetSubscriberRequest = { + subscriberId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeTopics` | *string* | :heavy_minus_sign: | Includes the topics associated with the subscriber | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetsubscriberresponse.md b/docs/models/operations/subscriberscontrollergetsubscriberresponse.md new file mode 100644 index 00000000..1b9b405e --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetsubscriberresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerGetSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetunseencountrequest.md b/docs/models/operations/subscriberscontrollergetunseencountrequest.md new file mode 100644 index 00000000..be7f9ad7 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetunseencountrequest.md @@ -0,0 +1,21 @@ +# SubscribersControllerGetUnseenCountRequest + +## Example Usage + +```typescript +import { SubscribersControllerGetUnseenCountRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetUnseenCountRequest = { + seen: false, + subscriberId: "", + limit: 6667.67, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `seen` | *boolean* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `limit` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollergetunseencountresponse.md b/docs/models/operations/subscriberscontrollergetunseencountresponse.md new file mode 100644 index 00000000..5f1db382 --- /dev/null +++ b/docs/models/operations/subscriberscontrollergetunseencountresponse.md @@ -0,0 +1,25 @@ +# SubscribersControllerGetUnseenCountResponse + +## Example Usage + +```typescript +import { SubscribersControllerGetUnseenCountResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerGetUnseenCountResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + count: 6706.38, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UnseenCountResponse](../../models/components/unseencountresponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md new file mode 100644 index 00000000..fdc52a3e --- /dev/null +++ b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesrequest.md @@ -0,0 +1,18 @@ +# SubscribersControllerListSubscriberPreferencesRequest + +## Example Usage + +```typescript +import { SubscribersControllerListSubscriberPreferencesRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerListSubscriberPreferencesRequest = { + subscriberId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md new file mode 100644 index 00000000..bddcc179 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md @@ -0,0 +1,38 @@ +# SubscribersControllerListSubscriberPreferencesResponse + +## Example Usage + +```typescript +import { SubscribersControllerListSubscriberPreferencesResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerListSubscriberPreferencesResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + { + template: { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], + }, + preference: { + enabled: false, + channels: {}, + }, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersrequest.md b/docs/models/operations/subscriberscontrollerlistsubscribersrequest.md new file mode 100644 index 00000000..b96e44f9 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerlistsubscribersrequest.md @@ -0,0 +1,16 @@ +# SubscribersControllerListSubscribersRequest + +## Example Usage + +```typescript +import { SubscribersControllerListSubscribersRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerListSubscribersRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `page` | *number* | :heavy_minus_sign: | N/A | +| `limit` | *number* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md new file mode 100644 index 00000000..0e8e1a77 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerlistsubscribersresponse.md @@ -0,0 +1,37 @@ +# SubscribersControllerListSubscribersResponse + +## Example Usage + +```typescript +import { SubscribersControllerListSubscribersResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerListSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + page: 4614.79, + hasMore: false, + pageSize: 7805.29, + data: [ + { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [operations.SubscribersControllerListSubscribersResponseBody](../../models/operations/subscriberscontrollerlistsubscribersresponsebody.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md b/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md new file mode 100644 index 00000000..d52b116f --- /dev/null +++ b/docs/models/operations/subscriberscontrollerlistsubscribersresponsebody.md @@ -0,0 +1,32 @@ +# SubscribersControllerListSubscribersResponseBody + +## Example Usage + +```typescript +import { SubscribersControllerListSubscribersResponseBody } from "@novu/api/models/operations"; + +let value: SubscribersControllerListSubscribersResponseBody = { + page: 9786.18, + hasMore: false, + pageSize: 7991.59, + data: [ + { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `page` | *number* | :heavy_check_mark: | The current page of the paginated response | +| `hasMore` | *boolean* | :heavy_check_mark: | Does the list have more items to fetch | +| `pageSize` | *number* | :heavy_check_mark: | Number of items on each page | +| `data` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md b/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md new file mode 100644 index 00000000..9437042b --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkactionasseenrequest.md @@ -0,0 +1,25 @@ +# SubscribersControllerMarkActionAsSeenRequest + +## Example Usage + +```typescript +import { SubscribersControllerMarkActionAsSeenRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkActionAsSeenRequest = { + messageId: "", + type: "", + subscriberId: "", + markMessageActionAsSeenDto: { + status: "done", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `messageId` | *string* | :heavy_check_mark: | N/A | +| `type` | *any* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `markMessageActionAsSeenDto` | [components.MarkMessageActionAsSeenDto](../../models/components/markmessageactionasseendto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md b/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md new file mode 100644 index 00000000..8880a20d --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkactionasseenresponse.md @@ -0,0 +1,47 @@ +# SubscribersControllerMarkActionAsSeenResponse + +## Example Usage + +```typescript +import { SubscribersControllerMarkActionAsSeenResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkActionAsSeenResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + templateId: "", + environmentId: "", + messageTemplateId: "", + organizationId: "", + notificationId: "", + subscriberId: "", + createdAt: "", + content: { + type: "text", + content: "", + }, + transactionId: "", + channel: "in_app", + read: false, + seen: false, + cta: { + data: {}, + }, + status: "sent", + errorId: "", + errorText: "", + payload: {}, + overrides: {}, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.MessageResponseDto](../../models/components/messageresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md b/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md new file mode 100644 index 00000000..201ffad6 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkallunreadasreadrequest.md @@ -0,0 +1,21 @@ +# SubscribersControllerMarkAllUnreadAsReadRequest + +## Example Usage + +```typescript +import { SubscribersControllerMarkAllUnreadAsReadRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkAllUnreadAsReadRequest = { + subscriberId: "", + markAllMessageAsRequestDto: { + markAs: "seen", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md b/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md new file mode 100644 index 00000000..a8d15823 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkallunreadasreadresponse.md @@ -0,0 +1,23 @@ +# SubscribersControllerMarkAllUnreadAsReadResponse + +## Example Usage + +```typescript +import { SubscribersControllerMarkAllUnreadAsReadResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkAllUnreadAsReadResponse = { + headers: { + "key": [ + "", + ], + }, + result: 3637.11, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md new file mode 100644 index 00000000..6869e508 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkmessagesasrequest.md @@ -0,0 +1,22 @@ +# SubscribersControllerMarkMessagesAsRequest + +## Example Usage + +```typescript +import { SubscribersControllerMarkMessagesAsRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkMessagesAsRequest = { + subscriberId: "", + messageMarkAsRequestDto: { + messageId: "", + markAs: "read", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `messageMarkAsRequestDto` | [components.MessageMarkAsRequestDto](../../models/components/messagemarkasrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md b/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md new file mode 100644 index 00000000..080c2291 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermarkmessagesasresponse.md @@ -0,0 +1,25 @@ +# SubscribersControllerMarkMessagesAsResponse + +## Example Usage + +```typescript +import { SubscribersControllerMarkMessagesAsResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerMarkMessagesAsResponse = { + headers: { + "key": [ + "", + ], + }, + result: [ + {}, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.MessageEntity](../../models/components/messageentity.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md new file mode 100644 index 00000000..9d4fa810 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermodifysubscriberchannelrequest.md @@ -0,0 +1,24 @@ +# SubscribersControllerModifySubscriberChannelRequest + +## Example Usage + +```typescript +import { SubscribersControllerModifySubscriberChannelRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerModifySubscriberChannelRequest = { + subscriberId: "", + updateSubscriberChannelRequestDto: { + providerId: "getstream", + credentials: { + webhookUrl: "https://sorrowful-import.name/", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md b/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md new file mode 100644 index 00000000..8c1d1364 --- /dev/null +++ b/docs/models/operations/subscriberscontrollermodifysubscriberchannelresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerModifySubscriberChannelResponse + +## Example Usage + +```typescript +import { SubscribersControllerModifySubscriberChannelResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerModifySubscriberChannelResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md b/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md new file mode 100644 index 00000000..3f3a9ccb --- /dev/null +++ b/docs/models/operations/subscriberscontrollerremovesubscriberrequest.md @@ -0,0 +1,17 @@ +# SubscribersControllerRemoveSubscriberRequest + +## Example Usage + +```typescript +import { SubscribersControllerRemoveSubscriberRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerRemoveSubscriberRequest = { + subscriberId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md b/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md new file mode 100644 index 00000000..6b3a99da --- /dev/null +++ b/docs/models/operations/subscriberscontrollerremovesubscriberresponse.md @@ -0,0 +1,26 @@ +# SubscribersControllerRemoveSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerRemoveSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerRemoveSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + acknowledged: false, + status: "deleted", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.DeleteSubscriberResponseDto](../../models/components/deletesubscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md new file mode 100644 index 00000000..dd51367f --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelrequest.md @@ -0,0 +1,24 @@ +# SubscribersControllerUpdateSubscriberChannelRequest + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberChannelRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberChannelRequest = { + subscriberId: "", + updateSubscriberChannelRequestDto: { + providerId: "msteams", + credentials: { + webhookUrl: "https://corrupt-unblinking.name", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md new file mode 100644 index 00000000..bf20d9c1 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerUpdateSubscriberChannelResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberChannelResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberChannelResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md new file mode 100644 index 00000000..ddcd4cda --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesrequest.md @@ -0,0 +1,19 @@ +# SubscribersControllerUpdateSubscriberGlobalPreferencesRequest + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberGlobalPreferencesRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { + subscriberId: "", + updateSubscriberGlobalPreferencesRequestDto: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md new file mode 100644 index 00000000..48ccd5a7 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md @@ -0,0 +1,36 @@ +# SubscribersControllerUpdateSubscriberGlobalPreferencesResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberGlobalPreferencesResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberGlobalPreferencesResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + template: { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], + }, + preference: { + enabled: false, + channels: {}, + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md new file mode 100644 index 00000000..44b31f42 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagrequest.md @@ -0,0 +1,21 @@ +# SubscribersControllerUpdateSubscriberOnlineFlagRequest + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberOnlineFlagRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberOnlineFlagRequest = { + subscriberId: "", + updateSubscriberOnlineFlagRequestDto: { + isOnline: false, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberOnlineFlagRequestDto` | [components.UpdateSubscriberOnlineFlagRequestDto](../../models/components/updatesubscriberonlineflagrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md new file mode 100644 index 00000000..84bf07eb --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerUpdateSubscriberOnlineFlagResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberOnlineFlagResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberOnlineFlagResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md new file mode 100644 index 00000000..52454602 --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md @@ -0,0 +1,21 @@ +# SubscribersControllerUpdateSubscriberPreferenceRequest + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberPreferenceRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberPreferenceRequest = { + subscriberId: "", + parameter: "", + updateSubscriberPreferenceRequestDto: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `parameter` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberPreferenceRequestDto` | [components.UpdateSubscriberPreferenceRequestDto](../../models/components/updatesubscriberpreferencerequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md new file mode 100644 index 00000000..cf8d8d3b --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md @@ -0,0 +1,36 @@ +# SubscribersControllerUpdateSubscriberPreferenceResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberPreferenceResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberPreferenceResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + template: { + id: "", + name: "", + critical: false, + triggers: [ + "", + ], + }, + preference: { + enabled: false, + channels: {}, + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.UpdateSubscriberPreferenceResponseDto](../../models/components/updatesubscriberpreferenceresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md b/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md new file mode 100644 index 00000000..6e11a5eb --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberrequest.md @@ -0,0 +1,19 @@ +# SubscribersControllerUpdateSubscriberRequest + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberRequest } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberRequest = { + subscriberId: "", + updateSubscriberRequestDto: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberRequestDto` | [components.UpdateSubscriberRequestDto](../../models/components/updatesubscriberrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md b/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md new file mode 100644 index 00000000..096c2fed --- /dev/null +++ b/docs/models/operations/subscriberscontrollerupdatesubscriberresponse.md @@ -0,0 +1,30 @@ +# SubscribersControllerUpdateSubscriberResponse + +## Example Usage + +```typescript +import { SubscribersControllerUpdateSubscriberResponse } from "@novu/api/models/operations"; + +let value: SubscribersControllerUpdateSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + subscriberId: "", + organizationId: "", + environmentId: "", + deleted: false, + createdAt: "", + updatedAt: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.SubscriberResponseDto](../../models/components/subscriberresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrolleraddsubscribersrequest.md b/docs/models/operations/topicscontrolleraddsubscribersrequest.md new file mode 100644 index 00000000..d618fb15 --- /dev/null +++ b/docs/models/operations/topicscontrolleraddsubscribersrequest.md @@ -0,0 +1,23 @@ +# TopicsControllerAddSubscribersRequest + +## Example Usage + +```typescript +import { TopicsControllerAddSubscribersRequest } from "@novu/api/models/operations"; + +let value: TopicsControllerAddSubscribersRequest = { + topicKey: "", + addSubscribersRequestDto: { + subscribers: [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `addSubscribersRequestDto` | [components.AddSubscribersRequestDto](../../models/components/addsubscribersrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrolleraddsubscribersresponse.md b/docs/models/operations/topicscontrolleraddsubscribersresponse.md new file mode 100644 index 00000000..29fa2cf2 --- /dev/null +++ b/docs/models/operations/topicscontrolleraddsubscribersresponse.md @@ -0,0 +1,21 @@ +# TopicsControllerAddSubscribersResponse + +## Example Usage + +```typescript +import { TopicsControllerAddSubscribersResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerAddSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollercreatetopicresponse.md b/docs/models/operations/topicscontrollercreatetopicresponse.md new file mode 100644 index 00000000..a4d12ed3 --- /dev/null +++ b/docs/models/operations/topicscontrollercreatetopicresponse.md @@ -0,0 +1,25 @@ +# TopicsControllerCreateTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerCreateTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerCreateTopicResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + key: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.CreateTopicResponseDto](../../models/components/createtopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerdeletetopicrequest.md b/docs/models/operations/topicscontrollerdeletetopicrequest.md new file mode 100644 index 00000000..91fa24c2 --- /dev/null +++ b/docs/models/operations/topicscontrollerdeletetopicrequest.md @@ -0,0 +1,17 @@ +# TopicsControllerDeleteTopicRequest + +## Example Usage + +```typescript +import { TopicsControllerDeleteTopicRequest } from "@novu/api/models/operations"; + +let value: TopicsControllerDeleteTopicRequest = { + topicKey: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerdeletetopicresponse.md b/docs/models/operations/topicscontrollerdeletetopicresponse.md new file mode 100644 index 00000000..0016e20e --- /dev/null +++ b/docs/models/operations/topicscontrollerdeletetopicresponse.md @@ -0,0 +1,21 @@ +# TopicsControllerDeleteTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerDeleteTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerDeleteTopicResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicrequest.md b/docs/models/operations/topicscontrollergettopicrequest.md new file mode 100644 index 00000000..10c3e7ba --- /dev/null +++ b/docs/models/operations/topicscontrollergettopicrequest.md @@ -0,0 +1,17 @@ +# TopicsControllerGetTopicRequest + +## Example Usage + +```typescript +import { TopicsControllerGetTopicRequest } from "@novu/api/models/operations"; + +let value: TopicsControllerGetTopicRequest = { + topicKey: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicresponse.md b/docs/models/operations/topicscontrollergettopicresponse.md new file mode 100644 index 00000000..44458224 --- /dev/null +++ b/docs/models/operations/topicscontrollergettopicresponse.md @@ -0,0 +1,31 @@ +# TopicsControllerGetTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerGetTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerGetTopicResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.GetTopicResponseDto](../../models/components/gettopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicsubscriberrequest.md b/docs/models/operations/topicscontrollergettopicsubscriberrequest.md new file mode 100644 index 00000000..5037dd89 --- /dev/null +++ b/docs/models/operations/topicscontrollergettopicsubscriberrequest.md @@ -0,0 +1,19 @@ +# TopicsControllerGetTopicSubscriberRequest + +## Example Usage + +```typescript +import { TopicsControllerGetTopicSubscriberRequest } from "@novu/api/models/operations"; + +let value: TopicsControllerGetTopicSubscriberRequest = { + externalSubscriberId: "", + topicKey: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `externalSubscriberId` | *string* | :heavy_check_mark: | The external subscriber id | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollergettopicsubscriberresponse.md b/docs/models/operations/topicscontrollergettopicsubscriberresponse.md new file mode 100644 index 00000000..774ef9c1 --- /dev/null +++ b/docs/models/operations/topicscontrollergettopicsubscriberresponse.md @@ -0,0 +1,30 @@ +# TopicsControllerGetTopicSubscriberResponse + +## Example Usage + +```typescript +import { TopicsControllerGetTopicSubscriberResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerGetTopicSubscriberResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + organizationId: "", + environmentId: "", + subscriberId: "", + topicId: "", + topicKey: "", + externalSubscriberId: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.TopicSubscriberDto](../../models/components/topicsubscriberdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerlisttopicsrequest.md b/docs/models/operations/topicscontrollerlisttopicsrequest.md new file mode 100644 index 00000000..ef798d99 --- /dev/null +++ b/docs/models/operations/topicscontrollerlisttopicsrequest.md @@ -0,0 +1,17 @@ +# TopicsControllerListTopicsRequest + +## Example Usage + +```typescript +import { TopicsControllerListTopicsRequest } from "@novu/api/models/operations"; + +let value: TopicsControllerListTopicsRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `page` | *number* | :heavy_minus_sign: | Number of page for the pagination | +| `pageSize` | *number* | :heavy_minus_sign: | Size of page for the pagination | +| `key` | *string* | :heavy_minus_sign: | Topic key | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerlisttopicsresponse.md b/docs/models/operations/topicscontrollerlisttopicsresponse.md new file mode 100644 index 00000000..5e2081d1 --- /dev/null +++ b/docs/models/operations/topicscontrollerlisttopicsresponse.md @@ -0,0 +1,38 @@ +# TopicsControllerListTopicsResponse + +## Example Usage + +```typescript +import { TopicsControllerListTopicsResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerListTopicsResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + data: [ + { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], + }, + ], + page: 2444.26, + pageSize: 1589.70, + totalCount: 1103.75, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.FilterTopicsResponseDto](../../models/components/filtertopicsresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerremovesubscribersrequest.md b/docs/models/operations/topicscontrollerremovesubscribersrequest.md new file mode 100644 index 00000000..2120c9fe --- /dev/null +++ b/docs/models/operations/topicscontrollerremovesubscribersrequest.md @@ -0,0 +1,23 @@ +# TopicsControllerRemoveSubscribersRequest + +## Example Usage + +```typescript +import { TopicsControllerRemoveSubscribersRequest } from "@novu/api/models/operations"; + +let value: TopicsControllerRemoveSubscribersRequest = { + topicKey: "", + removeSubscribersRequestDto: { + subscribers: [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerremovesubscribersresponse.md b/docs/models/operations/topicscontrollerremovesubscribersresponse.md new file mode 100644 index 00000000..bca5e233 --- /dev/null +++ b/docs/models/operations/topicscontrollerremovesubscribersresponse.md @@ -0,0 +1,21 @@ +# TopicsControllerRemoveSubscribersResponse + +## Example Usage + +```typescript +import { TopicsControllerRemoveSubscribersResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerRemoveSubscribersResponse = { + headers: { + "key": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------- | -------------------------- | -------------------------- | -------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerrenametopicrequest.md b/docs/models/operations/topicscontrollerrenametopicrequest.md new file mode 100644 index 00000000..8f50fa1d --- /dev/null +++ b/docs/models/operations/topicscontrollerrenametopicrequest.md @@ -0,0 +1,21 @@ +# TopicsControllerRenameTopicRequest + +## Example Usage + +```typescript +import { TopicsControllerRenameTopicRequest } from "@novu/api/models/operations"; + +let value: TopicsControllerRenameTopicRequest = { + topicKey: "", + renameTopicRequestDto: { + name: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `renameTopicRequestDto` | [components.RenameTopicRequestDto](../../models/components/renametopicrequestdto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/operations/topicscontrollerrenametopicresponse.md b/docs/models/operations/topicscontrollerrenametopicresponse.md new file mode 100644 index 00000000..2977f8cc --- /dev/null +++ b/docs/models/operations/topicscontrollerrenametopicresponse.md @@ -0,0 +1,31 @@ +# TopicsControllerRenameTopicResponse + +## Example Usage + +```typescript +import { TopicsControllerRenameTopicResponse } from "@novu/api/models/operations"; + +let value: TopicsControllerRenameTopicResponse = { + headers: { + "key": [ + "", + ], + }, + result: { + organizationId: "", + environmentId: "", + key: "", + name: "", + subscribers: [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `headers` | Record | :heavy_check_mark: | N/A | +| `result` | [components.RenameTopicResponseDto](../../models/components/renametopicresponsedto.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/sdks/apikeys/README.md b/docs/sdks/apikeys/README.md new file mode 100644 index 00000000..166c1cb5 --- /dev/null +++ b/docs/sdks/apikeys/README.md @@ -0,0 +1,79 @@ +# ApiKeys +(*environments.apiKeys*) + +## Overview + +### Available Operations + +* [list](#list) - Get api keys + +## list + +Get api keys + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.environments.apiKeys.list(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { environmentsApiKeysList } from "@novu/api/funcs/environmentsApiKeysList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await environmentsApiKeysList(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse](../../models/operations/environmentscontrollerv1listorganizationapikeysresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/authentication/README.md b/docs/sdks/authentication/README.md new file mode 100644 index 00000000..879f43a1 --- /dev/null +++ b/docs/sdks/authentication/README.md @@ -0,0 +1,175 @@ +# Authentication +(*subscribers.authentication*) + +## Overview + +### Available Operations + +* [chatAccessOauthCallBack](#chataccessoauthcallback) - Handle providers oauth redirect +* [chatAccessOauth](#chataccessoauth) - Handle chat oauth + +## chatAccessOauthCallBack + +Handle providers oauth redirect + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.authentication.chatAccessOauthCallBack({ + subscriberId: "", + providerId: "", + code: "", + hmacHash: "", + environmentId: "", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersAuthenticationChatAccessOauthCallBack } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersAuthenticationChatAccessOauthCallBack(novu, { + subscriberId: "", + providerId: "", + code: "", + hmacHash: "", + environmentId: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerChatOauthCallbackRequest](../../models/operations/subscriberscontrollerchatoauthcallbackrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerChatOauthCallbackResponse](../../models/operations/subscriberscontrollerchatoauthcallbackresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## chatAccessOauth + +Handle chat oauth + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.authentication.chatAccessOauth({ + subscriberId: "", + providerId: "", + hmacHash: "", + environmentId: "", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersAuthenticationChatAccessOauth } from "@novu/api/funcs/subscribersAuthenticationChatAccessOauth.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersAuthenticationChatAccessOauth(novu, { + subscriberId: "", + providerId: "", + hmacHash: "", + environmentId: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerChatAccessOauthRequest](../../models/operations/subscriberscontrollerchataccessoauthrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerChatAccessOauthResponse](../../models/operations/subscriberscontrollerchataccessoauthresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/credentials/README.md b/docs/sdks/credentials/README.md new file mode 100644 index 00000000..9d6d880f --- /dev/null +++ b/docs/sdks/credentials/README.md @@ -0,0 +1,251 @@ +# Credentials +(*subscribers.credentials*) + +## Overview + +### Available Operations + +* [update](#update) - Update subscriber credentials +* [append](#append) - Modify subscriber credentials +* [delete](#delete) - Delete subscriber credentials by providerId + +## update + +Subscriber credentials associated to the delivery methods such as slack and push tokens. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.credentials.update({ + providerId: "pushpad", + credentials: { + webhookUrl: "https://grown-worth.name", + }, + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersCredentialsUpdate } from "@novu/api/funcs/subscribersCredentialsUpdate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersCredentialsUpdate(novu, { + providerId: "pushpad", + credentials: { + webhookUrl: "https://grown-worth.name", + }, + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerUpdateSubscriberChannelResponse](../../models/operations/subscriberscontrollerupdatesubscriberchannelresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## append + +Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.credentials.append({ + providerId: "zulip", + credentials: { + webhookUrl: "https://talkative-pop.org", + }, + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersCredentialsAppend } from "@novu/api/funcs/subscribersCredentialsAppend.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersCredentialsAppend(novu, { + providerId: "zulip", + credentials: { + webhookUrl: "https://talkative-pop.org", + }, + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberChannelRequestDto` | [components.UpdateSubscriberChannelRequestDto](../../models/components/updatesubscriberchannelrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerModifySubscriberChannelResponse](../../models/operations/subscriberscontrollermodifysubscriberchannelresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +Delete subscriber credentials such as slack and expo tokens. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.credentials.delete("", ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersCredentialsDelete } from "@novu/api/funcs/subscribersCredentialsDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersCredentialsDelete(novu, "", ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `providerId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerDeleteSubscriberCredentialsResponse](../../models/operations/subscriberscontrollerdeletesubscribercredentialsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/environments/README.md b/docs/sdks/environments/README.md new file mode 100644 index 00000000..90933a53 --- /dev/null +++ b/docs/sdks/environments/README.md @@ -0,0 +1,154 @@ +# Environments +(*environments*) + +## Overview + +Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + + +### Available Operations + +* [retrieve](#retrieve) - Get current environment +* [list](#list) - Get environments + +## retrieve + +Get current environment + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.environments.retrieve(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { environmentsRetrieve } from "@novu/api/funcs/environmentsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await environmentsRetrieve(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse](../../models/operations/environmentscontrollerv1getcurrentenvironmentresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## list + +Get environments + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.environments.list(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { environmentsList } from "@novu/api/funcs/environmentsList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await environmentsList(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.EnvironmentsControllerV1ListMyEnvironmentsResponse](../../models/operations/environmentscontrollerv1listmyenvironmentsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/executiondetails/README.md b/docs/sdks/executiondetails/README.md new file mode 100644 index 00000000..150d009c --- /dev/null +++ b/docs/sdks/executiondetails/README.md @@ -0,0 +1,84 @@ +# ExecutionDetails +(*executionDetails*) + +## Overview + +Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + + +### Available Operations + +* [retrieve](#retrieve) - Get execution details + +## retrieve + +Get execution details + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.executionDetails.retrieve("", ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { executionDetailsRetrieve } from "@novu/api/funcs/executionDetailsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await executionDetailsRetrieve(novu, "", ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `notificationId` | *string* | :heavy_check_mark: | N/A | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse](../../models/operations/executiondetailscontrollergetexecutiondetailsfornotificationresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/integrations/README.md b/docs/sdks/integrations/README.md new file mode 100644 index 00000000..e54c9f26 --- /dev/null +++ b/docs/sdks/integrations/README.md @@ -0,0 +1,453 @@ +# Integrations +(*integrations*) + +## Overview + +With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + + +### Available Operations + +* [list](#list) - Get integrations +* [create](#create) - Create integration +* [listActive](#listactive) - Get active integrations +* [update](#update) - Update integration +* [delete](#delete) - Delete integration +* [setAsPrimary](#setasprimary) - Set integration as primary + +## list + +Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.list(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsList } from "@novu/api/funcs/integrationsList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsList(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerListIntegrationsResponse](../../models/operations/integrationscontrollerlistintegrationsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## create + +Create an integration for the current environment the user is based on the API key provided + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.create({ + providerId: "", + channel: "sms", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsCreate } from "@novu/api/funcs/integrationsCreate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsCreate(novu, { + providerId: "", + channel: "sms", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.CreateIntegrationRequestDto](../../models/components/createintegrationrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerCreateIntegrationResponse](../../models/operations/integrationscontrollercreateintegrationresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## listActive + +Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.listActive(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsListActive } from "@novu/api/funcs/integrationsListActive.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsListActive(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerGetActiveIntegrationsResponse](../../models/operations/integrationscontrollergetactiveintegrationsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## update + +Update integration + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.update({}, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsUpdate } from "@novu/api/funcs/integrationsUpdate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsUpdate(novu, {}, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `integrationId` | *string* | :heavy_check_mark: | N/A | +| `updateIntegrationRequestDto` | [components.UpdateIntegrationRequestDto](../../models/components/updateintegrationrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerUpdateIntegrationByIdResponse](../../models/operations/integrationscontrollerupdateintegrationbyidresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +Delete integration + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.delete(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsDelete } from "@novu/api/funcs/integrationsDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsDelete(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `integrationId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerRemoveIntegrationResponse](../../models/operations/integrationscontrollerremoveintegrationresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## setAsPrimary + +Set integration as primary + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.setAsPrimary(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsSetAsPrimary } from "@novu/api/funcs/integrationsSetAsPrimary.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsSetAsPrimary(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `integrationId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerSetIntegrationAsPrimaryResponse](../../models/operations/integrationscontrollersetintegrationasprimaryresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/messages/README.md b/docs/sdks/messages/README.md new file mode 100644 index 00000000..3821db0c --- /dev/null +++ b/docs/sdks/messages/README.md @@ -0,0 +1,230 @@ +# Messages +(*messages*) + +## Overview + +A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + + +### Available Operations + +* [retrieve](#retrieve) - Get messages +* [delete](#delete) - Delete message +* [deleteByTransactionId](#deletebytransactionid) - Delete messages by transactionId + +## retrieve + +Returns a list of messages, could paginate using the `page` query parameter + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.messages.retrieve({}); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { messagesRetrieve } from "@novu/api/funcs/messagesRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await messagesRetrieve(novu, {}); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.MessagesControllerGetMessagesRequest](../../models/operations/messagescontrollergetmessagesrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.MessagesControllerGetMessagesResponse](../../models/operations/messagescontrollergetmessagesresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +Deletes a message entity from the Novu platform + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.messages.delete(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { messagesDelete } from "@novu/api/funcs/messagesDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await messagesDelete(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `messageId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.MessagesControllerDeleteMessageResponse](../../models/operations/messagescontrollerdeletemessageresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## deleteByTransactionId + +Deletes messages entity from the Novu platform using TransactionId of message + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.messages.deleteByTransactionId(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { messagesDeleteByTransactionId } from "@novu/api/funcs/messagesDeleteByTransactionId.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await messagesDeleteByTransactionId(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `channel` | [operations.QueryParamChannel](../../models/operations/queryparamchannel.md) | :heavy_minus_sign: | The channel of the message to be deleted | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.MessagesControllerDeleteMessagesByTransactionIdResponse](../../models/operations/messagescontrollerdeletemessagesbytransactionidresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/notifications/README.md b/docs/sdks/notifications/README.md new file mode 100644 index 00000000..09ed556c --- /dev/null +++ b/docs/sdks/notifications/README.md @@ -0,0 +1,187 @@ +# Notifications +(*notifications*) + +## Overview + +### Available Operations + +* [list](#list) - Get notifications +* [retrieve](#retrieve) - Get notification + +## list + +Get notifications + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.notifications.list({ + channels: [ + "sms", + "chat", + "in_app", + ], + templates: [ + "", + ], + emails: [ + "", + ], + search: "", + subscriberIds: [ + "", + "", + ], + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsList } from "@novu/api/funcs/notificationsList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsList(novu, { + channels: [ + "sms", + "chat", + "in_app", + ], + templates: [ + "", + ], + emails: [ + "", + ], + search: "", + subscriberIds: [ + "", + "", + ], + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.NotificationsControllerListNotificationsRequest](../../models/operations/notificationscontrollerlistnotificationsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationsControllerListNotificationsResponse](../../models/operations/notificationscontrollerlistnotificationsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieve + +Get notification + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.notifications.retrieve(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsRetrieve } from "@novu/api/funcs/notificationsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsRetrieve(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `notificationId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationsControllerGetNotificationResponse](../../models/operations/notificationscontrollergetnotificationresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novu/README.md b/docs/sdks/novu/README.md new file mode 100644 index 00000000..be1d0edb --- /dev/null +++ b/docs/sdks/novu/README.md @@ -0,0 +1,437 @@ +# Novu SDK + +## Overview + +Novu API: Novu REST API. Please see https://docs.novu.co/api-reference for more details. + +Novu Documentation + + +### Available Operations + +* [trigger](#trigger) - Trigger event +* [triggerBulk](#triggerbulk) - Bulk trigger event +* [triggerBroadcast](#triggerbroadcast) - Broadcast event to all +* [cancelByTransactionId](#cancelbytransactionid) - Cancel triggered event + +## trigger + + + Trigger event is the main (and only) way to send notifications to subscribers. + The trigger identifier is used to match the particular workflow associated with it. + Additional information can be passed according the body interface below. + + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.trigger({ + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { trigger } from "@novu/api/funcs/trigger.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await trigger(novu, { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.TriggerEventRequestDto](../../models/components/triggereventrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.EventsControllerTriggerResponse](../../models/operations/eventscontrollertriggerresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## triggerBulk + + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.triggerBulk({ + events: [ + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, + ], + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { triggerBulk } from "@novu/api/funcs/triggerBulk.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await triggerBulk(novu, { + events: [ + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + subscriberId: "", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + ], + }, + { + name: "workflow_identifier", + payload: {}, + overrides: {}, + to: [ + { + topicKey: "", + type: "Topic", + }, + { + topicKey: "", + type: "Topic", + }, + ], + }, + ], + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.BulkTriggerEventDto](../../models/components/bulktriggereventdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.EventsControllerTriggerBulkResponse](../../models/operations/eventscontrollertriggerbulkresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## triggerBroadcast + +Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.triggerBroadcast({ + name: "", + payload: {}, + overrides: {}, + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { triggerBroadcast } from "@novu/api/funcs/triggerBroadcast.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await triggerBroadcast(novu, { + name: "", + payload: {}, + overrides: {}, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.TriggerEventToAllRequestDto](../../models/components/triggereventtoallrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.EventsControllerBroadcastEventToAllResponse](../../models/operations/eventscontrollerbroadcasteventtoallresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## cancelByTransactionId + + + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.cancelByTransactionId(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { cancelByTransactionId } from "@novu/api/funcs/cancelByTransactionId.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await cancelByTransactionId(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `transactionId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.EventsControllerCancelResponse](../../models/operations/eventscontrollercancelresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novumessages/README.md b/docs/sdks/novumessages/README.md new file mode 100644 index 00000000..a48fcb6d --- /dev/null +++ b/docs/sdks/novumessages/README.md @@ -0,0 +1,252 @@ +# NovuMessages +(*subscribers.messages*) + +## Overview + +### Available Operations + +* [markAllAs](#markallas) - Mark a subscriber messages as seen, read, unseen or unread +* [markAll](#markall) - Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. +* [updateAsSeen](#updateasseen) - Mark message action as seen + +## markAllAs + +Mark a subscriber messages as seen, read, unseen or unread + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.messages.markAllAs({ + messageId: "", + markAs: "read", + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesMarkAllAs } from "@novu/api/funcs/subscribersMessagesMarkAllAs.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesMarkAllAs(novu, { + messageId: "", + markAs: "read", + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `messageMarkAsRequestDto` | [components.MessageMarkAsRequestDto](../../models/components/messagemarkasrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerMarkMessagesAsResponse](../../models/operations/subscriberscontrollermarkmessagesasresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## markAll + +Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.messages.markAll({ + markAs: "seen", + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesMarkAll } from "@novu/api/funcs/subscribersMessagesMarkAll.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesMarkAll(novu, { + markAs: "seen", + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `markAllMessageAsRequestDto` | [components.MarkAllMessageAsRequestDto](../../models/components/markallmessageasrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerMarkAllUnreadAsReadResponse](../../models/operations/subscriberscontrollermarkallunreadasreadresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## updateAsSeen + +Mark message action as seen + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.messages.updateAsSeen({ + messageId: "", + type: "", + subscriberId: "", + markMessageActionAsSeenDto: { + status: "done", + }, + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersMessagesUpdateAsSeen } from "@novu/api/funcs/subscribersMessagesUpdateAsSeen.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersMessagesUpdateAsSeen(novu, { + messageId: "", + type: "", + subscriberId: "", + markMessageActionAsSeenDto: { + status: "done", + }, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerMarkActionAsSeenRequest](../../models/operations/subscriberscontrollermarkactionasseenrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerMarkActionAsSeenResponse](../../models/operations/subscriberscontrollermarkactionasseenresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novunotifications/README.md b/docs/sdks/novunotifications/README.md new file mode 100644 index 00000000..63357980 --- /dev/null +++ b/docs/sdks/novunotifications/README.md @@ -0,0 +1,167 @@ +# NovuNotifications +(*subscribers.notifications*) + +## Overview + +### Available Operations + +* [retrieve](#retrieve) - Get in-app notification feed for a particular subscriber +* [unseenCount](#unseencount) - Get the unseen in-app notifications count for subscribers feed + +## retrieve + +Get in-app notification feed for a particular subscriber + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.notifications.retrieve({ + subscriberId: "", + payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersNotificationsRetrieve } from "@novu/api/funcs/subscribersNotificationsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersNotificationsRetrieve(novu, { + subscriberId: "", + payload: "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerGetNotificationsFeedRequest](../../models/operations/subscriberscontrollergetnotificationsfeedrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerGetNotificationsFeedResponse](../../models/operations/subscriberscontrollergetnotificationsfeedresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## unseenCount + +Get the unseen in-app notifications count for subscribers feed + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.notifications.unseenCount({ + seen: false, + subscriberId: "", + limit: 2979.49, + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersNotificationsUnseenCount } from "@novu/api/funcs/subscribersNotificationsUnseenCount.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersNotificationsUnseenCount(novu, { + seen: false, + subscriberId: "", + limit: 2979.49, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerGetUnseenCountRequest](../../models/operations/subscriberscontrollergetunseencountrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerGetUnseenCountResponse](../../models/operations/subscriberscontrollergetunseencountresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/novusubscribers/README.md b/docs/sdks/novusubscribers/README.md new file mode 100644 index 00000000..caeaf6c7 --- /dev/null +++ b/docs/sdks/novusubscribers/README.md @@ -0,0 +1,249 @@ +# NovuSubscribers +(*topics.subscribers*) + +## Overview + +### Available Operations + +* [assign](#assign) - Subscribers addition +* [retrieve](#retrieve) - Check topic subscriber +* [delete](#delete) - Subscribers removal + +## assign + +Add subscribers to a topic by key + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.subscribers.assign({ + subscribers: [ + "", + "", + ], + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersAssign } from "@novu/api/funcs/topicsSubscribersAssign.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersAssign(novu, { + subscribers: [ + "", + "", + ], + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `addSubscribersRequestDto` | [components.AddSubscribersRequestDto](../../models/components/addsubscribersrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerAddSubscribersResponse](../../models/operations/topicscontrolleraddsubscribersresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieve + +Check if a subscriber belongs to a certain topic + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.subscribers.retrieve("", ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersRetrieve } from "@novu/api/funcs/topicsSubscribersRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersRetrieve(novu, "", ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `externalSubscriberId` | *string* | :heavy_check_mark: | The external subscriber id | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerGetTopicSubscriberResponse](../../models/operations/topicscontrollergettopicsubscriberresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +Remove subscribers from a topic + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.subscribers.delete({ + subscribers: [ + "", + "", + ], + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsSubscribersDelete } from "@novu/api/funcs/topicsSubscribersDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsSubscribersDelete(novu, { + subscribers: [ + "", + "", + ], + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `removeSubscribersRequestDto` | [components.RemoveSubscribersRequestDto](../../models/components/removesubscribersrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerRemoveSubscribersResponse](../../models/operations/topicscontrollerremovesubscribersresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/preferences/README.md b/docs/sdks/preferences/README.md new file mode 100644 index 00000000..a8f3b2ce --- /dev/null +++ b/docs/sdks/preferences/README.md @@ -0,0 +1,315 @@ +# Preferences +(*subscribers.preferences*) + +## Overview + +### Available Operations + +* [list](#list) - Get subscriber preferences +* [updateGlobal](#updateglobal) - Update subscriber global preferences +* [retrieveByLevel](#retrievebylevel) - Get subscriber preferences by level +* [update](#update) - Update subscriber preference + +## list + +Get subscriber preferences + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.preferences.list(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesList } from "@novu/api/funcs/subscribersPreferencesList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesList(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeInactiveChannels` | *boolean* | :heavy_minus_sign: | A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerListSubscriberPreferencesResponse](../../models/operations/subscriberscontrollerlistsubscriberpreferencesresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## updateGlobal + +Update subscriber global preferences + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.preferences.updateGlobal({}, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesUpdateGlobal } from "@novu/api/funcs/subscribersPreferencesUpdateGlobal.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesUpdateGlobal(novu, {}, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberGlobalPreferencesRequestDto` | [components.UpdateSubscriberGlobalPreferencesRequestDto](../../models/components/updatesubscriberglobalpreferencesrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse](../../models/operations/subscriberscontrollerupdatesubscriberglobalpreferencesresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieveByLevel + +Get subscriber preferences by level + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.preferences.retrieveByLevel({ + parameter: "global", + subscriberId: "", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesRetrieveByLevel } from "@novu/api/funcs/subscribersPreferencesRetrieveByLevel.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesRetrieveByLevel(novu, { + parameter: "global", + subscriberId: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest](../../models/operations/subscriberscontrollergetsubscriberpreferencebylevelrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse](../../models/operations/subscriberscontrollergetsubscriberpreferencebylevelresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## update + +Update subscriber preference + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.preferences.update({ + subscriberId: "", + parameter: "", + updateSubscriberPreferenceRequestDto: {}, + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPreferencesUpdate } from "@novu/api/funcs/subscribersPreferencesUpdate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPreferencesUpdate(novu, { + subscriberId: "", + parameter: "", + updateSubscriberPreferenceRequestDto: {}, + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SubscribersControllerUpdateSubscriberPreferenceRequest](../../models/operations/subscriberscontrollerupdatesubscriberpreferencerequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerUpdateSubscriberPreferenceResponse](../../models/operations/subscriberscontrollerupdatesubscriberpreferenceresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/properties/README.md b/docs/sdks/properties/README.md new file mode 100644 index 00000000..3d2dba0a --- /dev/null +++ b/docs/sdks/properties/README.md @@ -0,0 +1,85 @@ +# Properties +(*subscribers.properties*) + +## Overview + +### Available Operations + +* [updateOnlineFlag](#updateonlineflag) - Update subscriber online status + +## updateOnlineFlag + +Used to update the subscriber isOnline flag. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.properties.updateOnlineFlag({ + isOnline: true, + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersPropertiesUpdateOnlineFlag } from "@novu/api/funcs/subscribersPropertiesUpdateOnlineFlag.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersPropertiesUpdateOnlineFlag(novu, { + isOnline: true, + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberOnlineFlagRequestDto` | [components.UpdateSubscriberOnlineFlagRequestDto](../../models/components/updatesubscriberonlineflagrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse](../../models/operations/subscriberscontrollerupdatesubscriberonlineflagresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/stats/README.md b/docs/sdks/stats/README.md new file mode 100644 index 00000000..5cd03b19 --- /dev/null +++ b/docs/sdks/stats/README.md @@ -0,0 +1,152 @@ +# Stats +(*notifications.stats*) + +## Overview + +### Available Operations + +* [retrieve](#retrieve) - Get notification statistics +* [graph](#graph) - Get notification graph statistics + +## retrieve + +Get notification statistics + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.notifications.stats.retrieve(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsStatsRetrieve } from "@novu/api/funcs/notificationsStatsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsStatsRetrieve(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationsControllerGetActivityStatsResponse](../../models/operations/notificationscontrollergetactivitystatsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## graph + +Get notification graph statistics + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.notifications.stats.graph(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { notificationsStatsGraph } from "@novu/api/funcs/notificationsStatsGraph.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await notificationsStatsGraph(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `days` | *number* | :heavy_minus_sign: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationsControllerGetActivityGraphStatsResponse](../../models/operations/notificationscontrollergetactivitygraphstatsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/subscribers/README.md b/docs/sdks/subscribers/README.md new file mode 100644 index 00000000..849106c8 --- /dev/null +++ b/docs/sdks/subscribers/README.md @@ -0,0 +1,470 @@ +# Subscribers +(*subscribers*) + +## 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. + + +### Available Operations + +* [list](#list) - Get subscribers +* [create](#create) - Create subscriber +* [retrieve](#retrieve) - Get subscriber +* [update](#update) - Update subscriber +* [delete](#delete) - Delete subscriber +* [createBulk](#createbulk) - Bulk create subscribers + +## list + +Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.list(); + + for await (const page of result) { + // Handle the page + console.log(page); + } +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersList } from "@novu/api/funcs/subscribersList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersList(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + for await (const page of result) { + // Handle the page + console.log(page); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `page` | *number* | :heavy_minus_sign: | N/A | +| `limit` | *number* | :heavy_minus_sign: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerListSubscribersResponse](../../models/operations/subscriberscontrollerlistsubscribersresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## create + +Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.create({ + subscriberId: "", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersCreate } from "@novu/api/funcs/subscribersCreate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersCreate(novu, { + subscriberId: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.CreateSubscriberRequestDto](../../models/components/createsubscriberrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerCreateSubscriberResponse](../../models/operations/subscriberscontrollercreatesubscriberresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieve + +Get subscriber by your internal id used to identify the subscriber + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.retrieve(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersRetrieve } from "@novu/api/funcs/subscribersRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersRetrieve(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `includeTopics` | *string* | :heavy_minus_sign: | Includes the topics associated with the subscriber | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerGetSubscriberResponse](../../models/operations/subscriberscontrollergetsubscriberresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## update + +Used to update the subscriber entity with new information + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.update({}, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersUpdate } from "@novu/api/funcs/subscribersUpdate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersUpdate(novu, {}, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `updateSubscriberRequestDto` | [components.UpdateSubscriberRequestDto](../../models/components/updatesubscriberrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerUpdateSubscriberResponse](../../models/operations/subscriberscontrollerupdatesubscriberresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +Deletes a subscriber entity from the Novu platform + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.delete(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersDelete } from "@novu/api/funcs/subscribersDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersDelete(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `subscriberId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerRemoveSubscriberResponse](../../models/operations/subscriberscontrollerremovesubscriberresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## createBulk + + + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.subscribers.createBulk({ + subscribers: [ + "", + ], + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { subscribersCreateBulk } from "@novu/api/funcs/subscribersCreateBulk.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await subscribersCreateBulk(novu, { + subscribers: [ + "", + ], + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.BulkSubscriberCreateDto](../../models/components/bulksubscribercreatedto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SubscribersControllerBulkCreateSubscribersResponse](../../models/operations/subscriberscontrollerbulkcreatesubscribersresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/topics/README.md b/docs/sdks/topics/README.md new file mode 100644 index 00000000..6bfcdf0e --- /dev/null +++ b/docs/sdks/topics/README.md @@ -0,0 +1,386 @@ +# Topics +(*topics*) + +## 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. + + +### Available Operations + +* [create](#create) - Topic creation +* [list](#list) - Filter topics +* [delete](#delete) - Delete topic +* [retrieve](#retrieve) - Get topic +* [rename](#rename) - Rename a topic + +## create + +Create a topic + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.create({ + key: "", + name: "", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsCreate } from "@novu/api/funcs/topicsCreate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsCreate(novu, { + key: "", + name: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.CreateTopicRequestDto](../../models/components/createtopicrequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerCreateTopicResponse](../../models/operations/topicscontrollercreatetopicresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## list + +Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.list({}); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsList } from "@novu/api/funcs/topicsList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsList(novu, {}); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.TopicsControllerListTopicsRequest](../../models/operations/topicscontrollerlisttopicsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerListTopicsResponse](../../models/operations/topicscontrollerlisttopicsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +Delete a topic by its topic key if it has no subscribers + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.delete(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsDelete } from "@novu/api/funcs/topicsDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsDelete(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerDeleteTopicResponse](../../models/operations/topicscontrollerdeletetopicresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieve + +Get a topic by its topic key + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.retrieve(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsRetrieve } from "@novu/api/funcs/topicsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsRetrieve(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerGetTopicResponse](../../models/operations/topicscontrollergettopicresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## rename + +Rename a topic by providing a new name + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.topics.rename({ + name: "", + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { topicsRename } from "@novu/api/funcs/topicsRename.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await topicsRename(novu, { + name: "", + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `topicKey` | *string* | :heavy_check_mark: | The topic key | +| `renameTopicRequestDto` | [components.RenameTopicRequestDto](../../models/components/renametopicrequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.TopicsControllerRenameTopicResponse](../../models/operations/topicscontrollerrenametopicresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/webhooks/README.md b/docs/sdks/webhooks/README.md new file mode 100644 index 00000000..5497d0aa --- /dev/null +++ b/docs/sdks/webhooks/README.md @@ -0,0 +1,80 @@ +# Webhooks +(*integrations.webhooks*) + +## Overview + +### Available Operations + +* [retrieve](#retrieve) - Get webhook support status for provider + +## retrieve + +Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.integrations.webhooks.retrieve(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { integrationsWebhooksRetrieve } from "@novu/api/funcs/integrationsWebhooksRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await integrationsWebhooksRetrieve(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `providerOrIntegrationId` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.IntegrationsControllerGetWebhookSupportStatusResponse](../../models/operations/integrationscontrollergetwebhooksupportstatusresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/workflowgroups/README.md b/docs/sdks/workflowgroups/README.md new file mode 100644 index 00000000..d0d7e3ba --- /dev/null +++ b/docs/sdks/workflowgroups/README.md @@ -0,0 +1,382 @@ +# WorkflowGroups +(*workflowGroups*) + +## Overview + +Workflow groups are used to organize workflows into logical groups. + +### Available Operations + +* [create](#create) - Create workflow group +* [list](#list) - Get workflow groups +* [retrieve](#retrieve) - Get workflow group +* [update](#update) - Update workflow group +* [delete](#delete) - Delete workflow group + +## create + +workflow group was previously named notification group + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.workflowGroups.create({ + name: "", + }); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { workflowGroupsCreate } from "@novu/api/funcs/workflowGroupsCreate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await workflowGroupsCreate(novu, { + name: "", + }); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationGroupsControllerCreateNotificationGroupResponse](../../models/operations/notificationgroupscontrollercreatenotificationgroupresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## list + +workflow group was previously named notification group + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.workflowGroups.list(); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { workflowGroupsList } from "@novu/api/funcs/workflowGroupsList.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await workflowGroupsList(novu); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationGroupsControllerListNotificationGroupsResponse](../../models/operations/notificationgroupscontrollerlistnotificationgroupsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## retrieve + +workflow group was previously named notification group + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.workflowGroups.retrieve(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { workflowGroupsRetrieve } from "@novu/api/funcs/workflowGroupsRetrieve.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await workflowGroupsRetrieve(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationGroupsControllerGetNotificationGroupResponse](../../models/operations/notificationgroupscontrollergetnotificationgroupresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## update + +workflow group was previously named notification group + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.workflowGroups.update({ + name: "", + }, ""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { workflowGroupsUpdate } from "@novu/api/funcs/workflowGroupsUpdate.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await workflowGroupsUpdate(novu, { + name: "", + }, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | +| `createNotificationGroupRequestDto` | [components.CreateNotificationGroupRequestDto](../../models/components/createnotificationgrouprequestdto.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationGroupsControllerUpdateNotificationGroupResponse](../../models/operations/notificationgroupscontrollerupdatenotificationgroupresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | + +## delete + +workflow group was previously named notification group + +### Example Usage + +```typescript +import { Novu } from "@novu/api"; + +const novu = new Novu({ + apiKey: "", +}); + +async function run() { + const result = await novu.workflowGroups.delete(""); + + // Handle the result + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { NovuCore } from "@novu/api/core.js"; +import { workflowGroupsDelete } from "@novu/api/funcs/workflowGroupsDelete.js"; + +// Use `NovuCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const novu = new NovuCore({ + apiKey: "", +}); + +async function run() { + const res = await workflowGroupsDelete(novu, ""); + + if (!res.ok) { + throw res.error; + } + + const { value: result } = res; + + // Handle the result + console.log(result); +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.NotificationGroupsControllerDeleteNotificationGroupResponse](../../models/operations/notificationgroupscontrollerdeletenotificationgroupresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------- | --------------- | --------------- | +| errors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/src/core.ts b/src/core.ts new file mode 100644 index 00000000..8e7a79d7 --- /dev/null +++ b/src/core.ts @@ -0,0 +1,13 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { ClientSDK } from "./lib/sdks.js"; + +/** + * A minimal client to use when calling standalone SDK functions. Typically, an + * instance of this class would be instantiated once at the start of an + * application and passed around through some dependency injection mechanism to + * parts of an application that need to make SDK calls. + */ +export class NovuCore extends ClientSDK {} diff --git a/src/funcs/cancelByTransactionId.ts b/src/funcs/cancelByTransactionId.ts new file mode 100644 index 00000000..6198c6de --- /dev/null +++ b/src/funcs/cancelByTransactionId.ts @@ -0,0 +1,154 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Cancel triggered event + * + * @remarks + * + * Using a previously generated transactionId during the event trigger, + * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + */ +export async function cancelByTransactionId( + client: NovuCore, + transactionId: string, + options?: RequestOptions, +): Promise< + Result< + operations.EventsControllerCancelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.EventsControllerCancelRequest = { + transactionId: transactionId, + }; + + const parsed = safeParse( + input, + (value) => + operations.EventsControllerCancelRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + transactionId: encodeSimple("transactionId", payload.transactionId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/events/trigger/{transactionId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_cancel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EventsControllerCancelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, operations.EventsControllerCancelResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/environmentsApiKeysList.ts b/src/funcs/environmentsApiKeysList.ts new file mode 100644 index 00000000..834bb9a3 --- /dev/null +++ b/src/funcs/environmentsApiKeysList.ts @@ -0,0 +1,124 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get api keys + */ +export async function environmentsApiKeysList( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/environments/api-keys")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EnvironmentsControllerV1_listOrganizationApiKeys", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/environmentsList.ts b/src/funcs/environmentsList.ts new file mode 100644 index 00000000..a89ef071 --- /dev/null +++ b/src/funcs/environmentsList.ts @@ -0,0 +1,124 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get environments + */ +export async function environmentsList( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/environments")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EnvironmentsControllerV1_listMyEnvironments", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EnvironmentsControllerV1ListMyEnvironmentsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/environmentsRetrieve.ts b/src/funcs/environmentsRetrieve.ts new file mode 100644 index 00000000..dfbd74df --- /dev/null +++ b/src/funcs/environmentsRetrieve.ts @@ -0,0 +1,124 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get current environment + */ +export async function environmentsRetrieve( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/environments/me")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EnvironmentsControllerV1_getCurrentEnvironment", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EnvironmentsControllerV1GetCurrentEnvironmentResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/executionDetailsRetrieve.ts b/src/funcs/executionDetailsRetrieve.ts new file mode 100644 index 00000000..75a9bd93 --- /dev/null +++ b/src/funcs/executionDetailsRetrieve.ts @@ -0,0 +1,157 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get execution details + */ +export async function executionDetailsRetrieve( + client: NovuCore, + notificationId: string, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = + { + notificationId: notificationId, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/execution-details")(); + + const query = encodeFormQuery({ + "notificationId": payload.notificationId, + "subscriberId": payload.subscriberId, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: + "ExecutionDetailsController_getExecutionDetailsForNotification", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsCreate.ts b/src/funcs/integrationsCreate.ts new file mode 100644 index 00000000..85abc07a --- /dev/null +++ b/src/funcs/integrationsCreate.ts @@ -0,0 +1,144 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Create integration + * + * @remarks + * Create an integration for the current environment the user is based on the API key provided + */ +export async function integrationsCreate( + client: NovuCore, + request: components.CreateIntegrationRequestDto, + options?: RequestOptions, +): Promise< + Result< + operations.IntegrationsControllerCreateIntegrationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + components.CreateIntegrationRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/integrations")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_createIntegration", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerCreateIntegrationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 201, + operations.IntegrationsControllerCreateIntegrationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsDelete.ts b/src/funcs/integrationsDelete.ts new file mode 100644 index 00000000..564e1e4d --- /dev/null +++ b/src/funcs/integrationsDelete.ts @@ -0,0 +1,151 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete integration + */ +export async function integrationsDelete( + client: NovuCore, + integrationId: string, + options?: RequestOptions, +): Promise< + Result< + operations.IntegrationsControllerRemoveIntegrationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.IntegrationsControllerRemoveIntegrationRequest = { + integrationId: integrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations.IntegrationsControllerRemoveIntegrationRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + integrationId: encodeSimple("integrationId", payload.integrationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_removeIntegration", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerRemoveIntegrationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.IntegrationsControllerRemoveIntegrationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsList.ts b/src/funcs/integrationsList.ts new file mode 100644 index 00000000..bf621189 --- /dev/null +++ b/src/funcs/integrationsList.ts @@ -0,0 +1,126 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get integrations + * + * @remarks + * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + */ +export async function integrationsList( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + operations.IntegrationsControllerListIntegrationsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/integrations")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_listIntegrations", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerListIntegrationsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.IntegrationsControllerListIntegrationsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsListActive.ts b/src/funcs/integrationsListActive.ts new file mode 100644 index 00000000..aaeba337 --- /dev/null +++ b/src/funcs/integrationsListActive.ts @@ -0,0 +1,127 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get active integrations + * + * @remarks + * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + */ +export async function integrationsListActive( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + operations.IntegrationsControllerGetActiveIntegrationsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/integrations/active")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_getActiveIntegrations", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerGetActiveIntegrationsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsSetAsPrimary.ts b/src/funcs/integrationsSetAsPrimary.ts new file mode 100644 index 00000000..e3baf90e --- /dev/null +++ b/src/funcs/integrationsSetAsPrimary.ts @@ -0,0 +1,156 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Set integration as primary + */ +export async function integrationsSetAsPrimary( + client: NovuCore, + integrationId: string, + options?: RequestOptions, +): Promise< + Result< + operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.IntegrationsControllerSetIntegrationAsPrimaryRequest = + { + integrationId: integrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + integrationId: encodeSimple("integrationId", payload.integrationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/integrations/{integrationId}/set-primary")( + pathParams, + ); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_setIntegrationAsPrimary", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerSetIntegrationAsPrimaryResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([404, 409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsUpdate.ts b/src/funcs/integrationsUpdate.ts new file mode 100644 index 00000000..75764de9 --- /dev/null +++ b/src/funcs/integrationsUpdate.ts @@ -0,0 +1,159 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update integration + */ +export async function integrationsUpdate( + client: NovuCore, + updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, + integrationId: string, + options?: RequestOptions, +): Promise< + Result< + operations.IntegrationsControllerUpdateIntegrationByIdResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.IntegrationsControllerUpdateIntegrationByIdRequest = { + updateIntegrationRequestDto: updateIntegrationRequestDto, + integrationId: integrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateIntegrationRequestDto, { + explode: true, + }); + + const pathParams = { + integrationId: encodeSimple("integrationId", payload.integrationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/integrations/{integrationId}")(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_updateIntegrationById", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerUpdateIntegrationByIdResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([404, 409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/integrationsWebhooksRetrieve.ts b/src/funcs/integrationsWebhooksRetrieve.ts new file mode 100644 index 00000000..2f11ee97 --- /dev/null +++ b/src/funcs/integrationsWebhooksRetrieve.ts @@ -0,0 +1,160 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get webhook support status for provider + * + * @remarks + * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + */ +export async function integrationsWebhooksRetrieve( + client: NovuCore, + providerOrIntegrationId: string, + options?: RequestOptions, +): Promise< + Result< + operations.IntegrationsControllerGetWebhookSupportStatusResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.IntegrationsControllerGetWebhookSupportStatusRequest = + { + providerOrIntegrationId: providerOrIntegrationId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerOrIntegrationId: encodeSimple( + "providerOrIntegrationId", + payload.providerOrIntegrationId, + { explode: false, charEncoding: "percent" }, + ), + }; + + const path = pathToFunc( + "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status", + )(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "IntegrationsController_getWebhookSupportStatus", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.IntegrationsControllerGetWebhookSupportStatusResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/messagesDelete.ts b/src/funcs/messagesDelete.ts new file mode 100644 index 00000000..b7a5121a --- /dev/null +++ b/src/funcs/messagesDelete.ts @@ -0,0 +1,155 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete message + * + * @remarks + * Deletes a message entity from the Novu platform + */ +export async function messagesDelete( + client: NovuCore, + messageId: string, + options?: RequestOptions, +): Promise< + Result< + operations.MessagesControllerDeleteMessageResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.MessagesControllerDeleteMessageRequest = { + messageId: messageId, + }; + + const parsed = safeParse( + input, + (value) => + operations.MessagesControllerDeleteMessageRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + messageId: encodeSimple("messageId", payload.messageId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/messages/{messageId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "MessagesController_deleteMessage", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.MessagesControllerDeleteMessageResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.MessagesControllerDeleteMessageResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/messagesDeleteByTransactionId.ts b/src/funcs/messagesDeleteByTransactionId.ts new file mode 100644 index 00000000..74617b66 --- /dev/null +++ b/src/funcs/messagesDeleteByTransactionId.ts @@ -0,0 +1,169 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete messages by transactionId + * + * @remarks + * Deletes messages entity from the Novu platform using TransactionId of message + */ +export async function messagesDeleteByTransactionId( + client: NovuCore, + transactionId: string, + channel?: operations.QueryParamChannel | undefined, + options?: RequestOptions, +): Promise< + Result< + | operations.MessagesControllerDeleteMessagesByTransactionIdResponse + | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.MessagesControllerDeleteMessagesByTransactionIdRequest = { + transactionId: transactionId, + channel: channel, + }; + + const parsed = safeParse( + input, + (value) => + operations + .MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + transactionId: encodeSimple("transactionId", payload.transactionId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/messages/transaction/{transactionId}")( + pathParams, + ); + + const query = encodeFormQuery({ + "channel": payload.channel, + }); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "MessagesController_deleteMessagesByTransactionId", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + | operations.MessagesControllerDeleteMessagesByTransactionIdResponse + | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil( + 204, + operations + .MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/messagesRetrieve.ts b/src/funcs/messagesRetrieve.ts new file mode 100644 index 00000000..a6c96530 --- /dev/null +++ b/src/funcs/messagesRetrieve.ts @@ -0,0 +1,153 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get messages + * + * @remarks + * Returns a list of messages, could paginate using the `page` query parameter + */ +export async function messagesRetrieve( + client: NovuCore, + request: operations.MessagesControllerGetMessagesRequest, + options?: RequestOptions, +): Promise< + Result< + operations.MessagesControllerGetMessagesResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.MessagesControllerGetMessagesRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/messages")(); + + const query = encodeFormQuery({ + "channel": payload.channel, + "limit": payload.limit, + "page": payload.page, + "subscriberId": payload.subscriberId, + "transactionId": payload.transactionId, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "MessagesController_getMessages", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.MessagesControllerGetMessagesResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.MessagesControllerGetMessagesResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/notificationsList.ts b/src/funcs/notificationsList.ts new file mode 100644 index 00000000..b81a75be --- /dev/null +++ b/src/funcs/notificationsList.ts @@ -0,0 +1,151 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get notifications + */ +export async function notificationsList( + client: NovuCore, + request: operations.NotificationsControllerListNotificationsRequest, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationsControllerListNotificationsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.NotificationsControllerListNotificationsRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/notifications")(); + + const query = encodeFormQuery({ + "channels": payload.channels, + "emails": payload.emails, + "page": payload.page, + "search": payload.search, + "subscriberIds": payload.subscriberIds, + "templates": payload.templates, + "transactionId": payload.transactionId, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationsController_listNotifications", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationsControllerListNotificationsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.NotificationsControllerListNotificationsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/notificationsRetrieve.ts b/src/funcs/notificationsRetrieve.ts new file mode 100644 index 00000000..c18ce6a2 --- /dev/null +++ b/src/funcs/notificationsRetrieve.ts @@ -0,0 +1,151 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get notification + */ +export async function notificationsRetrieve( + client: NovuCore, + notificationId: string, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationsControllerGetNotificationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.NotificationsControllerGetNotificationRequest = { + notificationId: notificationId, + }; + + const parsed = safeParse( + input, + (value) => + operations.NotificationsControllerGetNotificationRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + notificationId: encodeSimple("notificationId", payload.notificationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/notifications/{notificationId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationsController_getNotification", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationsControllerGetNotificationResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.NotificationsControllerGetNotificationResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/notificationsStatsGraph.ts b/src/funcs/notificationsStatsGraph.ts new file mode 100644 index 00000000..518bac45 --- /dev/null +++ b/src/funcs/notificationsStatsGraph.ts @@ -0,0 +1,152 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get notification graph statistics + */ +export async function notificationsStatsGraph( + client: NovuCore, + days?: number | undefined, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationsControllerGetActivityGraphStatsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.NotificationsControllerGetActivityGraphStatsRequest = + { + days: days, + }; + + const parsed = safeParse( + input, + (value) => + operations + .NotificationsControllerGetActivityGraphStatsRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/notifications/graph/stats")(); + + const query = encodeFormQuery({ + "days": payload.days, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationsController_getActivityGraphStats", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationsControllerGetActivityGraphStatsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .NotificationsControllerGetActivityGraphStatsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/notificationsStatsRetrieve.ts b/src/funcs/notificationsStatsRetrieve.ts new file mode 100644 index 00000000..d90ece34 --- /dev/null +++ b/src/funcs/notificationsStatsRetrieve.ts @@ -0,0 +1,123 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get notification statistics + */ +export async function notificationsStatsRetrieve( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationsControllerGetActivityStatsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/notifications/stats")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationsController_getActivityStats", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationsControllerGetActivityStatsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.NotificationsControllerGetActivityStatsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersAuthenticationChatAccessOauth.ts b/src/funcs/subscribersAuthenticationChatAccessOauth.ts new file mode 100644 index 00000000..08684004 --- /dev/null +++ b/src/funcs/subscribersAuthenticationChatAccessOauth.ts @@ -0,0 +1,160 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Handle chat oauth + */ +export async function subscribersAuthenticationChatAccessOauth( + client: NovuCore, + request: operations.SubscribersControllerChatAccessOauthRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerChatAccessOauthResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerChatAccessOauthRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth", + )(pathParams); + + const query = encodeFormQuery({ + "environmentId": payload.environmentId, + "hmacHash": payload.hmacHash, + "integrationIdentifier": payload.integrationIdentifier, + }); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_chatAccessOauth", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerChatAccessOauthResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil( + 200, + operations.SubscribersControllerChatAccessOauthResponse$inboundSchema + .optional(), + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts b/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts new file mode 100644 index 00000000..f4d70e72 --- /dev/null +++ b/src/funcs/subscribersAuthenticationChatAccessOauthCallBack.ts @@ -0,0 +1,161 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Handle providers oauth redirect + */ +export async function subscribersAuthenticationChatAccessOauthCallBack( + client: NovuCore, + request: operations.SubscribersControllerChatOauthCallbackRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerChatOauthCallbackResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerChatOauthCallbackRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback", + )(pathParams); + + const query = encodeFormQuery({ + "code": payload.code, + "environmentId": payload.environmentId, + "hmacHash": payload.hmacHash, + "integrationIdentifier": payload.integrationIdentifier, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_chatOauthCallback", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerChatOauthCallbackResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.SubscribersControllerChatOauthCallbackResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersCreate.ts b/src/funcs/subscribersCreate.ts new file mode 100644 index 00000000..3b5f1f56 --- /dev/null +++ b/src/funcs/subscribersCreate.ts @@ -0,0 +1,144 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Create subscriber + * + * @remarks + * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + */ +export async function subscribersCreate( + client: NovuCore, + request: components.CreateSubscriberRequestDto, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerCreateSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + components.CreateSubscriberRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/subscribers")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_createSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerCreateSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 201, + operations.SubscribersControllerCreateSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersCreateBulk.ts b/src/funcs/subscribersCreateBulk.ts new file mode 100644 index 00000000..009682f8 --- /dev/null +++ b/src/funcs/subscribersCreateBulk.ts @@ -0,0 +1,146 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Bulk create subscribers + * + * @remarks + * + * Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + * The bulk API is limited to 500 subscribers per request. + */ +export async function subscribersCreateBulk( + client: NovuCore, + request: components.BulkSubscriberCreateDto, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerBulkCreateSubscribersResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => components.BulkSubscriberCreateDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/subscribers/bulk")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_bulkCreateSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerBulkCreateSubscribersResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil( + 201, + operations + .SubscribersControllerBulkCreateSubscribersResponse$inboundSchema + .optional(), + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersCredentialsAppend.ts b/src/funcs/subscribersCredentialsAppend.ts new file mode 100644 index 00000000..f5674ecf --- /dev/null +++ b/src/funcs/subscribersCredentialsAppend.ts @@ -0,0 +1,168 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Modify subscriber credentials + * + * @remarks + * Subscriber credentials associated to the delivery methods such as slack and push tokens. + * + * This endpoint appends provided credentials and deviceTokens to the existing ones. + */ +export async function subscribersCredentialsAppend( + client: NovuCore, + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerModifySubscriberChannelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerModifySubscriberChannelRequest = + { + updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerModifySubscriberChannelRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateSubscriberChannelRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_modifySubscriberChannel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerModifySubscriberChannelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerModifySubscriberChannelResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersCredentialsDelete.ts b/src/funcs/subscribersCredentialsDelete.ts new file mode 100644 index 00000000..ed006cbf --- /dev/null +++ b/src/funcs/subscribersCredentialsDelete.ts @@ -0,0 +1,168 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete subscriber credentials by providerId + * + * @remarks + * Delete subscriber credentials such as slack and expo tokens. + */ +export async function subscribersCredentialsDelete( + client: NovuCore, + subscriberId: string, + providerId: string, + options?: RequestOptions, +): Promise< + Result< + | operations.SubscribersControllerDeleteSubscriberCredentialsResponse + | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.SubscribersControllerDeleteSubscriberCredentialsRequest = { + subscriberId: subscriberId, + providerId: providerId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + providerId: encodeSimple("providerId", payload.providerId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/credentials/{providerId}", + )(pathParams); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_deleteSubscriberCredentials", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + | operations.SubscribersControllerDeleteSubscriberCredentialsResponse + | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil( + 204, + operations + .SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersCredentialsUpdate.ts b/src/funcs/subscribersCredentialsUpdate.ts new file mode 100644 index 00000000..f5f507f1 --- /dev/null +++ b/src/funcs/subscribersCredentialsUpdate.ts @@ -0,0 +1,166 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update subscriber credentials + * + * @remarks + * Subscriber credentials associated to the delivery methods such as slack and push tokens. + */ +export async function subscribersCredentialsUpdate( + client: NovuCore, + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerUpdateSubscriberChannelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerUpdateSubscriberChannelRequest = + { + updateSubscriberChannelRequestDto: updateSubscriberChannelRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateSubscriberChannelRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/credentials")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberChannel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerUpdateSubscriberChannelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersDelete.ts b/src/funcs/subscribersDelete.ts new file mode 100644 index 00000000..09d9f88b --- /dev/null +++ b/src/funcs/subscribersDelete.ts @@ -0,0 +1,154 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete subscriber + * + * @remarks + * Deletes a subscriber entity from the Novu platform + */ +export async function subscribersDelete( + client: NovuCore, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerRemoveSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerRemoveSubscriberRequest = { + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerRemoveSubscriberRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_removeSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerRemoveSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.SubscribersControllerRemoveSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersList.ts b/src/funcs/subscribersList.ts new file mode 100644 index 00000000..edad860b --- /dev/null +++ b/src/funcs/subscribersList.ts @@ -0,0 +1,203 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { dlv } from "../lib/dlv.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; +import { + createPageIterator, + haltIterator, + PageIterator, + Paginator, +} from "../types/operations.js"; + +/** + * Get subscribers + * + * @remarks + * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + */ +export async function subscribersList( + client: NovuCore, + page?: number | undefined, + limit?: number | undefined, + options?: RequestOptions, +): Promise< + PageIterator< + Result< + operations.SubscribersControllerListSubscribersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > + > +> { + const input: operations.SubscribersControllerListSubscribersRequest = { + page: page, + limit: limit, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerListSubscribersRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return haltIterator(parsed); + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/subscribers")(); + + const query = encodeFormQuery({ + "limit": payload.limit, + "page": payload.page, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_listSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return haltIterator(requestRes); + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return haltIterator(doResult); + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result, raw] = await M.match< + operations.SubscribersControllerListSubscribersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.SubscribersControllerListSubscribersResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return haltIterator(result); + } + + const nextFunc = ( + responseData: unknown, + ): Paginator< + Result< + operations.SubscribersControllerListSubscribersResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > + > => { + const page = input?.page || 0; + const nextPage = page + 1; + + if (!responseData) { + return () => null; + } + const results = dlv(responseData, "data.resultArray"); + if (!Array.isArray(results) || !results.length) { + return () => null; + } + const limit = input?.limit || 0; + if (results.length < limit) { + return () => null; + } + + return () => + subscribersList( + client, + nextPage, + limit, + options, + ); + }; + + const page$ = { ...result, next: nextFunc(raw) }; + return { ...page$, ...createPageIterator(page$, (v) => !v.ok) }; +} diff --git a/src/funcs/subscribersMessagesMarkAll.ts b/src/funcs/subscribersMessagesMarkAll.ts new file mode 100644 index 00000000..4d5df079 --- /dev/null +++ b/src/funcs/subscribersMessagesMarkAll.ts @@ -0,0 +1,159 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + */ +export async function subscribersMessagesMarkAll( + client: NovuCore, + markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerMarkAllUnreadAsReadResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerMarkAllUnreadAsReadRequest = { + markAllMessageAsRequestDto: markAllMessageAsRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.MarkAllMessageAsRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-all")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_markAllUnreadAsRead", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerMarkAllUnreadAsReadResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 201, + operations.SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersMessagesMarkAllAs.ts b/src/funcs/subscribersMessagesMarkAllAs.ts new file mode 100644 index 00000000..30029091 --- /dev/null +++ b/src/funcs/subscribersMessagesMarkAllAs.ts @@ -0,0 +1,159 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Mark a subscriber messages as seen, read, unseen or unread + */ +export async function subscribersMessagesMarkAllAs( + client: NovuCore, + messageMarkAsRequestDto: components.MessageMarkAsRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerMarkMessagesAsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerMarkMessagesAsRequest = { + messageMarkAsRequestDto: messageMarkAsRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerMarkMessagesAsRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.MessageMarkAsRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/messages/mark-as")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_markMessagesAs", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerMarkMessagesAsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 201, + operations.SubscribersControllerMarkMessagesAsResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersMessagesUpdateAsSeen.ts b/src/funcs/subscribersMessagesUpdateAsSeen.ts new file mode 100644 index 00000000..0fc8ece6 --- /dev/null +++ b/src/funcs/subscribersMessagesUpdateAsSeen.ts @@ -0,0 +1,160 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Mark message action as seen + */ +export async function subscribersMessagesUpdateAsSeen( + client: NovuCore, + request: operations.SubscribersControllerMarkActionAsSeenRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerMarkActionAsSeenResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerMarkActionAsSeenRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.MarkMessageActionAsSeenDto, { + explode: true, + }); + + const pathParams = { + messageId: encodeSimple("messageId", payload.messageId, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + type: encodeSimple("type", payload.type, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}", + )(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_markActionAsSeen", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerMarkActionAsSeenResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 201, + operations.SubscribersControllerMarkActionAsSeenResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersNotificationsRetrieve.ts b/src/funcs/subscribersNotificationsRetrieve.ts new file mode 100644 index 00000000..8c3615ff --- /dev/null +++ b/src/funcs/subscribersNotificationsRetrieve.ts @@ -0,0 +1,159 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get in-app notification feed for a particular subscriber + */ +export async function subscribersNotificationsRetrieve( + client: NovuCore, + request: operations.SubscribersControllerGetNotificationsFeedRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerGetNotificationsFeedResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerGetNotificationsFeedRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/notifications/feed")( + pathParams, + ); + + const query = encodeFormQuery({ + "limit": payload.limit, + "page": payload.page, + "payload": payload.payload, + "read": payload.read, + "seen": payload.seen, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getNotificationsFeed", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetNotificationsFeedResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerGetNotificationsFeedResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersNotificationsUnseenCount.ts b/src/funcs/subscribersNotificationsUnseenCount.ts new file mode 100644 index 00000000..0589d80e --- /dev/null +++ b/src/funcs/subscribersNotificationsUnseenCount.ts @@ -0,0 +1,155 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get the unseen in-app notifications count for subscribers feed + */ +export async function subscribersNotificationsUnseenCount( + client: NovuCore, + request: operations.SubscribersControllerGetUnseenCountRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerGetUnseenCountResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.SubscribersControllerGetUnseenCountRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/notifications/unseen", + )(pathParams); + + const query = encodeFormQuery({ + "limit": payload.limit, + "seen": payload.seen, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getUnseenCount", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetUnseenCountResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.SubscribersControllerGetUnseenCountResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPreferencesList.ts b/src/funcs/subscribersPreferencesList.ts new file mode 100644 index 00000000..0207dcfd --- /dev/null +++ b/src/funcs/subscribersPreferencesList.ts @@ -0,0 +1,163 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get subscriber preferences + */ +export async function subscribersPreferencesList( + client: NovuCore, + subscriberId: string, + includeInactiveChannels?: boolean | undefined, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerListSubscriberPreferencesResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.SubscribersControllerListSubscriberPreferencesRequest = { + subscriberId: subscriberId, + includeInactiveChannels: includeInactiveChannels, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerListSubscriberPreferencesRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( + pathParams, + ); + + const query = encodeFormQuery({ + "includeInactiveChannels": payload.includeInactiveChannels, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_listSubscriberPreferences", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerListSubscriberPreferencesResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerListSubscriberPreferencesResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPreferencesRetrieveByLevel.ts b/src/funcs/subscribersPreferencesRetrieveByLevel.ts new file mode 100644 index 00000000..351067b7 --- /dev/null +++ b/src/funcs/subscribersPreferencesRetrieveByLevel.ts @@ -0,0 +1,161 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get subscriber preferences by level + */ +export async function subscribersPreferencesRetrieveByLevel( + client: NovuCore, + request: + operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations + .SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + parameter: encodeSimple("parameter", payload.parameter, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/preferences/{parameter}", + )(pathParams); + + const query = encodeFormQuery({ + "includeInactiveChannels": payload.includeInactiveChannels, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getSubscriberPreferenceByLevel", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPreferencesUpdate.ts b/src/funcs/subscribersPreferencesUpdate.ts new file mode 100644 index 00000000..67682342 --- /dev/null +++ b/src/funcs/subscribersPreferencesUpdate.ts @@ -0,0 +1,160 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update subscriber preference + */ +export async function subscribersPreferencesUpdate( + client: NovuCore, + request: operations.SubscribersControllerUpdateSubscriberPreferenceRequest, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerUpdateSubscriberPreferenceResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations + .SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.UpdateSubscriberPreferenceRequestDto, + { explode: true }, + ); + + const pathParams = { + parameter: encodeSimple("parameter", payload.parameter, { + explode: false, + charEncoding: "percent", + }), + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/subscribers/{subscriberId}/preferences/{parameter}", + )(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberPreference", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerUpdateSubscriberPreferenceResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPreferencesUpdateGlobal.ts b/src/funcs/subscribersPreferencesUpdateGlobal.ts new file mode 100644 index 00000000..8d22e367 --- /dev/null +++ b/src/funcs/subscribersPreferencesUpdateGlobal.ts @@ -0,0 +1,166 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update subscriber global preferences + */ +export async function subscribersPreferencesUpdateGlobal( + client: NovuCore, + updateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { + updateSubscriberGlobalPreferencesRequestDto: + updateSubscriberGlobalPreferencesRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.UpdateSubscriberGlobalPreferencesRequestDto, + { explode: true }, + ); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/preferences")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberGlobalPreferences", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts b/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts new file mode 100644 index 00000000..309edbbd --- /dev/null +++ b/src/funcs/subscribersPropertiesUpdateOnlineFlag.ts @@ -0,0 +1,169 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update subscriber online status + * + * @remarks + * Used to update the subscriber isOnline flag. + */ +export async function subscribersPropertiesUpdateOnlineFlag( + client: NovuCore, + updateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.SubscribersControllerUpdateSubscriberOnlineFlagRequest = { + updateSubscriberOnlineFlagRequestDto: + updateSubscriberOnlineFlagRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations + .SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.UpdateSubscriberOnlineFlagRequestDto, + { explode: true }, + ); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}/online-status")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriberOnlineFlag", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersRetrieve.ts b/src/funcs/subscribersRetrieve.ts new file mode 100644 index 00000000..c53191ce --- /dev/null +++ b/src/funcs/subscribersRetrieve.ts @@ -0,0 +1,162 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get subscriber + * + * @remarks + * Get subscriber by your internal id used to identify the subscriber + */ +export async function subscribersRetrieve( + client: NovuCore, + subscriberId: string, + includeTopics?: string | undefined, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerGetSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerGetSubscriberRequest = { + subscriberId: subscriberId, + includeTopics: includeTopics, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerGetSubscriberRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); + + const query = encodeFormQuery({ + "includeTopics": payload.includeTopics, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_getSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerGetSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.SubscribersControllerGetSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/subscribersUpdate.ts b/src/funcs/subscribersUpdate.ts new file mode 100644 index 00000000..77f405e3 --- /dev/null +++ b/src/funcs/subscribersUpdate.ts @@ -0,0 +1,160 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update subscriber + * + * @remarks + * Used to update the subscriber entity with new information + */ +export async function subscribersUpdate( + client: NovuCore, + updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, + subscriberId: string, + options?: RequestOptions, +): Promise< + Result< + operations.SubscribersControllerUpdateSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.SubscribersControllerUpdateSubscriberRequest = { + updateSubscriberRequestDto: updateSubscriberRequestDto, + subscriberId: subscriberId, + }; + + const parsed = safeParse( + input, + (value) => + operations.SubscribersControllerUpdateSubscriberRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateSubscriberRequestDto, { + explode: true, + }); + + const pathParams = { + subscriberId: encodeSimple("subscriberId", payload.subscriberId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/subscribers/{subscriberId}")(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "SubscribersController_updateSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SubscribersControllerUpdateSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.SubscribersControllerUpdateSubscriberResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsCreate.ts b/src/funcs/topicsCreate.ts new file mode 100644 index 00000000..e2f8b70d --- /dev/null +++ b/src/funcs/topicsCreate.ts @@ -0,0 +1,142 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Topic creation + * + * @remarks + * Create a topic + */ +export async function topicsCreate( + client: NovuCore, + request: components.CreateTopicRequestDto, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerCreateTopicResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => components.CreateTopicRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/topics")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_createTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerCreateTopicResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(201, operations.TopicsControllerCreateTopicResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsDelete.ts b/src/funcs/topicsDelete.ts new file mode 100644 index 00000000..cf295ba2 --- /dev/null +++ b/src/funcs/topicsDelete.ts @@ -0,0 +1,153 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete topic + * + * @remarks + * Delete a topic by its topic key if it has no subscribers + */ +export async function topicsDelete( + client: NovuCore, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerDeleteTopicResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerDeleteTopicRequest = { + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerDeleteTopicRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); + + const headers = new Headers({ + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_deleteTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerDeleteTopicResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil( + 204, + operations.TopicsControllerDeleteTopicResponse$inboundSchema.optional(), + { hdrs: true }, + ), + M.fail([404, 409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsList.ts b/src/funcs/topicsList.ts new file mode 100644 index 00000000..f545ecc1 --- /dev/null +++ b/src/funcs/topicsList.ts @@ -0,0 +1,148 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Filter topics + * + * @remarks + * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + */ +export async function topicsList( + client: NovuCore, + request: operations.TopicsControllerListTopicsRequest, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerListTopicsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + operations.TopicsControllerListTopicsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/topics")(); + + const query = encodeFormQuery({ + "key": payload.key, + "page": payload.page, + "pageSize": payload.pageSize, + }); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_listTopics", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + query: query, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerListTopicsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, operations.TopicsControllerListTopicsResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsRename.ts b/src/funcs/topicsRename.ts new file mode 100644 index 00000000..79f89ce9 --- /dev/null +++ b/src/funcs/topicsRename.ts @@ -0,0 +1,158 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Rename a topic + * + * @remarks + * Rename a topic by providing a new name + */ +export async function topicsRename( + client: NovuCore, + renameTopicRequestDto: components.RenameTopicRequestDto, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerRenameTopicResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerRenameTopicRequest = { + renameTopicRequestDto: renameTopicRequestDto, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerRenameTopicRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RenameTopicRequestDto, { + explode: true, + }); + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_renameTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerRenameTopicResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, operations.TopicsControllerRenameTopicResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsRetrieve.ts b/src/funcs/topicsRetrieve.ts new file mode 100644 index 00000000..8f4b71a0 --- /dev/null +++ b/src/funcs/topicsRetrieve.ts @@ -0,0 +1,152 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get topic + * + * @remarks + * Get a topic by its topic key + */ +export async function topicsRetrieve( + client: NovuCore, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerGetTopicResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerGetTopicRequest = { + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerGetTopicRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_getTopic", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerGetTopicResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(200, operations.TopicsControllerGetTopicResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsSubscribersAssign.ts b/src/funcs/topicsSubscribersAssign.ts new file mode 100644 index 00000000..e868c7bd --- /dev/null +++ b/src/funcs/topicsSubscribersAssign.ts @@ -0,0 +1,162 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Subscribers addition + * + * @remarks + * Add subscribers to a topic by key + */ +export async function topicsSubscribersAssign( + client: NovuCore, + addSubscribersRequestDto: components.AddSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerAddSubscribersResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerAddSubscribersRequest = { + addSubscribersRequestDto: addSubscribersRequestDto, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerAddSubscribersRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.AddSubscribersRequestDto, { + explode: true, + }); + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}/subscribers")(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_addSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerAddSubscribersResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil( + 204, + operations.TopicsControllerAddSubscribersResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsSubscribersDelete.ts b/src/funcs/topicsSubscribersDelete.ts new file mode 100644 index 00000000..f3059e17 --- /dev/null +++ b/src/funcs/topicsSubscribersDelete.ts @@ -0,0 +1,164 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Subscribers removal + * + * @remarks + * Remove subscribers from a topic + */ +export async function topicsSubscribersDelete( + client: NovuCore, + removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerRemoveSubscribersResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerRemoveSubscribersRequest = { + removeSubscribersRequestDto: removeSubscribersRequestDto, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RemoveSubscribersRequestDto, { + explode: true, + }); + + const pathParams = { + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/topics/{topicKey}/subscribers/removal")( + pathParams, + ); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "*/*", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_removeSubscribers", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerRemoveSubscribersResponse | undefined, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.nil( + 204, + operations.TopicsControllerRemoveSubscribersResponse$inboundSchema + .optional(), + { hdrs: true }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/topicsSubscribersRetrieve.ts b/src/funcs/topicsSubscribersRetrieve.ts new file mode 100644 index 00000000..d4b068ae --- /dev/null +++ b/src/funcs/topicsSubscribersRetrieve.ts @@ -0,0 +1,164 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Check topic subscriber + * + * @remarks + * Check if a subscriber belongs to a certain topic + */ +export async function topicsSubscribersRetrieve( + client: NovuCore, + externalSubscriberId: string, + topicKey: string, + options?: RequestOptions, +): Promise< + Result< + operations.TopicsControllerGetTopicSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: operations.TopicsControllerGetTopicSubscriberRequest = { + externalSubscriberId: externalSubscriberId, + topicKey: topicKey, + }; + + const parsed = safeParse( + input, + (value) => + operations.TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + externalSubscriberId: encodeSimple( + "externalSubscriberId", + payload.externalSubscriberId, + { explode: false, charEncoding: "percent" }, + ), + topicKey: encodeSimple("topicKey", payload.topicKey, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}", + )(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "TopicsController_getTopicSubscriber", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.TopicsControllerGetTopicSubscriberResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.TopicsControllerGetTopicSubscriberResponse$inboundSchema, + { key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/trigger.ts b/src/funcs/trigger.ts new file mode 100644 index 00000000..1c976f9b --- /dev/null +++ b/src/funcs/trigger.ts @@ -0,0 +1,145 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Trigger event + * + * @remarks + * + * Trigger event is the main (and only) way to send notifications to subscribers. + * The trigger identifier is used to match the particular workflow associated with it. + * Additional information can be passed according the body interface below. + */ +export async function trigger( + client: NovuCore, + request: components.TriggerEventRequestDto, + options?: RequestOptions, +): Promise< + Result< + operations.EventsControllerTriggerResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => components.TriggerEventRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/events/trigger")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_trigger", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EventsControllerTriggerResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(201, operations.EventsControllerTriggerResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/triggerBroadcast.ts b/src/funcs/triggerBroadcast.ts new file mode 100644 index 00000000..beabf47b --- /dev/null +++ b/src/funcs/triggerBroadcast.ts @@ -0,0 +1,146 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Broadcast event to all + * + * @remarks + * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + * + * In the future could be used to trigger events to a subset of subscribers based on defined filters. + */ +export async function triggerBroadcast( + client: NovuCore, + request: components.TriggerEventToAllRequestDto, + options?: RequestOptions, +): Promise< + Result< + operations.EventsControllerBroadcastEventToAllResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + components.TriggerEventToAllRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/events/trigger/broadcast")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_broadcastEventToAll", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EventsControllerBroadcastEventToAllResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations.EventsControllerBroadcastEventToAllResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/triggerBulk.ts b/src/funcs/triggerBulk.ts new file mode 100644 index 00000000..b96c8557 --- /dev/null +++ b/src/funcs/triggerBulk.ts @@ -0,0 +1,144 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Bulk trigger event + * + * @remarks + * + * Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + * The bulk API is limited to 100 events per request. + */ +export async function triggerBulk( + client: NovuCore, + request: components.BulkTriggerEventDto, + options?: RequestOptions, +): Promise< + Result< + operations.EventsControllerTriggerBulkResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => components.BulkTriggerEventDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/events/trigger/bulk")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "EventsController_triggerBulk", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.EventsControllerTriggerBulkResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json(201, operations.EventsControllerTriggerBulkResponse$inboundSchema, { + hdrs: true, + key: "Result", + }), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/workflowGroupsCreate.ts b/src/funcs/workflowGroupsCreate.ts new file mode 100644 index 00000000..a9a3fa1a --- /dev/null +++ b/src/funcs/workflowGroupsCreate.ts @@ -0,0 +1,145 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Create workflow group + * + * @remarks + * workflow group was previously named notification group + */ +export async function workflowGroupsCreate( + client: NovuCore, + request: components.CreateNotificationGroupRequestDto, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationGroupsControllerCreateNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const parsed = safeParse( + request, + (value) => + components.CreateNotificationGroupRequestDto$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/v1/notification-groups")(); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_createNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationGroupsControllerCreateNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 201, + operations + .NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/workflowGroupsDelete.ts b/src/funcs/workflowGroupsDelete.ts new file mode 100644 index 00000000..2828ea51 --- /dev/null +++ b/src/funcs/workflowGroupsDelete.ts @@ -0,0 +1,157 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete workflow group + * + * @remarks + * workflow group was previously named notification group + */ +export async function workflowGroupsDelete( + client: NovuCore, + id: string, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationGroupsControllerDeleteNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.NotificationGroupsControllerDeleteNotificationGroupRequest = { + id: id, + }; + + const parsed = safeParse( + input, + (value) => + operations + .NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_deleteNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationGroupsControllerDeleteNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/workflowGroupsList.ts b/src/funcs/workflowGroupsList.ts new file mode 100644 index 00000000..a10cfeab --- /dev/null +++ b/src/funcs/workflowGroupsList.ts @@ -0,0 +1,127 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import * as M from "../lib/matchers.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get workflow groups + * + * @remarks + * workflow group was previously named notification group + */ +export async function workflowGroupsList( + client: NovuCore, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationGroupsControllerListNotificationGroupsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const path = pathToFunc("/v1/notification-groups")(); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_listNotificationGroups", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationGroupsControllerListNotificationGroupsResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/workflowGroupsRetrieve.ts b/src/funcs/workflowGroupsRetrieve.ts new file mode 100644 index 00000000..b79ebb53 --- /dev/null +++ b/src/funcs/workflowGroupsRetrieve.ts @@ -0,0 +1,157 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Get workflow group + * + * @remarks + * workflow group was previously named notification group + */ +export async function workflowGroupsRetrieve( + client: NovuCore, + id: string, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationGroupsControllerGetNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.NotificationGroupsControllerGetNotificationGroupRequest = { + id: id, + }; + + const parsed = safeParse( + input, + (value) => + operations + .NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); + + const headers = new Headers({ + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_getNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationGroupsControllerGetNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/funcs/workflowGroupsUpdate.ts b/src/funcs/workflowGroupsUpdate.ts new file mode 100644 index 00000000..9737567e --- /dev/null +++ b/src/funcs/workflowGroupsUpdate.ts @@ -0,0 +1,164 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { NovuCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { Result } from "../types/fp.js"; + +/** + * Update workflow group + * + * @remarks + * workflow group was previously named notification group + */ +export async function workflowGroupsUpdate( + client: NovuCore, + createNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto, + id: string, + options?: RequestOptions, +): Promise< + Result< + operations.NotificationGroupsControllerUpdateNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + > +> { + const input: + operations.NotificationGroupsControllerUpdateNotificationGroupRequest = { + createNotificationGroupRequestDto: createNotificationGroupRequestDto, + id: id, + }; + + const parsed = safeParse( + input, + (value) => + operations + .NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return parsed; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.CreateNotificationGroupRequestDto, { + explode: true, + }); + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/notification-groups/{id}")(pathParams); + + const headers = new Headers({ + "Content-Type": "application/json", + Accept: "application/json", + }); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + operationID: "NotificationGroupsController_updateNotificationGroup", + oAuth2Scopes: [], + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { + strategy: "backoff", + backoff: { + initialInterval: 500, + maxInterval: 30000, + exponent: 1.5, + maxElapsedTime: 3600000, + }, + retryConnectionErrors: true, + } + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + path: path, + headers: headers, + body: body, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return requestRes; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["409", "429", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return doResult; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.NotificationGroupsControllerUpdateNotificationGroupResponse, + | SDKError + | SDKValidationError + | UnexpectedClientError + | InvalidRequestError + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + >( + M.json( + 200, + operations + .NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema, + { hdrs: true, key: "Result" }, + ), + M.fail([409, 429, 503]), + M.fail(["4XX", "5XX"]), + )(response, { extraFields: responseFields }); + if (!result.ok) { + return result; + } + + return result; +} diff --git a/src/hooks/hooks.ts b/src/hooks/hooks.ts new file mode 100644 index 00000000..d1b3396f --- /dev/null +++ b/src/hooks/hooks.ts @@ -0,0 +1,112 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { RequestInput } from "../lib/http.js"; +import { + AfterErrorContext, + AfterErrorHook, + AfterSuccessContext, + AfterSuccessHook, + BeforeCreateRequestContext, + BeforeCreateRequestHook, + BeforeRequestContext, + BeforeRequestHook, + Hooks, + SDKInitHook, + SDKInitOptions, +} from "./types.js"; + +import { initHooks } from "./registration.js"; + +export class SDKHooks implements Hooks { + sdkInitHooks: SDKInitHook[] = []; + beforeCreateRequestHooks: BeforeCreateRequestHook[] = []; + beforeRequestHooks: BeforeRequestHook[] = []; + afterSuccessHooks: AfterSuccessHook[] = []; + afterErrorHooks: AfterErrorHook[] = []; + + constructor() { + initHooks(this); + } + + registerSDKInitHook(hook: SDKInitHook) { + this.sdkInitHooks.push(hook); + } + + registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook) { + this.beforeCreateRequestHooks.push(hook); + } + + registerBeforeRequestHook(hook: BeforeRequestHook) { + this.beforeRequestHooks.push(hook); + } + + registerAfterSuccessHook(hook: AfterSuccessHook) { + this.afterSuccessHooks.push(hook); + } + + registerAfterErrorHook(hook: AfterErrorHook) { + this.afterErrorHooks.push(hook); + } + + sdkInit(opts: SDKInitOptions): SDKInitOptions { + return this.sdkInitHooks.reduce((opts, hook) => hook.sdkInit(opts), opts); + } + + beforeCreateRequest( + hookCtx: BeforeCreateRequestContext, + input: RequestInput, + ): RequestInput { + let inp = input; + + for (const hook of this.beforeCreateRequestHooks) { + inp = hook.beforeCreateRequest(hookCtx, inp); + } + + return inp; + } + + async beforeRequest( + hookCtx: BeforeRequestContext, + request: Request, + ): Promise { + let req = request; + + for (const hook of this.beforeRequestHooks) { + req = await hook.beforeRequest(hookCtx, req); + } + + return req; + } + + async afterSuccess( + hookCtx: AfterSuccessContext, + response: Response, + ): Promise { + let res = response; + + for (const hook of this.afterSuccessHooks) { + res = await hook.afterSuccess(hookCtx, res); + } + + return res; + } + + async afterError( + hookCtx: AfterErrorContext, + response: Response | null, + error: unknown, + ): Promise<{ response: Response | null; error: unknown }> { + let res = response; + let err = error; + + for (const hook of this.afterErrorHooks) { + const result = await hook.afterError(hookCtx, res, err); + res = result.response; + err = result.error; + } + + return { response: res, error: err }; + } +} diff --git a/src/hooks/index.ts b/src/hooks/index.ts new file mode 100644 index 00000000..f60ec7ac --- /dev/null +++ b/src/hooks/index.ts @@ -0,0 +1,6 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export * from "./hooks.js"; +export * from "./types.js"; diff --git a/src/hooks/registration.ts b/src/hooks/registration.ts new file mode 100644 index 00000000..70649734 --- /dev/null +++ b/src/hooks/registration.ts @@ -0,0 +1,14 @@ +import { Hooks } from "./types.js"; + +/* + * This file is only ever generated once on the first generation and then is free to be modified. + * Any hooks you wish to add should be registered in the initHooks function. Feel free to define them + * in this file or in separate files in the hooks folder. + */ + +// @ts-expect-error remove this line when you add your first hook and hooks is used +export function initHooks(hooks: Hooks) { + // Add hooks by calling hooks.register{ClientInit/BeforeCreateRequest/BeforeRequest/AfterSuccess/AfterError}Hook + // with an instance of a hook that implements that specific Hook interface + // Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance +} diff --git a/src/hooks/types.ts b/src/hooks/types.ts new file mode 100644 index 00000000..df5237dc --- /dev/null +++ b/src/hooks/types.ts @@ -0,0 +1,102 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { HTTPClient, RequestInput } from "../lib/http.js"; +import { RetryConfig } from "../lib/retries.js"; +import { SecurityState } from "../lib/security.js"; + +export type HookContext = { + operationID: string; + oAuth2Scopes?: string[]; + securitySource?: any | (() => Promise); + retryConfig: RetryConfig; + resolvedSecurity: SecurityState | null; +}; + +export type Awaitable = T | Promise; + +export type SDKInitOptions = { + baseURL: URL | null; + client: HTTPClient; +}; + +export type BeforeCreateRequestContext = HookContext & {}; +export type BeforeRequestContext = HookContext & {}; +export type AfterSuccessContext = HookContext & {}; +export type AfterErrorContext = HookContext & {}; + +/** + * SDKInitHook is called when the SDK is initializing. The + * hook can return a new baseURL and HTTP client to be used by the SDK. + */ +export interface SDKInitHook { + sdkInit: (opts: SDKInitOptions) => SDKInitOptions; +} + +export interface BeforeCreateRequestHook { + /** + * A hook that is called before the SDK creates a `Request` object. The hook + * can modify how a request is constructed since certain modifications, like + * changing the request URL, cannot be done on a request object directly. + */ + beforeCreateRequest: ( + hookCtx: BeforeCreateRequestContext, + input: RequestInput, + ) => RequestInput; +} + +export interface BeforeRequestHook { + /** + * A hook that is called before the SDK sends a request. The hook can + * introduce instrumentation code such as logging, tracing and metrics or + * replace the request before it is sent or throw an error to stop the + * request from being sent. + */ + beforeRequest: ( + hookCtx: BeforeRequestContext, + request: Request, + ) => Awaitable; +} + +export interface AfterSuccessHook { + /** + * A hook that is called after the SDK receives a response. The hook can + * introduce instrumentation code such as logging, tracing and metrics or + * modify the response before it is handled or throw an error to stop the + * response from being handled. + */ + afterSuccess: ( + hookCtx: AfterSuccessContext, + response: Response, + ) => Awaitable; +} + +export interface AfterErrorHook { + /** + * A hook that is called after the SDK encounters an error, or a + * non-successful response. The hook can introduce instrumentation code such + * as logging, tracing and metrics or modify the response or error values. + */ + afterError: ( + hookCtx: AfterErrorContext, + response: Response | null, + error: unknown, + ) => Awaitable<{ + response: Response | null; + error: unknown; + }>; +} + +export interface Hooks { + /** Registers a hook to be used by the SDK for initialization event. */ + registerSDKInitHook(hook: SDKInitHook): void; + /** Registers a hook to be used by the SDK for to modify `Request` construction. */ + registerBeforeCreateRequestHook(hook: BeforeCreateRequestHook): void; + /** Registers a hook to be used by the SDK for the before request event. */ + registerBeforeRequestHook(hook: BeforeRequestHook): void; + /** Registers a hook to be used by the SDK for the after success event. */ + registerAfterSuccessHook(hook: AfterSuccessHook): void; + /** Registers a hook to be used by the SDK for the after error event. */ + registerAfterErrorHook(hook: AfterErrorHook): void; +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..5ddc765e --- /dev/null +++ b/src/index.ts @@ -0,0 +1,7 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export * from "./lib/config.js"; +export * as files from "./lib/files.js"; +export * from "./sdk/sdk.js"; diff --git a/src/lib/base64.ts b/src/lib/base64.ts new file mode 100644 index 00000000..c2d5b389 --- /dev/null +++ b/src/lib/base64.ts @@ -0,0 +1,37 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; + +export function bytesToBase64(u8arr: Uint8Array): string { + return btoa(String.fromCodePoint(...u8arr)); +} + +export function bytesFromBase64(encoded: string): Uint8Array { + return Uint8Array.from(atob(encoded), (c) => c.charCodeAt(0)); +} + +export function stringToBytes(str: string): Uint8Array { + return new TextEncoder().encode(str); +} + +export function stringFromBytes(u8arr: Uint8Array): string { + return new TextDecoder().decode(u8arr); +} + +export function stringToBase64(str: string): string { + return bytesToBase64(stringToBytes(str)); +} + +export function stringFromBase64(b64str: string): string { + return stringFromBytes(bytesFromBase64(b64str)); +} + +export const zodOutbound = z + .instanceof(Uint8Array) + .or(z.string().transform(stringToBytes)); + +export const zodInbound = z + .instanceof(Uint8Array) + .or(z.string().transform(bytesFromBase64)); diff --git a/src/lib/config.ts b/src/lib/config.ts new file mode 100644 index 00000000..b62e3d45 --- /dev/null +++ b/src/lib/config.ts @@ -0,0 +1,61 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { HTTPClient } from "./http.js"; +import { Logger } from "./logger.js"; +import { RetryConfig } from "./retries.js"; +import { Params, pathToFunc } from "./url.js"; + +/** + * Contains the list of servers available to the SDK + */ +export const ServerList = [ + "https://api.novu.co", + "https://eu.api.novu.co", +] as const; + +export type SDKOptions = { + apiKey?: string | (() => Promise); + + httpClient?: HTTPClient; + /** + * Allows overriding the default server used by the SDK + */ + serverIdx?: number; + /** + * Allows overriding the default server URL used by the SDK + */ + serverURL?: string; + /** + * Allows overriding the default retry config used by the SDK + */ + retryConfig?: RetryConfig; + timeoutMs?: number; + debugLogger?: Logger; +}; + +export function serverURLFromOptions(options: SDKOptions): URL | null { + let serverURL = options.serverURL; + + const params: Params = {}; + + if (!serverURL) { + const serverIdx = options.serverIdx ?? 0; + if (serverIdx < 0 || serverIdx >= ServerList.length) { + throw new Error(`Invalid server index ${serverIdx}`); + } + serverURL = ServerList[serverIdx] || ""; + } + + const u = pathToFunc(serverURL)(params); + return new URL(u); +} + +export const SDK_METADATA = { + language: "typescript", + openapiDocVersion: "1.0", + sdkVersion: "0.0.1-alpha.21", + genVersion: "2.461.4", + userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.21 2.461.4 1.0 @novu/api", +} as const; diff --git a/src/lib/dlv.ts b/src/lib/dlv.ts new file mode 100644 index 00000000..e81091f5 --- /dev/null +++ b/src/lib/dlv.ts @@ -0,0 +1,53 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +/* +MIT License + +Copyright (c) 2024 Jason Miller (http://jasonformat.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/** + * @param obj The object to walk + * @param key The key path to walk the object with + * @param def A default value to return if the result is undefined + * + * @example + * dlv(obj, "a.b.c.d") + * @example + * dlv(object, ["a", "b", "c", "d"]) + * @example + * dlv(object, "foo.bar.baz", "Hello, default value!") + */ +export function dlv( + obj: any, + key: string | string[], + def?: T, + p?: number, + undef?: never, +): T | undefined { + key = Array.isArray(key) ? key : key.split("."); + for (p = 0; p < key.length; p++) { + const k = key[p]; + obj = k != null && obj ? obj[k] : undef; + } + return obj === undef ? def : obj; +} diff --git a/src/lib/encodings.ts b/src/lib/encodings.ts new file mode 100644 index 00000000..44fa7284 --- /dev/null +++ b/src/lib/encodings.ts @@ -0,0 +1,449 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { bytesToBase64 } from "./base64.js"; +import { isPlainObject } from "./is-plain-object.js"; + +export class EncodingError extends Error { + constructor(message: string) { + super(message); + this.name = "EncodingError"; + } +} + +export function encodeMatrix( + key: string, + value: unknown, + options?: { explode?: boolean; charEncoding?: "percent" | "none" }, +): string { + let out = ""; + const pairs: [string, unknown][] = options?.explode + ? explode(key, value) + : [[key, value]]; + + const encodeString = (v: string) => { + return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; + }; + const encodeValue = (v: unknown) => encodeString(serializeValue(v)); + + pairs.forEach(([pk, pv]) => { + let tmp = ""; + let encValue = ""; + + if (pv === undefined) { + return; + } else if (Array.isArray(pv)) { + encValue = mapDefined(pv, (v) => `${encodeValue(v)}`).join(","); + } else if (isPlainObject(pv)) { + encValue = mapDefinedEntries(Object.entries(pv), ([k, v]) => { + return `,${encodeString(k)},${encodeValue(v)}`; + }).join(""); + encValue = encValue.slice(1); + } else { + encValue = `${encodeValue(pv)}`; + } + + const keyPrefix = encodeString(pk); + tmp = `${keyPrefix}=${encValue}`; + // trim trailing '=' if value was empty + if (tmp === `${keyPrefix}=`) { + tmp = tmp.slice(0, -1); + } + + // If we end up with the nothing then skip forward + if (!tmp) { + return; + } + + out += `;${tmp}`; + }); + + return out; +} + +export function encodeLabel( + key: string, + value: unknown, + options?: { explode?: boolean; charEncoding?: "percent" | "none" }, +): string { + let out = ""; + const pairs: [string, unknown][] = options?.explode + ? explode(key, value) + : [[key, value]]; + + const encodeString = (v: string) => { + return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; + }; + const encodeValue = (v: unknown) => encodeString(serializeValue(v)); + + pairs.forEach(([pk, pv]) => { + let encValue = ""; + + if (pv === undefined) { + return; + } else if (Array.isArray(pv)) { + encValue = mapDefined(pv, (v) => `${encodeValue(v)}`).join("."); + } else if (isPlainObject(pv)) { + encValue = mapDefinedEntries(Object.entries(pv), ([k, v]) => { + return `.${encodeString(k)}.${encodeValue(v)}`; + }).join(""); + encValue = encValue.slice(1); + } else { + const k = + options?.explode && isPlainObject(value) ? `${encodeString(pk)}=` : ""; + encValue = `${k}${encodeValue(pv)}`; + } + + out += `.${encValue}`; + }); + + return out; +} + +type FormEncoder = ( + key: string, + value: unknown, + options?: { explode?: boolean; charEncoding?: "percent" | "none" }, +) => string; + +function formEncoder(sep: string): FormEncoder { + return ( + key: string, + value: unknown, + options?: { explode?: boolean; charEncoding?: "percent" | "none" }, + ) => { + let out = ""; + const pairs: [string, unknown][] = options?.explode + ? explode(key, value) + : [[key, value]]; + + const encodeString = (v: string) => { + return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; + }; + + const encodeValue = (v: unknown) => encodeString(serializeValue(v)); + + const encodedSep = encodeString(sep); + + pairs.forEach(([pk, pv]) => { + let tmp = ""; + let encValue = ""; + + if (pv === undefined) { + return; + } else if (Array.isArray(pv)) { + encValue = mapDefined(pv, (v) => `${encodeValue(v)}`).join(encodedSep); + } else if (isPlainObject(pv)) { + encValue = mapDefinedEntries(Object.entries(pv), ([k, v]) => { + return `${encodeString(k)}${encodedSep}${encodeValue(v)}`; + }).join(encodedSep); + } else { + encValue = `${encodeValue(pv)}`; + } + + tmp = `${encodeString(pk)}=${encValue}`; + + // If we end up with the nothing then skip forward + if (!tmp || tmp === "=") { + return; + } + + out += `&${tmp}`; + }); + + return out.slice(1); + }; +} + +export const encodeForm = formEncoder(","); +export const encodeSpaceDelimited = formEncoder(" "); +export const encodePipeDelimited = formEncoder("|"); + +export function encodeBodyForm( + key: string, + value: unknown, + options?: { explode?: boolean; charEncoding?: "percent" | "none" }, +): string { + let out = ""; + const pairs: [string, unknown][] = options?.explode + ? explode(key, value) + : [[key, value]]; + + const encodeString = (v: string) => { + return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; + }; + + const encodeValue = (v: unknown) => encodeString(serializeValue(v)); + + pairs.forEach(([pk, pv]) => { + let tmp = ""; + let encValue = ""; + + if (pv === undefined) { + return; + } else if (Array.isArray(pv)) { + encValue = JSON.stringify(pv, jsonReplacer); + } else if (isPlainObject(pv)) { + encValue = JSON.stringify(pv, jsonReplacer); + } else { + encValue = `${encodeValue(pv)}`; + } + + tmp = `${encodeString(pk)}=${encValue}`; + + // If we end up with the nothing then skip forward + if (!tmp || tmp === "=") { + return; + } + + out += `&${tmp}`; + }); + + return out.slice(1); +} + +export function encodeDeepObject( + key: string, + value: unknown, + options?: { charEncoding?: "percent" | "none" }, +): string { + if (value == null) { + return ""; + } + + if (!isPlainObject(value)) { + throw new EncodingError( + `Value of parameter '${key}' which uses deepObject encoding must be an object`, + ); + } + + return encodeDeepObjectObject(key, value, options); +} + +export function encodeDeepObjectObject( + key: string, + value: unknown, + options?: { charEncoding?: "percent" | "none" }, +): string { + if (value == null) { + return ""; + } + + let out = ""; + + const encodeString = (v: string) => { + return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; + }; + + if (!isPlainObject(value)) { + throw new EncodingError(`Expected parameter '${key}' to be an object.`); + } + + Object.entries(value).forEach(([ck, cv]) => { + if (cv === undefined) { + return; + } + + const pk = `${key}[${ck}]`; + + if (isPlainObject(cv)) { + const objOut = encodeDeepObjectObject(pk, cv, options); + + out += `&${objOut}`; + + return; + } + + const pairs: unknown[] = Array.isArray(cv) ? cv : [cv]; + let encoded = ""; + + encoded = mapDefined(pairs, (v) => { + return `${encodeString(pk)}=${encodeString(serializeValue(v))}`; + }).join("&"); + + out += `&${encoded}`; + }); + + return out.slice(1); +} + +export function encodeJSON( + key: string, + value: unknown, + options?: { explode?: boolean; charEncoding?: "percent" | "none" }, +): string { + if (typeof value === "undefined") { + return ""; + } + + const encodeString = (v: string) => { + return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; + }; + + const encVal = encodeString(JSON.stringify(value, jsonReplacer)); + + return options?.explode ? encVal : `${encodeString(key)}=${encVal}`; +} + +export const encodeSimple = ( + key: string, + value: unknown, + options?: { explode?: boolean; charEncoding?: "percent" | "none" }, +): string => { + let out = ""; + const pairs: [string, unknown][] = options?.explode + ? explode(key, value) + : [[key, value]]; + + const encodeString = (v: string) => { + return options?.charEncoding === "percent" ? encodeURIComponent(v) : v; + }; + const encodeValue = (v: unknown) => encodeString(serializeValue(v)); + + pairs.forEach(([pk, pv]) => { + let tmp = ""; + + if (pv === undefined) { + return; + } else if (Array.isArray(pv)) { + tmp = mapDefined(pv, (v) => `${encodeValue(v)}`).join(","); + } else if (isPlainObject(pv)) { + tmp = mapDefinedEntries(Object.entries(pv), ([k, v]) => { + return `,${encodeString(k)},${encodeValue(v)}`; + }).join(""); + tmp = tmp.slice(1); + } else { + const k = options?.explode && isPlainObject(value) ? `${pk}=` : ""; + tmp = `${k}${encodeValue(pv)}`; + } + + // If we end up with the nothing then skip forward + if (!tmp) { + return; + } + + out += `,${tmp}`; + }); + + return out.slice(1); +}; + +function explode(key: string, value: unknown): [string, unknown][] { + if (Array.isArray(value)) { + return value.map((v) => [key, v]); + } else if (isPlainObject(value)) { + const o = value ?? {}; + return Object.entries(o).map(([k, v]) => [k, v]); + } else { + return [[key, value]]; + } +} + +function serializeValue(value: unknown): string { + if (value === null) { + return "null"; + } else if (typeof value === "undefined") { + return ""; + } else if (value instanceof Date) { + return value.toISOString(); + } else if (value instanceof Uint8Array) { + return bytesToBase64(value); + } else if (typeof value === "object") { + return JSON.stringify(value, jsonReplacer); + } + + return `${value}`; +} + +function jsonReplacer(_: string, value: unknown): unknown { + if (value instanceof Uint8Array) { + return bytesToBase64(value); + } else { + return value; + } +} + +function mapDefined(inp: T[], mapper: (v: T) => R): R[] { + return inp.reduce((acc, v) => { + if (v === undefined) { + return acc; + } + + const m = mapper(v); + if (m === undefined) { + return acc; + } + + acc.push(m); + + return acc; + }, []); +} + +function mapDefinedEntries( + inp: Iterable<[K, V]>, + mapper: (v: [K, V]) => R, +): R[] { + const acc: R[] = []; + for (const [k, v] of inp) { + if (v === undefined) { + continue; + } + + const m = mapper([k, v]); + if (m === undefined) { + continue; + } + + acc.push(m); + } + + return acc; +} + +export function queryJoin(...args: string[]): string { + return args.filter(Boolean).join("&"); +} + +type QueryEncoderOptions = { + explode?: boolean; + charEncoding?: "percent" | "none"; +}; + +type QueryEncoder = ( + key: string, + value: unknown, + options?: QueryEncoderOptions, +) => string; + +type BulkQueryEncoder = ( + values: Record, + options?: QueryEncoderOptions, +) => string; + +export function queryEncoder(f: QueryEncoder): BulkQueryEncoder { + const bulkEncode = function ( + values: Record, + options?: QueryEncoderOptions, + ): string { + const opts: QueryEncoderOptions = { + ...options, + explode: options?.explode ?? true, + charEncoding: options?.charEncoding ?? "percent", + }; + + const encoded = Object.entries(values).map(([key, value]) => { + return f(key, value, opts); + }); + return queryJoin(...encoded); + }; + + return bulkEncode; +} + +export const encodeJSONQuery = queryEncoder(encodeJSON); +export const encodeFormQuery = queryEncoder(encodeForm); +export const encodeSpaceDelimitedQuery = queryEncoder(encodeSpaceDelimited); +export const encodePipeDelimitedQuery = queryEncoder(encodePipeDelimited); +export const encodeDeepObjectQuery = queryEncoder(encodeDeepObject); diff --git a/src/lib/files.ts b/src/lib/files.ts new file mode 100644 index 00000000..19e08041 --- /dev/null +++ b/src/lib/files.ts @@ -0,0 +1,40 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +/** + * Consumes a stream and returns a concatenated array buffer. Useful in + * situations where we need to read the whole file because it forms part of a + * larger payload containing other fields, and we can't modify the underlying + * request structure. + */ +export async function readableStreamToArrayBuffer( + readable: ReadableStream, +): Promise { + const reader = readable.getReader(); + const chunks: Uint8Array[] = []; + + let totalLength = 0; + let done = false; + + while (!done) { + const { value, done: doneReading } = await reader.read(); + + if (doneReading) { + done = true; + } else { + chunks.push(value); + totalLength += value.length; + } + } + + const concatenatedChunks = new Uint8Array(totalLength); + let offset = 0; + + for (const chunk of chunks) { + concatenatedChunks.set(chunk, offset); + offset += chunk.length; + } + + return concatenatedChunks.buffer; +} diff --git a/src/lib/http.ts b/src/lib/http.ts new file mode 100644 index 00000000..13cf1fd7 --- /dev/null +++ b/src/lib/http.ts @@ -0,0 +1,323 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export type Fetcher = ( + input: RequestInfo | URL, + init?: RequestInit, +) => Promise; + +export type Awaitable = T | Promise; + +const DEFAULT_FETCHER: Fetcher = (input, init) => { + // If input is a Request and init is undefined, Bun will discard the method, + // headers, body and other options that were set on the request object. + // Node.js and browers would ignore an undefined init value. This check is + // therefore needed for interop with Bun. + if (init == null) { + return fetch(input); + } else { + return fetch(input, init); + } +}; + +export type RequestInput = { + /** + * The URL the request will use. + */ + url: URL; + /** + * Options used to create a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request). + */ + options?: RequestInit | undefined; +}; + +export interface HTTPClientOptions { + fetcher?: Fetcher; +} + +export type BeforeRequestHook = (req: Request) => Awaitable; +export type RequestErrorHook = (err: unknown, req: Request) => Awaitable; +export type ResponseHook = (res: Response, req: Request) => Awaitable; + +export class HTTPClient { + private fetcher: Fetcher; + private requestHooks: BeforeRequestHook[] = []; + private requestErrorHooks: RequestErrorHook[] = []; + private responseHooks: ResponseHook[] = []; + + constructor(private options: HTTPClientOptions = {}) { + this.fetcher = options.fetcher || DEFAULT_FETCHER; + } + + async request(request: Request): Promise { + let req = request; + for (const hook of this.requestHooks) { + const nextRequest = await hook(req); + if (nextRequest) { + req = nextRequest; + } + } + + try { + const res = await this.fetcher(req); + + for (const hook of this.responseHooks) { + await hook(res, req); + } + + return res; + } catch (err) { + for (const hook of this.requestErrorHooks) { + await hook(err, req); + } + + throw err; + } + } + + /** + * Registers a hook that is called before a request is made. The hook function + * can mutate the request or return a new request. This may be useful to add + * additional information to request such as request IDs and tracing headers. + */ + addHook(hook: "beforeRequest", fn: BeforeRequestHook): this; + /** + * Registers a hook that is called when a request cannot be made due to a + * network error. + */ + addHook(hook: "requestError", fn: RequestErrorHook): this; + /** + * Registers a hook that is called when a response has been received from the + * server. + */ + addHook(hook: "response", fn: ResponseHook): this; + addHook( + ...args: + | [hook: "beforeRequest", fn: BeforeRequestHook] + | [hook: "requestError", fn: RequestErrorHook] + | [hook: "response", fn: ResponseHook] + ) { + if (args[0] === "beforeRequest") { + this.requestHooks.push(args[1]); + } else if (args[0] === "requestError") { + this.requestErrorHooks.push(args[1]); + } else if (args[0] === "response") { + this.responseHooks.push(args[1]); + } else { + throw new Error(`Invalid hook type: ${args[0]}`); + } + return this; + } + + /** Removes a hook that was previously registered with `addHook`. */ + removeHook(hook: "beforeRequest", fn: BeforeRequestHook): this; + /** Removes a hook that was previously registered with `addHook`. */ + removeHook(hook: "requestError", fn: RequestErrorHook): this; + /** Removes a hook that was previously registered with `addHook`. */ + removeHook(hook: "response", fn: ResponseHook): this; + removeHook( + ...args: + | [hook: "beforeRequest", fn: BeforeRequestHook] + | [hook: "requestError", fn: RequestErrorHook] + | [hook: "response", fn: ResponseHook] + ): this { + let target: unknown[]; + if (args[0] === "beforeRequest") { + target = this.requestHooks; + } else if (args[0] === "requestError") { + target = this.requestErrorHooks; + } else if (args[0] === "response") { + target = this.responseHooks; + } else { + throw new Error(`Invalid hook type: ${args[0]}`); + } + + const index = target.findIndex((v) => v === args[1]); + if (index >= 0) { + target.splice(index, 1); + } + + return this; + } + + clone(): HTTPClient { + const child = new HTTPClient(this.options); + child.requestHooks = this.requestHooks.slice(); + child.requestErrorHooks = this.requestErrorHooks.slice(); + child.responseHooks = this.responseHooks.slice(); + + return child; + } +} + +export type StatusCodePredicate = number | string | (number | string)[]; + +// A semicolon surrounded by optional whitespace characters is used to separate +// segments in a media type string. +const mediaParamSeparator = /\s*;\s*/g; + +export function matchContentType(response: Response, pattern: string): boolean { + // `*` is a special case which means anything is acceptable. + if (pattern === "*") { + return true; + } + + let contentType = + response.headers.get("content-type")?.trim() || "application/octet-stream"; + contentType = contentType.toLowerCase(); + + const wantParts = pattern.toLowerCase().trim().split(mediaParamSeparator); + const [wantType = "", ...wantParams] = wantParts; + + if (wantType.split("/").length !== 2) { + return false; + } + + const gotParts = contentType.split(mediaParamSeparator); + const [gotType = "", ...gotParams] = gotParts; + + const [type = "", subtype = ""] = gotType.split("/"); + if (!type || !subtype) { + return false; + } + + if ( + wantType !== "*/*" && + gotType !== wantType && + `${type}/*` !== wantType && + `*/${subtype}` !== wantType + ) { + return false; + } + + if (gotParams.length < wantParams.length) { + return false; + } + + const params = new Set(gotParams); + for (const wantParam of wantParams) { + if (!params.has(wantParam)) { + return false; + } + } + + return true; +} + +const codeRangeRE = new RegExp("^[0-9]xx$", "i"); + +export function matchStatusCode( + response: Response, + codes: StatusCodePredicate, +): boolean { + const actual = `${response.status}`; + const expectedCodes = Array.isArray(codes) ? codes : [codes]; + if (!expectedCodes.length) { + return false; + } + + return expectedCodes.some((ec) => { + const code = `${ec}`; + + if (code === "default") { + return true; + } + + if (!codeRangeRE.test(`${code}`)) { + return code === actual; + } + + const expectFamily = code.charAt(0); + if (!expectFamily) { + throw new Error("Invalid status code range"); + } + + const actualFamily = actual.charAt(0); + if (!actualFamily) { + throw new Error(`Invalid response status code: ${actual}`); + } + + return actualFamily === expectFamily; + }); +} + +export function matchResponse( + response: Response, + code: StatusCodePredicate, + contentTypePattern: string, +): boolean { + return ( + matchStatusCode(response, code) && + matchContentType(response, contentTypePattern) + ); +} + +/** + * Uses various heurisitics to determine if an error is a connection error. + */ +export function isConnectionError(err: unknown): boolean { + if (typeof err !== "object" || err == null) { + return false; + } + + // Covers fetch in Deno as well + const isBrowserErr = + err instanceof TypeError && + err.message.toLowerCase().startsWith("failed to fetch"); + + const isNodeErr = + err instanceof TypeError && + err.message.toLowerCase().startsWith("fetch failed"); + + const isBunErr = "name" in err && err.name === "ConnectionError"; + + const isGenericErr = + "code" in err && + typeof err.code === "string" && + err.code.toLowerCase() === "econnreset"; + + return isBrowserErr || isNodeErr || isGenericErr || isBunErr; +} + +/** + * Uses various heurisitics to determine if an error is a timeout error. + */ +export function isTimeoutError(err: unknown): boolean { + if (typeof err !== "object" || err == null) { + return false; + } + + // Fetch in browser, Node.js, Bun, Deno + const isNative = "name" in err && err.name === "TimeoutError"; + const isLegacyNative = "code" in err && err.code === 23; + + // Node.js HTTP client and Axios + const isGenericErr = + "code" in err && + typeof err.code === "string" && + err.code.toLowerCase() === "econnaborted"; + + return isNative || isLegacyNative || isGenericErr; +} + +/** + * Uses various heurisitics to determine if an error is a abort error. + */ +export function isAbortError(err: unknown): boolean { + if (typeof err !== "object" || err == null) { + return false; + } + + // Fetch in browser, Node.js, Bun, Deno + const isNative = "name" in err && err.name === "AbortError"; + const isLegacyNative = "code" in err && err.code === 20; + + // Node.js HTTP client and Axios + const isGenericErr = + "code" in err && + typeof err.code === "string" && + err.code.toLowerCase() === "econnaborted"; + + return isNative || isLegacyNative || isGenericErr; +} diff --git a/src/lib/is-plain-object.ts b/src/lib/is-plain-object.ts new file mode 100644 index 00000000..61070d3d --- /dev/null +++ b/src/lib/is-plain-object.ts @@ -0,0 +1,43 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +/* +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +// Taken from https://github.com/sindresorhus/is-plain-obj/blob/97f38e8836f86a642cce98fc6ab3058bc36df181/index.js + +export function isPlainObject(value: unknown): value is object { + if (typeof value !== "object" || value === null) { + return false; + } + + const prototype = Object.getPrototypeOf(value); + return ( + (prototype === null || + prototype === Object.prototype || + Object.getPrototypeOf(prototype) === null) && + !(Symbol.toStringTag in value) && + !(Symbol.iterator in value) + ); +} diff --git a/src/lib/logger.ts b/src/lib/logger.ts new file mode 100644 index 00000000..d181f293 --- /dev/null +++ b/src/lib/logger.ts @@ -0,0 +1,9 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export interface Logger { + group(label?: string): void; + groupEnd(): void; + log(message: any, ...args: any[]): void; +} diff --git a/src/lib/matchers.ts b/src/lib/matchers.ts new file mode 100644 index 00000000..19b46b33 --- /dev/null +++ b/src/lib/matchers.ts @@ -0,0 +1,322 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { SDKError } from "../models/errors/sdkerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { Result } from "../types/fp.js"; +import { matchResponse, matchStatusCode, StatusCodePredicate } from "./http.js"; +import { isPlainObject } from "./is-plain-object.js"; +import { safeParse } from "./schemas.js"; + +export type Encoding = + | "json" + | "text" + | "bytes" + | "stream" + | "sse" + | "nil" + | "fail"; + +const DEFAULT_CONTENT_TYPES: Record = { + json: "application/json", + text: "text/plain", + bytes: "application/octet-stream", + stream: "application/octet-stream", + sse: "text/event-stream", + nil: "*", + fail: "*", +}; + +type Schema = { parse(raw: unknown): T }; + +type MatchOptions = { + ctype?: string; + hdrs?: boolean; + key?: string; + sseSentinel?: string; +}; + +export type ValueMatcher = MatchOptions & { + enc: Encoding; + codes: StatusCodePredicate; + schema: Schema; +}; + +export type ErrorMatcher = MatchOptions & { + enc: Encoding; + codes: StatusCodePredicate; + schema: Schema; + err: true; +}; + +export type FailMatcher = { + enc: "fail"; + codes: StatusCodePredicate; +}; + +export type Matcher = ValueMatcher | ErrorMatcher | FailMatcher; + +export function jsonErr( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ErrorMatcher { + return { ...options, err: true, enc: "json", codes, schema }; +} +export function json( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ValueMatcher { + return { ...options, enc: "json", codes, schema }; +} + +export function textErr( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ErrorMatcher { + return { ...options, err: true, enc: "text", codes, schema }; +} +export function text( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ValueMatcher { + return { ...options, enc: "text", codes, schema }; +} + +export function bytesErr( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ErrorMatcher { + return { ...options, err: true, enc: "bytes", codes, schema }; +} +export function bytes( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ValueMatcher { + return { ...options, enc: "bytes", codes, schema }; +} + +export function streamErr( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ErrorMatcher { + return { ...options, err: true, enc: "stream", codes, schema }; +} +export function stream( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ValueMatcher { + return { ...options, enc: "stream", codes, schema }; +} + +export function sseErr( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ErrorMatcher { + return { ...options, err: true, enc: "sse", codes, schema }; +} +export function sse( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ValueMatcher { + return { ...options, enc: "sse", codes, schema }; +} + +export function nilErr( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ErrorMatcher { + return { ...options, err: true, enc: "nil", codes, schema }; +} +export function nil( + codes: StatusCodePredicate, + schema: Schema, + options?: MatchOptions, +): ValueMatcher { + return { ...options, enc: "nil", codes, schema }; +} + +export function fail(codes: StatusCodePredicate): FailMatcher { + return { enc: "fail", codes }; +} + +export type MatchedValue = Matchers extends Matcher[] + ? T + : never; +export type MatchedError = Matchers extends Matcher[] + ? E + : never; +export type MatchFunc = ( + response: Response, + options?: { resultKey?: string; extraFields?: Record }, +) => Promise<[result: Result, raw: unknown]>; + +export function match( + ...matchers: Array> +): MatchFunc { + return async function matchFunc( + response: Response, + options?: { resultKey?: string; extraFields?: Record }, + ): Promise< + [result: Result, raw: unknown] + > { + let raw: unknown; + let matcher: Matcher | undefined; + for (const match of matchers) { + const { codes } = match; + const ctpattern = "ctype" in match + ? match.ctype + : DEFAULT_CONTENT_TYPES[match.enc]; + if (ctpattern && matchResponse(response, codes, ctpattern)) { + matcher = match; + break; + } else if (!ctpattern && matchStatusCode(response, codes)) { + matcher = match; + break; + } + } + + if (!matcher) { + const responseBody = await response.text(); + return [{ + ok: false, + error: new SDKError( + "Unexpected API response status or content-type", + response, + responseBody, + ), + }, responseBody]; + } + + const encoding = matcher.enc; + switch (encoding) { + case "json": + raw = await response.json(); + break; + case "bytes": + raw = new Uint8Array(await response.arrayBuffer()); + break; + case "stream": + raw = response.body; + break; + case "text": + raw = await response.text(); + break; + case "sse": + raw = response.body; + break; + case "nil": + raw = await discardResponseBody(response); + break; + case "fail": + raw = await response.text(); + break; + default: + encoding satisfies never; + throw new Error(`Unsupported response type: ${encoding}`); + } + + if (matcher.enc === "fail") { + return [{ + ok: false, + error: new SDKError( + "API error occurred", + response, + typeof raw === "string" ? raw : "", + ), + }, raw]; + } + + const resultKey = matcher.key || options?.resultKey; + let data: unknown; + + if ("err" in matcher) { + data = { + ...options?.extraFields, + ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null), + ...(isPlainObject(raw) ? raw : null), + }; + } else if (resultKey) { + data = { + ...options?.extraFields, + ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null), + [resultKey]: raw, + }; + } else if (matcher.hdrs) { + data = { + ...options?.extraFields, + ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null), + ...(isPlainObject(raw) ? raw : null), + }; + } else { + data = raw; + } + + if ("err" in matcher) { + const result = safeParse( + data, + (v: unknown) => matcher.schema.parse(v), + "Response validation failed", + ); + return [result.ok ? { ok: false, error: result.value } : result, raw]; + } else { + return [ + safeParse( + data, + (v: unknown) => matcher.schema.parse(v), + "Response validation failed", + ), + raw, + ]; + } + }; +} + +const headerValRE = /, */; +/** + * Iterates over a Headers object and returns an object with all the header + * entries. Values are represented as an array to account for repeated headers. + */ +export function unpackHeaders(headers: Headers): Record { + const out: Record = {}; + + for (const [k, v] of headers.entries()) { + out[k] = v.split(headerValRE); + } + + return out; +} + +/** + * Discards the response body to free up resources. + * + * To learn why this is need, see the undici docs: + * https://undici.nodejs.org/#/?id=garbage-collection + */ +export async function discardResponseBody(res: Response) { + const reader = res.body?.getReader(); + if (reader == null) { + return; + } + + try { + let done = false; + while (!done) { + const res = await reader.read(); + done = res.done; + } + } finally { + reader.releaseLock(); + } +} diff --git a/src/lib/primitives.ts b/src/lib/primitives.ts new file mode 100644 index 00000000..48b28674 --- /dev/null +++ b/src/lib/primitives.ts @@ -0,0 +1,60 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +class InvariantError extends Error { + constructor(message: string) { + super(message); + this.name = "InvariantError"; + } +} + +export function invariant( + condition: unknown, + message: string, +): asserts condition { + if (!condition) { + throw new InvariantError(message); + } +} + +export type ExactPartial = { + [P in keyof T]?: T[P] | undefined; +}; + +export type Remap = { + [k in keyof Inp as Mapping[k] extends string /* if we have a string mapping for this key then use it */ + ? Mapping[k] + : Mapping[k] extends null /* if the mapping is to `null` then drop the key */ + ? never + : k /* otherwise keep the key as-is */]: Inp[k]; +}; + +/** + * Converts or omits an object's keys according to a mapping. + * + * @param inp An object whose keys will be remapped + * @param mappings A mapping of original keys to new keys. If a key is not present in the mapping, it will be left as is. If a key is mapped to `null`, it will be removed in the resulting object. + * @returns A new object with keys remapped or omitted according to the mappings + */ +export function remap< + Inp extends Record, + const Mapping extends { [k in keyof Inp]?: string | null }, +>(inp: Inp, mappings: Mapping): Remap { + let out: any = {}; + + if (!Object.keys(mappings).length) { + out = inp; + return out; + } + + for (const [k, v] of Object.entries(inp)) { + const j = mappings[k]; + if (j === null) { + continue; + } + out[j ?? k] = v; + } + + return out; +} diff --git a/src/lib/retries.ts b/src/lib/retries.ts new file mode 100644 index 00000000..93ebc8de --- /dev/null +++ b/src/lib/retries.ts @@ -0,0 +1,219 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { isConnectionError, isTimeoutError } from "./http.js"; + +export type BackoffStrategy = { + initialInterval: number; + maxInterval: number; + exponent: number; + maxElapsedTime: number; +}; + +const defaultBackoff: BackoffStrategy = { + initialInterval: 500, + maxInterval: 60000, + exponent: 1.5, + maxElapsedTime: 3600000, +}; + +export type RetryConfig = + | { strategy: "none" } + | { + strategy: "backoff"; + backoff?: BackoffStrategy; + retryConnectionErrors?: boolean; + }; + +/** + * PermanentError is an error that is not recoverable. Throwing this error will + * cause a retry loop to terminate. + */ +export class PermanentError extends Error { + /** The underlying cause of the error. */ + override readonly cause: unknown; + + constructor(message: string, options?: { cause?: unknown }) { + let msg = message; + if (options?.cause) { + msg += `: ${options.cause}`; + } + + super(msg, options); + this.name = "PermanentError"; + // In older runtimes, the cause field would not have been assigned through + // the super() call. + if (typeof this.cause === "undefined") { + this.cause = options?.cause; + } + + Object.setPrototypeOf(this, PermanentError.prototype); + } +} + +/** + * TemporaryError is an error is used to signal that an HTTP request can be + * retried as part of a retry loop. If retry attempts are exhausted and this + * error is thrown, the response will be returned to the caller. + */ +export class TemporaryError extends Error { + response: Response; + + constructor(message: string, response: Response) { + super(message); + this.response = response; + this.name = "TemporaryError"; + + Object.setPrototypeOf(this, TemporaryError.prototype); + } +} + +export async function retry( + fetchFn: () => Promise, + options: { + config: RetryConfig; + statusCodes: string[]; + }, +): Promise { + switch (options.config.strategy) { + case "backoff": + return retryBackoff( + wrapFetcher(fetchFn, { + statusCodes: options.statusCodes, + retryConnectionErrors: !!options.config.retryConnectionErrors, + }), + options.config.backoff ?? defaultBackoff, + ); + default: + return await fetchFn(); + } +} + +function wrapFetcher( + fn: () => Promise, + options: { + statusCodes: string[]; + retryConnectionErrors: boolean; + }, +): () => Promise { + return async () => { + try { + const res = await fn(); + if (isRetryableResponse(res, options.statusCodes)) { + throw new TemporaryError( + "Response failed with retryable status code", + res, + ); + } + + return res; + } catch (err: unknown) { + if (err instanceof TemporaryError) { + throw err; + } + + if ( + options.retryConnectionErrors && + (isTimeoutError(err) || isConnectionError(err)) + ) { + throw err; + } + + throw new PermanentError("Permanent error", { cause: err }); + } + }; +} + +const codeRangeRE = new RegExp("^[0-9]xx$", "i"); + +function isRetryableResponse(res: Response, statusCodes: string[]): boolean { + const actual = `${res.status}`; + + return statusCodes.some((code) => { + if (!codeRangeRE.test(code)) { + return code === actual; + } + + const expectFamily = code.charAt(0); + if (!expectFamily) { + throw new Error("Invalid status code range"); + } + + const actualFamily = actual.charAt(0); + if (!actualFamily) { + throw new Error(`Invalid response status code: ${actual}`); + } + + return actualFamily === expectFamily; + }); +} + +async function retryBackoff( + fn: () => Promise, + strategy: BackoffStrategy, +): Promise { + const { maxElapsedTime, initialInterval, exponent, maxInterval } = strategy; + + const start = Date.now(); + let x = 0; + + // eslint-disable-next-line no-constant-condition + while (true) { + try { + const res = await fn(); + return res; + } catch (err: unknown) { + if (err instanceof PermanentError) { + throw err.cause; + } + const elapsed = Date.now() - start; + if (elapsed > maxElapsedTime) { + if (err instanceof TemporaryError) { + return err.response; + } + + throw err; + } + + let retryInterval = 0; + if (err instanceof TemporaryError) { + retryInterval = retryIntervalFromResponse(err.response); + } + + if (retryInterval <= 0) { + retryInterval = + initialInterval * Math.pow(x, exponent) + Math.random() * 1000; + } + + const d = Math.min(retryInterval, maxInterval); + + await delay(d); + x++; + } + } +} + +function retryIntervalFromResponse(res: Response): number { + const retryVal = res.headers.get("retry-after") || ""; + if (!retryVal) { + return 0; + } + + const parsedNumber = Number(retryVal); + if (Number.isInteger(parsedNumber)) { + return parsedNumber * 1000; + } + + const parsedDate = Date.parse(retryVal); + if (Number.isInteger(parsedDate)) { + const deltaMS = parsedDate - Date.now(); + return deltaMS > 0 ? Math.ceil(deltaMS) : 0; + } + + return 0; +} + +async function delay(delay: number): Promise { + return new Promise((resolve) => setTimeout(resolve, delay)); +} diff --git a/src/lib/schemas.ts b/src/lib/schemas.ts new file mode 100644 index 00000000..f3856dcb --- /dev/null +++ b/src/lib/schemas.ts @@ -0,0 +1,86 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { + output, + ZodEffects, + ZodError, + ZodObject, + ZodRawShape, + ZodTypeAny, +} from "zod"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { ERR, OK, Result } from "../types/fp.js"; + +/** + * Utility function that executes some code which may throw a ZodError. It + * intercepts this error and converts it to an SDKValidationError so as to not + * leak Zod implementation details to user code. + */ +export function parse( + rawValue: Inp, + fn: (value: Inp) => Out, + errorMessage: string, +): Out { + try { + return fn(rawValue); + } catch (err) { + if (err instanceof ZodError) { + throw new SDKValidationError(errorMessage, err, rawValue); + } + throw err; + } +} + +/** + * Utility function that executes some code which may result in a ZodError. It + * intercepts this error and converts it to an SDKValidationError so as to not + * leak Zod implementation details to user code. + */ +export function safeParse( + rawValue: Inp, + fn: (value: Inp) => Out, + errorMessage: string, +): Result { + try { + return OK(fn(rawValue)); + } catch (err) { + return ERR(new SDKValidationError(errorMessage, err, rawValue)); + } +} + +export function collectExtraKeys< + Shape extends ZodRawShape, + Catchall extends ZodTypeAny, + K extends string, +>( + obj: ZodObject, + extrasKey: K, +): ZodEffects< + typeof obj, + & output> + & { + [k in K]: Record>; + } +> { + return obj.transform((val) => { + const extras: Record> = {}; + const { shape } = obj; + for (const [key] of Object.entries(val)) { + if (key in shape) { + continue; + } + + const v = val[key]; + if (typeof v === "undefined") { + continue; + } + + extras[key] = v; + delete val[key]; + } + + return { ...val, [extrasKey]: extras }; + }); +} diff --git a/src/lib/sdks.ts b/src/lib/sdks.ts new file mode 100644 index 00000000..2ce720a9 --- /dev/null +++ b/src/lib/sdks.ts @@ -0,0 +1,388 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { SDKHooks } from "../hooks/hooks.js"; +import { HookContext } from "../hooks/types.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { ERR, OK, Result } from "../types/fp.js"; +import { stringToBase64 } from "./base64.js"; +import { SDK_METADATA, SDKOptions, serverURLFromOptions } from "./config.js"; +import { encodeForm } from "./encodings.js"; +import { + HTTPClient, + isAbortError, + isConnectionError, + isTimeoutError, + matchContentType, + matchStatusCode, +} from "./http.js"; +import { Logger } from "./logger.js"; +import { retry, RetryConfig } from "./retries.js"; +import { SecurityState } from "./security.js"; + +export type RequestOptions = { + /** + * Sets a timeout, in milliseconds, on HTTP requests made by an SDK method. If + * `fetchOptions.signal` is set then it will take precedence over this option. + */ + timeoutMs?: number; + /** + * Set or override a retry policy on HTTP calls. + */ + retries?: RetryConfig; + /** + * Specifies the status codes which should be retried using the given retry policy. + */ + retryCodes?: string[]; + /** + * Sets various request options on the `fetch` call made by an SDK method. + * + * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options|Request} + */ + fetchOptions?: Omit; +}; + +type RequestConfig = { + method: string; + path: string; + baseURL?: string | URL; + query?: string; + body?: RequestInit["body"]; + headers?: HeadersInit; + security?: SecurityState | null; + uaHeader?: string; + timeoutMs?: number; +}; + +const gt: unknown = typeof globalThis === "undefined" ? null : globalThis; +const webWorkerLike = typeof gt === "object" + && gt != null + && "importScripts" in gt + && typeof gt["importScripts"] === "function"; +const isBrowserLike = webWorkerLike + || (typeof navigator !== "undefined" && "serviceWorker" in navigator) + || (typeof window === "object" && typeof window.document !== "undefined"); + +export class ClientSDK { + readonly #httpClient: HTTPClient; + readonly #hooks: SDKHooks; + readonly #logger?: Logger | undefined; + protected readonly _baseURL: URL | null; + public readonly _options: SDKOptions & { hooks?: SDKHooks }; + + constructor(options: SDKOptions = {}) { + const opt = options as unknown; + if ( + typeof opt === "object" + && opt != null + && "hooks" in opt + && opt.hooks instanceof SDKHooks + ) { + this.#hooks = opt.hooks; + } else { + this.#hooks = new SDKHooks(); + } + this._options = { ...options, hooks: this.#hooks }; + + const url = serverURLFromOptions(options); + if (url) { + url.pathname = url.pathname.replace(/\/+$/, "") + "/"; + } + const { baseURL, client } = this.#hooks.sdkInit({ + baseURL: url, + client: options.httpClient || new HTTPClient(), + }); + this._baseURL = baseURL; + this.#httpClient = client; + this.#logger = options.debugLogger; + } + + public _createRequest( + context: HookContext, + conf: RequestConfig, + options?: RequestOptions, + ): Result { + const { method, path, query, headers: opHeaders, security } = conf; + + const base = conf.baseURL ?? this._baseURL; + if (!base) { + return ERR(new InvalidRequestError("No base URL provided for operation")); + } + const reqURL = new URL(base); + const inputURL = new URL(path, reqURL); + + if (path) { + reqURL.pathname += inputURL.pathname.replace(/^\/+/, ""); + } + + let finalQuery = query || ""; + + const secQuery: string[] = []; + for (const [k, v] of Object.entries(security?.queryParams || {})) { + secQuery.push(encodeForm(k, v, { charEncoding: "percent" })); + } + if (secQuery.length) { + finalQuery += `&${secQuery.join("&")}`; + } + + if (finalQuery) { + const q = finalQuery.startsWith("&") ? finalQuery.slice(1) : finalQuery; + reqURL.search = `?${q}`; + } + + const headers = new Headers(opHeaders); + + const username = security?.basic.username; + const password = security?.basic.password; + if (username != null || password != null) { + const encoded = stringToBase64( + [username || "", password || ""].join(":"), + ); + headers.set("Authorization", `Basic ${encoded}`); + } + + const securityHeaders = new Headers(security?.headers || {}); + for (const [k, v] of securityHeaders) { + headers.set(k, v); + } + + let cookie = headers.get("cookie") || ""; + for (const [k, v] of Object.entries(security?.cookies || {})) { + cookie += `; ${k}=${v}`; + } + cookie = cookie.startsWith("; ") ? cookie.slice(2) : cookie; + headers.set("cookie", cookie); + + const userHeaders = new Headers(options?.fetchOptions?.headers); + for (const [k, v] of userHeaders) { + headers.set(k, v); + } + + // Only set user agent header in non-browser-like environments since CORS + // policy disallows setting it in browsers e.g. Chrome throws an error. + if (!isBrowserLike) { + headers.set(conf.uaHeader ?? "user-agent", SDK_METADATA.userAgent); + } + + let fetchOptions = options?.fetchOptions; + if (!fetchOptions?.signal && conf.timeoutMs && conf.timeoutMs > 0) { + const timeoutSignal = AbortSignal.timeout(conf.timeoutMs); + if (!fetchOptions) { + fetchOptions = { signal: timeoutSignal }; + } else { + fetchOptions.signal = timeoutSignal; + } + } + + if (conf.body instanceof ReadableStream) { + if (!fetchOptions) { + fetchOptions = { + // @ts-expect-error see https://github.com/node-fetch/node-fetch/issues/1769 + duplex: "half", + }; + } else { + // @ts-expect-error see https://github.com/node-fetch/node-fetch/issues/1769 + fetchOptions.duplex = "half"; + } + } + + let input; + try { + input = this.#hooks.beforeCreateRequest(context, { + url: reqURL, + options: { + ...fetchOptions, + body: conf.body ?? null, + headers, + method, + }, + }); + } catch (err: unknown) { + return ERR( + new UnexpectedClientError("Create request hook failed to execute", { + cause: err, + }), + ); + } + + return OK(new Request(input.url, input.options)); + } + + public async _do( + request: Request, + options: { + context: HookContext; + errorCodes: number | string | (number | string)[]; + retryConfig: RetryConfig; + retryCodes: string[]; + }, + ): Promise< + Result< + Response, + | RequestAbortedError + | RequestTimeoutError + | ConnectionError + | UnexpectedClientError + > + > { + const { context, errorCodes } = options; + + return retry( + async () => { + const req = await this.#hooks.beforeRequest(context, request.clone()); + await logRequest(this.#logger, req).catch((e) => + this.#logger?.log("Failed to log request:", e) + ); + + let response = await this.#httpClient.request(req); + + try { + if (matchStatusCode(response, errorCodes)) { + const result = await this.#hooks.afterError( + context, + response, + null, + ); + if (result.error) { + throw result.error; + } + response = result.response || response; + } else { + response = await this.#hooks.afterSuccess(context, response); + } + } finally { + await logResponse(this.#logger, response, req) + .catch(e => this.#logger?.log("Failed to log response:", e)); + } + + return response; + }, + { config: options.retryConfig, statusCodes: options.retryCodes }, + ).then( + (r) => OK(r), + (err) => { + switch (true) { + case isAbortError(err): + return ERR( + new RequestAbortedError("Request aborted by client", { + cause: err, + }), + ); + case isTimeoutError(err): + return ERR( + new RequestTimeoutError("Request timed out", { cause: err }), + ); + case isConnectionError(err): + return ERR( + new ConnectionError("Unable to make request", { cause: err }), + ); + default: + return ERR( + new UnexpectedClientError("Unexpected HTTP client error", { + cause: err, + }), + ); + } + }, + ); + } +} + +const jsonLikeContentTypeRE = /^application\/(?:.{0,100}\+)?json/; +async function logRequest(logger: Logger | undefined, req: Request) { + if (!logger) { + return; + } + + const contentType = req.headers.get("content-type"); + const ct = contentType?.split(";")[0] || ""; + + logger.group(`> Request: ${req.method} ${req.url}`); + + logger.group("Headers:"); + for (const [k, v] of req.headers.entries()) { + logger.log(`${k}: ${v}`); + } + logger.groupEnd(); + + logger.group("Body:"); + switch (true) { + case jsonLikeContentTypeRE.test(ct): + logger.log(await req.clone().json()); + break; + case ct.startsWith("text/"): + logger.log(await req.clone().text()); + break; + case ct === "multipart/form-data": { + const body = await req.clone().formData(); + for (const [k, v] of body) { + const vlabel = v instanceof Blob ? "" : v; + logger.log(`${k}: ${vlabel}`); + } + break; + } + default: + logger.log(`<${contentType}>`); + break; + } + logger.groupEnd(); + + logger.groupEnd(); +} + +async function logResponse( + logger: Logger | undefined, + res: Response, + req: Request, +) { + if (!logger) { + return; + } + + const contentType = res.headers.get("content-type"); + const ct = contentType?.split(";")[0] || ""; + + logger.group(`< Response: ${req.method} ${req.url}`); + logger.log("Status Code:", res.status, res.statusText); + + logger.group("Headers:"); + for (const [k, v] of res.headers.entries()) { + logger.log(`${k}: ${v}`); + } + logger.groupEnd(); + + logger.group("Body:"); + switch (true) { + case matchContentType(res, "application/json") + || jsonLikeContentTypeRE.test(ct): + logger.log(await res.clone().json()); + break; + case matchContentType(res, "text/event-stream"): + logger.log(`<${contentType}>`); + break; + case matchContentType(res, "text/*"): + logger.log(await res.clone().text()); + break; + case matchContentType(res, "multipart/form-data"): { + const body = await res.clone().formData(); + for (const [k, v] of body) { + const vlabel = v instanceof Blob ? "" : v; + logger.log(`${k}: ${vlabel}`); + } + break; + } + default: + logger.log(`<${contentType}>`); + break; + } + logger.groupEnd(); + + logger.groupEnd(); +} diff --git a/src/lib/security.ts b/src/lib/security.ts new file mode 100644 index 00000000..5a45e6d0 --- /dev/null +++ b/src/lib/security.ts @@ -0,0 +1,253 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as components from "../models/components/index.js"; + +type OAuth2PasswordFlow = { + username: string; + password?: string | undefined; + clientID: string; + clientSecret?: string | undefined; + tokenURL: string; +}; + +export enum SecurityErrorCode { + Incomplete = "incomplete", + UnrecognisedSecurityType = "unrecognized_security_type", +} + +export class SecurityError extends Error { + constructor( + public code: SecurityErrorCode, + message: string, + ) { + super(message); + this.name = "SecurityError"; + } + + static incomplete(): SecurityError { + return new SecurityError( + SecurityErrorCode.Incomplete, + "Security requirements not met in order to perform the operation", + ); + } + static unrecognizedType(type: string): SecurityError { + return new SecurityError( + SecurityErrorCode.UnrecognisedSecurityType, + `Unrecognised security type: ${type}`, + ); + } +} + +export type SecurityState = { + basic: { username?: string | undefined; password?: string | undefined }; + headers: Record; + queryParams: Record; + cookies: Record; + oauth2: ({ type: "password" } & OAuth2PasswordFlow) | { type: "none" }; +}; + +type SecurityInputBasic = { + type: "http:basic"; + value: + | { username?: string | undefined; password?: string | undefined } + | null + | undefined; +}; + +type SecurityInputBearer = { + type: "http:bearer"; + value: string | null | undefined; + fieldName: string; +}; + +type SecurityInputAPIKey = { + type: "apiKey:header" | "apiKey:query" | "apiKey:cookie"; + value: string | null | undefined; + fieldName: string; +}; + +type SecurityInputOIDC = { + type: "openIdConnect"; + value: string | null | undefined; + fieldName: string; +}; + +type SecurityInputOAuth2 = { + type: "oauth2"; + value: string | null | undefined; + fieldName: string; +}; + +type SecurityInputOAuth2ClientCredentials = { + type: "oauth2:client_credentials"; + value: + | { clientID?: string | undefined; clientSecret?: string | undefined } + | null + | undefined; +}; + +type SecurityInputOAuth2PasswordCredentials = { + type: "oauth2:password"; + value: + | string + | null + | undefined; + fieldName: string; +}; + +type SecurityInputCustom = { + type: "http:custom"; + value: any | null | undefined; + fieldName: string; +}; + +export type SecurityInput = + | SecurityInputBasic + | SecurityInputBearer + | SecurityInputAPIKey + | SecurityInputOAuth2 + | SecurityInputOAuth2ClientCredentials + | SecurityInputOAuth2PasswordCredentials + | SecurityInputOIDC + | SecurityInputCustom; + +export function resolveSecurity( + ...options: SecurityInput[][] +): SecurityState | null { + const state: SecurityState = { + basic: { username: "", password: "" }, + headers: {}, + queryParams: {}, + cookies: {}, + oauth2: { type: "none" }, + }; + + const option = options.find((opts) => { + return opts.every((o) => { + if (o.value == null) { + return false; + } else if (o.type === "http:basic") { + return o.value.username != null || o.value.password != null; + } else if (o.type === "http:custom") { + return null; + } else if (o.type === "oauth2:password") { + return ( + typeof o.value === "string" && !!o.value + ); + } else if (o.type === "oauth2:client_credentials") { + return o.value.clientID != null || o.value.clientSecret != null; + } else if (typeof o.value === "string") { + return !!o.value; + } else { + throw new Error( + `Unrecognized security type: ${o.type} (value type: ${typeof o + .value})`, + ); + } + }); + }); + if (option == null) { + return null; + } + + option.forEach((spec) => { + if (spec.value == null) { + return; + } + + const { type } = spec; + + switch (type) { + case "apiKey:header": + state.headers[spec.fieldName] = spec.value; + break; + case "apiKey:query": + state.queryParams[spec.fieldName] = spec.value; + break; + case "apiKey:cookie": + state.cookies[spec.fieldName] = spec.value; + break; + case "http:basic": + applyBasic(state, spec); + break; + case "http:custom": + break; + case "http:bearer": + applyBearer(state, spec); + break; + case "oauth2": + applyBearer(state, spec); + break; + case "oauth2:password": + applyBearer(state, spec); + break; + case "oauth2:client_credentials": + break; + case "openIdConnect": + applyBearer(state, spec); + break; + default: + spec satisfies never; + throw SecurityError.unrecognizedType(type); + } + }); + + return state; +} + +function applyBasic( + state: SecurityState, + spec: SecurityInputBasic, +) { + if (spec.value == null) { + return; + } + + state.basic = spec.value; +} + +function applyBearer( + state: SecurityState, + spec: + | SecurityInputBearer + | SecurityInputOAuth2 + | SecurityInputOIDC + | SecurityInputOAuth2PasswordCredentials, +) { + if (typeof spec.value !== "string" || !spec.value) { + return; + } + + let value = spec.value; + if (value.slice(0, 7).toLowerCase() !== "bearer ") { + value = `Bearer ${value}`; + } + + state.headers[spec.fieldName] = value; +} + +export function resolveGlobalSecurity( + security: Partial | null | undefined, +): SecurityState | null { + return resolveSecurity( + [ + { + fieldName: "Authorization", + type: "apiKey:header", + value: security?.apiKey, + }, + ], + ); +} + +export async function extractSecurity< + T extends string | Record, +>(sec: T | (() => Promise) | undefined): Promise { + if (sec == null) { + return; + } + + return typeof sec === "function" ? sec() : sec; +} diff --git a/src/lib/url.ts b/src/lib/url.ts new file mode 100644 index 00000000..6bc6356e --- /dev/null +++ b/src/lib/url.ts @@ -0,0 +1,33 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +const hasOwn = Object.prototype.hasOwnProperty; + +export type Params = Partial>; + +export function pathToFunc( + pathPattern: string, + options?: { charEncoding?: "percent" | "none" }, +): (params?: Params) => string { + const paramRE = /\{([a-zA-Z0-9_]+?)\}/g; + + return function buildURLPath(params: Record = {}): string { + return pathPattern.replace(paramRE, function (_, placeholder) { + if (!hasOwn.call(params, placeholder)) { + throw new Error(`Parameter '${placeholder}' is required`); + } + + const value = params[placeholder]; + if (typeof value !== "string" && typeof value !== "number") { + throw new Error( + `Parameter '${placeholder}' must be a string or number`, + ); + } + + return options?.charEncoding === "percent" + ? encodeURIComponent(`${value}`) + : `${value}`; + }); + }; +} diff --git a/src/models/components/activitiesresponsedto.ts b/src/models/components/activitiesresponsedto.ts new file mode 100644 index 00000000..43be2909 --- /dev/null +++ b/src/models/components/activitiesresponsedto.ts @@ -0,0 +1,78 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type ActivitiesResponseDto = { + hasMore: boolean; + data: Array; + pageSize: number; + page: number; +}; + +/** @internal */ +export const ActivitiesResponseDto$inboundSchema: z.ZodType< + ActivitiesResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + hasMore: z.boolean(), + data: z.array(z.string()), + pageSize: z.number(), + page: z.number(), +}); + +/** @internal */ +export type ActivitiesResponseDto$Outbound = { + hasMore: boolean; + data: Array; + pageSize: number; + page: number; +}; + +/** @internal */ +export const ActivitiesResponseDto$outboundSchema: z.ZodType< + ActivitiesResponseDto$Outbound, + z.ZodTypeDef, + ActivitiesResponseDto +> = z.object({ + hasMore: z.boolean(), + data: z.array(z.string()), + pageSize: z.number(), + page: z.number(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ActivitiesResponseDto$ { + /** @deprecated use `ActivitiesResponseDto$inboundSchema` instead. */ + export const inboundSchema = ActivitiesResponseDto$inboundSchema; + /** @deprecated use `ActivitiesResponseDto$outboundSchema` instead. */ + export const outboundSchema = ActivitiesResponseDto$outboundSchema; + /** @deprecated use `ActivitiesResponseDto$Outbound` instead. */ + export type Outbound = ActivitiesResponseDto$Outbound; +} + +export function activitiesResponseDtoToJSON( + activitiesResponseDto: ActivitiesResponseDto, +): string { + return JSON.stringify( + ActivitiesResponseDto$outboundSchema.parse(activitiesResponseDto), + ); +} + +export function activitiesResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivitiesResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivitiesResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitygraphstatesresponse.ts b/src/models/components/activitygraphstatesresponse.ts new file mode 100644 index 00000000..f2e00967 --- /dev/null +++ b/src/models/components/activitygraphstatesresponse.ts @@ -0,0 +1,118 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const Channels = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +export type Channels = ClosedEnum; + +export type ActivityGraphStatesResponse = { + id: string; + count: number; + templates: Array; + channels: Array; +}; + +/** @internal */ +export const Channels$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Channels); + +/** @internal */ +export const Channels$outboundSchema: z.ZodNativeEnum = + Channels$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Channels$ { + /** @deprecated use `Channels$inboundSchema` instead. */ + export const inboundSchema = Channels$inboundSchema; + /** @deprecated use `Channels$outboundSchema` instead. */ + export const outboundSchema = Channels$outboundSchema; +} + +/** @internal */ +export const ActivityGraphStatesResponse$inboundSchema: z.ZodType< + ActivityGraphStatesResponse, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string(), + count: z.number(), + templates: z.array(z.string()), + channels: z.array(Channels$inboundSchema), +}).transform((v) => { + return remap$(v, { + "_id": "id", + }); +}); + +/** @internal */ +export type ActivityGraphStatesResponse$Outbound = { + _id: string; + count: number; + templates: Array; + channels: Array; +}; + +/** @internal */ +export const ActivityGraphStatesResponse$outboundSchema: z.ZodType< + ActivityGraphStatesResponse$Outbound, + z.ZodTypeDef, + ActivityGraphStatesResponse +> = z.object({ + id: z.string(), + count: z.number(), + templates: z.array(z.string()), + channels: z.array(Channels$outboundSchema), +}).transform((v) => { + return remap$(v, { + id: "_id", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ActivityGraphStatesResponse$ { + /** @deprecated use `ActivityGraphStatesResponse$inboundSchema` instead. */ + export const inboundSchema = ActivityGraphStatesResponse$inboundSchema; + /** @deprecated use `ActivityGraphStatesResponse$outboundSchema` instead. */ + export const outboundSchema = ActivityGraphStatesResponse$outboundSchema; + /** @deprecated use `ActivityGraphStatesResponse$Outbound` instead. */ + export type Outbound = ActivityGraphStatesResponse$Outbound; +} + +export function activityGraphStatesResponseToJSON( + activityGraphStatesResponse: ActivityGraphStatesResponse, +): string { + return JSON.stringify( + ActivityGraphStatesResponse$outboundSchema.parse( + activityGraphStatesResponse, + ), + ); +} + +export function activityGraphStatesResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivityGraphStatesResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivityGraphStatesResponse' from JSON`, + ); +} diff --git a/src/models/components/activitynotificationresponsedto.ts b/src/models/components/activitynotificationresponsedto.ts new file mode 100644 index 00000000..522b0579 --- /dev/null +++ b/src/models/components/activitynotificationresponsedto.ts @@ -0,0 +1,166 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + ActivityNotificationSubscriberResponseDto, + ActivityNotificationSubscriberResponseDto$inboundSchema, + ActivityNotificationSubscriberResponseDto$Outbound, + ActivityNotificationSubscriberResponseDto$outboundSchema, +} from "./activitynotificationsubscriberresponsedto.js"; +import { + ActivityNotificationTemplateResponseDto, + ActivityNotificationTemplateResponseDto$inboundSchema, + ActivityNotificationTemplateResponseDto$Outbound, + ActivityNotificationTemplateResponseDto$outboundSchema, +} from "./activitynotificationtemplateresponsedto.js"; + +export const ActivityNotificationResponseDtoChannels = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", + Digest: "digest", + Trigger: "trigger", + Delay: "delay", + Custom: "custom", +} as const; +export type ActivityNotificationResponseDtoChannels = ClosedEnum< + typeof ActivityNotificationResponseDtoChannels +>; + +export type ActivityNotificationResponseDto = { + id?: string | undefined; + environmentId: string; + organizationId: string; + transactionId: string; + createdAt?: string | undefined; + channels?: ActivityNotificationResponseDtoChannels | undefined; + subscriber?: ActivityNotificationSubscriberResponseDto | undefined; + template?: ActivityNotificationTemplateResponseDto | undefined; + jobs?: Array | undefined; +}; + +/** @internal */ +export const ActivityNotificationResponseDtoChannels$inboundSchema: + z.ZodNativeEnum = z + .nativeEnum(ActivityNotificationResponseDtoChannels); + +/** @internal */ +export const ActivityNotificationResponseDtoChannels$outboundSchema: + z.ZodNativeEnum = + ActivityNotificationResponseDtoChannels$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ActivityNotificationResponseDtoChannels$ { + /** @deprecated use `ActivityNotificationResponseDtoChannels$inboundSchema` instead. */ + export const inboundSchema = + ActivityNotificationResponseDtoChannels$inboundSchema; + /** @deprecated use `ActivityNotificationResponseDtoChannels$outboundSchema` instead. */ + export const outboundSchema = + ActivityNotificationResponseDtoChannels$outboundSchema; +} + +/** @internal */ +export const ActivityNotificationResponseDto$inboundSchema: z.ZodType< + ActivityNotificationResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + _environmentId: z.string(), + _organizationId: z.string(), + transactionId: z.string(), + createdAt: z.string().optional(), + channels: ActivityNotificationResponseDtoChannels$inboundSchema.optional(), + subscriber: ActivityNotificationSubscriberResponseDto$inboundSchema + .optional(), + template: ActivityNotificationTemplateResponseDto$inboundSchema.optional(), + jobs: z.array(z.string()).optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_environmentId": "environmentId", + "_organizationId": "organizationId", + }); +}); + +/** @internal */ +export type ActivityNotificationResponseDto$Outbound = { + _id?: string | undefined; + _environmentId: string; + _organizationId: string; + transactionId: string; + createdAt?: string | undefined; + channels?: string | undefined; + subscriber?: ActivityNotificationSubscriberResponseDto$Outbound | undefined; + template?: ActivityNotificationTemplateResponseDto$Outbound | undefined; + jobs?: Array | undefined; +}; + +/** @internal */ +export const ActivityNotificationResponseDto$outboundSchema: z.ZodType< + ActivityNotificationResponseDto$Outbound, + z.ZodTypeDef, + ActivityNotificationResponseDto +> = z.object({ + id: z.string().optional(), + environmentId: z.string(), + organizationId: z.string(), + transactionId: z.string(), + createdAt: z.string().optional(), + channels: ActivityNotificationResponseDtoChannels$outboundSchema.optional(), + subscriber: ActivityNotificationSubscriberResponseDto$outboundSchema + .optional(), + template: ActivityNotificationTemplateResponseDto$outboundSchema.optional(), + jobs: z.array(z.string()).optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + environmentId: "_environmentId", + organizationId: "_organizationId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ActivityNotificationResponseDto$ { + /** @deprecated use `ActivityNotificationResponseDto$inboundSchema` instead. */ + export const inboundSchema = ActivityNotificationResponseDto$inboundSchema; + /** @deprecated use `ActivityNotificationResponseDto$outboundSchema` instead. */ + export const outboundSchema = ActivityNotificationResponseDto$outboundSchema; + /** @deprecated use `ActivityNotificationResponseDto$Outbound` instead. */ + export type Outbound = ActivityNotificationResponseDto$Outbound; +} + +export function activityNotificationResponseDtoToJSON( + activityNotificationResponseDto: ActivityNotificationResponseDto, +): string { + return JSON.stringify( + ActivityNotificationResponseDto$outboundSchema.parse( + activityNotificationResponseDto, + ), + ); +} + +export function activityNotificationResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivityNotificationResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivityNotificationResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitynotificationsubscriberresponsedto.ts b/src/models/components/activitynotificationsubscriberresponsedto.ts new file mode 100644 index 00000000..33a6ca03 --- /dev/null +++ b/src/models/components/activitynotificationsubscriberresponsedto.ts @@ -0,0 +1,103 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type ActivityNotificationSubscriberResponseDto = { + firstName?: string | undefined; + id: string; + lastName?: string | undefined; + email?: string | undefined; + phone?: string | undefined; +}; + +/** @internal */ +export const ActivityNotificationSubscriberResponseDto$inboundSchema: z.ZodType< + ActivityNotificationSubscriberResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + firstName: z.string().optional(), + _id: z.string(), + lastName: z.string().optional(), + email: z.string().optional(), + phone: z.string().optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + }); +}); + +/** @internal */ +export type ActivityNotificationSubscriberResponseDto$Outbound = { + firstName?: string | undefined; + _id: string; + lastName?: string | undefined; + email?: string | undefined; + phone?: string | undefined; +}; + +/** @internal */ +export const ActivityNotificationSubscriberResponseDto$outboundSchema: + z.ZodType< + ActivityNotificationSubscriberResponseDto$Outbound, + z.ZodTypeDef, + ActivityNotificationSubscriberResponseDto + > = z.object({ + firstName: z.string().optional(), + id: z.string(), + lastName: z.string().optional(), + email: z.string().optional(), + phone: z.string().optional(), + }).transform((v) => { + return remap$(v, { + id: "_id", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ActivityNotificationSubscriberResponseDto$ { + /** @deprecated use `ActivityNotificationSubscriberResponseDto$inboundSchema` instead. */ + export const inboundSchema = + ActivityNotificationSubscriberResponseDto$inboundSchema; + /** @deprecated use `ActivityNotificationSubscriberResponseDto$outboundSchema` instead. */ + export const outboundSchema = + ActivityNotificationSubscriberResponseDto$outboundSchema; + /** @deprecated use `ActivityNotificationSubscriberResponseDto$Outbound` instead. */ + export type Outbound = ActivityNotificationSubscriberResponseDto$Outbound; +} + +export function activityNotificationSubscriberResponseDtoToJSON( + activityNotificationSubscriberResponseDto: + ActivityNotificationSubscriberResponseDto, +): string { + return JSON.stringify( + ActivityNotificationSubscriberResponseDto$outboundSchema.parse( + activityNotificationSubscriberResponseDto, + ), + ); +} + +export function activityNotificationSubscriberResponseDtoFromJSON( + jsonString: string, +): SafeParseResult< + ActivityNotificationSubscriberResponseDto, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ActivityNotificationSubscriberResponseDto$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ActivityNotificationSubscriberResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitynotificationtemplateresponsedto.ts b/src/models/components/activitynotificationtemplateresponsedto.ts new file mode 100644 index 00000000..83bea08b --- /dev/null +++ b/src/models/components/activitynotificationtemplateresponsedto.ts @@ -0,0 +1,94 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type ActivityNotificationTemplateResponseDto = { + id?: string | undefined; + name: string; + triggers: Array; +}; + +/** @internal */ +export const ActivityNotificationTemplateResponseDto$inboundSchema: z.ZodType< + ActivityNotificationTemplateResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + name: z.string(), + triggers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + "_id": "id", + }); +}); + +/** @internal */ +export type ActivityNotificationTemplateResponseDto$Outbound = { + _id?: string | undefined; + name: string; + triggers: Array; +}; + +/** @internal */ +export const ActivityNotificationTemplateResponseDto$outboundSchema: z.ZodType< + ActivityNotificationTemplateResponseDto$Outbound, + z.ZodTypeDef, + ActivityNotificationTemplateResponseDto +> = z.object({ + id: z.string().optional(), + name: z.string(), + triggers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + id: "_id", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ActivityNotificationTemplateResponseDto$ { + /** @deprecated use `ActivityNotificationTemplateResponseDto$inboundSchema` instead. */ + export const inboundSchema = + ActivityNotificationTemplateResponseDto$inboundSchema; + /** @deprecated use `ActivityNotificationTemplateResponseDto$outboundSchema` instead. */ + export const outboundSchema = + ActivityNotificationTemplateResponseDto$outboundSchema; + /** @deprecated use `ActivityNotificationTemplateResponseDto$Outbound` instead. */ + export type Outbound = ActivityNotificationTemplateResponseDto$Outbound; +} + +export function activityNotificationTemplateResponseDtoToJSON( + activityNotificationTemplateResponseDto: + ActivityNotificationTemplateResponseDto, +): string { + return JSON.stringify( + ActivityNotificationTemplateResponseDto$outboundSchema.parse( + activityNotificationTemplateResponseDto, + ), + ); +} + +export function activityNotificationTemplateResponseDtoFromJSON( + jsonString: string, +): SafeParseResult< + ActivityNotificationTemplateResponseDto, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ActivityNotificationTemplateResponseDto$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ActivityNotificationTemplateResponseDto' from JSON`, + ); +} diff --git a/src/models/components/activitystatsresponsedto.ts b/src/models/components/activitystatsresponsedto.ts new file mode 100644 index 00000000..f0ce0e9c --- /dev/null +++ b/src/models/components/activitystatsresponsedto.ts @@ -0,0 +1,70 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type ActivityStatsResponseDto = { + weeklySent: number; + monthlySent: number; +}; + +/** @internal */ +export const ActivityStatsResponseDto$inboundSchema: z.ZodType< + ActivityStatsResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + weeklySent: z.number(), + monthlySent: z.number(), +}); + +/** @internal */ +export type ActivityStatsResponseDto$Outbound = { + weeklySent: number; + monthlySent: number; +}; + +/** @internal */ +export const ActivityStatsResponseDto$outboundSchema: z.ZodType< + ActivityStatsResponseDto$Outbound, + z.ZodTypeDef, + ActivityStatsResponseDto +> = z.object({ + weeklySent: z.number(), + monthlySent: z.number(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ActivityStatsResponseDto$ { + /** @deprecated use `ActivityStatsResponseDto$inboundSchema` instead. */ + export const inboundSchema = ActivityStatsResponseDto$inboundSchema; + /** @deprecated use `ActivityStatsResponseDto$outboundSchema` instead. */ + export const outboundSchema = ActivityStatsResponseDto$outboundSchema; + /** @deprecated use `ActivityStatsResponseDto$Outbound` instead. */ + export type Outbound = ActivityStatsResponseDto$Outbound; +} + +export function activityStatsResponseDtoToJSON( + activityStatsResponseDto: ActivityStatsResponseDto, +): string { + return JSON.stringify( + ActivityStatsResponseDto$outboundSchema.parse(activityStatsResponseDto), + ); +} + +export function activityStatsResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ActivityStatsResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ActivityStatsResponseDto' from JSON`, + ); +} diff --git a/src/models/components/addsubscribersrequestdto.ts b/src/models/components/addsubscribersrequestdto.ts new file mode 100644 index 00000000..c03c0c39 --- /dev/null +++ b/src/models/components/addsubscribersrequestdto.ts @@ -0,0 +1,69 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type AddSubscribersRequestDto = { + /** + * List of subscriber identifiers that will be associated to the topic + */ + subscribers: Array; +}; + +/** @internal */ +export const AddSubscribersRequestDto$inboundSchema: z.ZodType< + AddSubscribersRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + subscribers: z.array(z.string()), +}); + +/** @internal */ +export type AddSubscribersRequestDto$Outbound = { + subscribers: Array; +}; + +/** @internal */ +export const AddSubscribersRequestDto$outboundSchema: z.ZodType< + AddSubscribersRequestDto$Outbound, + z.ZodTypeDef, + AddSubscribersRequestDto +> = z.object({ + subscribers: z.array(z.string()), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace AddSubscribersRequestDto$ { + /** @deprecated use `AddSubscribersRequestDto$inboundSchema` instead. */ + export const inboundSchema = AddSubscribersRequestDto$inboundSchema; + /** @deprecated use `AddSubscribersRequestDto$outboundSchema` instead. */ + export const outboundSchema = AddSubscribersRequestDto$outboundSchema; + /** @deprecated use `AddSubscribersRequestDto$Outbound` instead. */ + export type Outbound = AddSubscribersRequestDto$Outbound; +} + +export function addSubscribersRequestDtoToJSON( + addSubscribersRequestDto: AddSubscribersRequestDto, +): string { + return JSON.stringify( + AddSubscribersRequestDto$outboundSchema.parse(addSubscribersRequestDto), + ); +} + +export function addSubscribersRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AddSubscribersRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AddSubscribersRequestDto' from JSON`, + ); +} diff --git a/src/models/components/apikey.ts b/src/models/components/apikey.ts new file mode 100644 index 00000000..2432c7a1 --- /dev/null +++ b/src/models/components/apikey.ts @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type ApiKey = { + key: string; + userId: string; +}; + +/** @internal */ +export const ApiKey$inboundSchema: z.ZodType = z + .object({ + key: z.string(), + _userId: z.string(), + }).transform((v) => { + return remap$(v, { + "_userId": "userId", + }); + }); + +/** @internal */ +export type ApiKey$Outbound = { + key: string; + _userId: string; +}; + +/** @internal */ +export const ApiKey$outboundSchema: z.ZodType< + ApiKey$Outbound, + z.ZodTypeDef, + ApiKey +> = z.object({ + key: z.string(), + userId: z.string(), +}).transform((v) => { + return remap$(v, { + userId: "_userId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ApiKey$ { + /** @deprecated use `ApiKey$inboundSchema` instead. */ + export const inboundSchema = ApiKey$inboundSchema; + /** @deprecated use `ApiKey$outboundSchema` instead. */ + export const outboundSchema = ApiKey$outboundSchema; + /** @deprecated use `ApiKey$Outbound` instead. */ + export type Outbound = ApiKey$Outbound; +} + +export function apiKeyToJSON(apiKey: ApiKey): string { + return JSON.stringify(ApiKey$outboundSchema.parse(apiKey)); +} + +export function apiKeyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ApiKey$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ApiKey' from JSON`, + ); +} diff --git a/src/models/components/bulksubscribercreatedto.ts b/src/models/components/bulksubscribercreatedto.ts new file mode 100644 index 00000000..16b49fb2 --- /dev/null +++ b/src/models/components/bulksubscribercreatedto.ts @@ -0,0 +1,66 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type BulkSubscriberCreateDto = { + subscribers: Array; +}; + +/** @internal */ +export const BulkSubscriberCreateDto$inboundSchema: z.ZodType< + BulkSubscriberCreateDto, + z.ZodTypeDef, + unknown +> = z.object({ + subscribers: z.array(z.string()), +}); + +/** @internal */ +export type BulkSubscriberCreateDto$Outbound = { + subscribers: Array; +}; + +/** @internal */ +export const BulkSubscriberCreateDto$outboundSchema: z.ZodType< + BulkSubscriberCreateDto$Outbound, + z.ZodTypeDef, + BulkSubscriberCreateDto +> = z.object({ + subscribers: z.array(z.string()), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace BulkSubscriberCreateDto$ { + /** @deprecated use `BulkSubscriberCreateDto$inboundSchema` instead. */ + export const inboundSchema = BulkSubscriberCreateDto$inboundSchema; + /** @deprecated use `BulkSubscriberCreateDto$outboundSchema` instead. */ + export const outboundSchema = BulkSubscriberCreateDto$outboundSchema; + /** @deprecated use `BulkSubscriberCreateDto$Outbound` instead. */ + export type Outbound = BulkSubscriberCreateDto$Outbound; +} + +export function bulkSubscriberCreateDtoToJSON( + bulkSubscriberCreateDto: BulkSubscriberCreateDto, +): string { + return JSON.stringify( + BulkSubscriberCreateDto$outboundSchema.parse(bulkSubscriberCreateDto), + ); +} + +export function bulkSubscriberCreateDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => BulkSubscriberCreateDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'BulkSubscriberCreateDto' from JSON`, + ); +} diff --git a/src/models/components/bulktriggereventdto.ts b/src/models/components/bulktriggereventdto.ts new file mode 100644 index 00000000..a668f98c --- /dev/null +++ b/src/models/components/bulktriggereventdto.ts @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + TriggerEventRequestDto, + TriggerEventRequestDto$inboundSchema, + TriggerEventRequestDto$Outbound, + TriggerEventRequestDto$outboundSchema, +} from "./triggereventrequestdto.js"; + +export type BulkTriggerEventDto = { + events: Array; +}; + +/** @internal */ +export const BulkTriggerEventDto$inboundSchema: z.ZodType< + BulkTriggerEventDto, + z.ZodTypeDef, + unknown +> = z.object({ + events: z.array(TriggerEventRequestDto$inboundSchema), +}); + +/** @internal */ +export type BulkTriggerEventDto$Outbound = { + events: Array; +}; + +/** @internal */ +export const BulkTriggerEventDto$outboundSchema: z.ZodType< + BulkTriggerEventDto$Outbound, + z.ZodTypeDef, + BulkTriggerEventDto +> = z.object({ + events: z.array(TriggerEventRequestDto$outboundSchema), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace BulkTriggerEventDto$ { + /** @deprecated use `BulkTriggerEventDto$inboundSchema` instead. */ + export const inboundSchema = BulkTriggerEventDto$inboundSchema; + /** @deprecated use `BulkTriggerEventDto$outboundSchema` instead. */ + export const outboundSchema = BulkTriggerEventDto$outboundSchema; + /** @deprecated use `BulkTriggerEventDto$Outbound` instead. */ + export type Outbound = BulkTriggerEventDto$Outbound; +} + +export function bulkTriggerEventDtoToJSON( + bulkTriggerEventDto: BulkTriggerEventDto, +): string { + return JSON.stringify( + BulkTriggerEventDto$outboundSchema.parse(bulkTriggerEventDto), + ); +} + +export function bulkTriggerEventDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => BulkTriggerEventDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'BulkTriggerEventDto' from JSON`, + ); +} diff --git a/src/models/components/channelcredentials.ts b/src/models/components/channelcredentials.ts new file mode 100644 index 00000000..1428a907 --- /dev/null +++ b/src/models/components/channelcredentials.ts @@ -0,0 +1,118 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type ChannelCredentials = { + /** + * Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + */ + webhookUrl: string; + /** + * Channel specification for Mattermost chat notifications + */ + channel?: string | undefined; + /** + * Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + */ + deviceTokens?: Array | undefined; + /** + * alert_uid for grafana on-call webhook payload + */ + alertUid?: string | undefined; + /** + * title to be used with grafana on call webhook + */ + title?: string | undefined; + /** + * image_url property fo grafana on call webhook + */ + imageUrl?: string | undefined; + /** + * state property fo grafana on call webhook + */ + state?: string | undefined; + /** + * link_to_upstream_details property fo grafana on call webhook + */ + externalUrl?: string | undefined; +}; + +/** @internal */ +export const ChannelCredentials$inboundSchema: z.ZodType< + ChannelCredentials, + z.ZodTypeDef, + unknown +> = z.object({ + webhookUrl: z.string(), + channel: z.string().optional(), + deviceTokens: z.array(z.string()).optional(), + alertUid: z.string().optional(), + title: z.string().optional(), + imageUrl: z.string().optional(), + state: z.string().optional(), + externalUrl: z.string().optional(), +}); + +/** @internal */ +export type ChannelCredentials$Outbound = { + webhookUrl: string; + channel?: string | undefined; + deviceTokens?: Array | undefined; + alertUid?: string | undefined; + title?: string | undefined; + imageUrl?: string | undefined; + state?: string | undefined; + externalUrl?: string | undefined; +}; + +/** @internal */ +export const ChannelCredentials$outboundSchema: z.ZodType< + ChannelCredentials$Outbound, + z.ZodTypeDef, + ChannelCredentials +> = z.object({ + webhookUrl: z.string(), + channel: z.string().optional(), + deviceTokens: z.array(z.string()).optional(), + alertUid: z.string().optional(), + title: z.string().optional(), + imageUrl: z.string().optional(), + state: z.string().optional(), + externalUrl: z.string().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ChannelCredentials$ { + /** @deprecated use `ChannelCredentials$inboundSchema` instead. */ + export const inboundSchema = ChannelCredentials$inboundSchema; + /** @deprecated use `ChannelCredentials$outboundSchema` instead. */ + export const outboundSchema = ChannelCredentials$outboundSchema; + /** @deprecated use `ChannelCredentials$Outbound` instead. */ + export type Outbound = ChannelCredentials$Outbound; +} + +export function channelCredentialsToJSON( + channelCredentials: ChannelCredentials, +): string { + return JSON.stringify( + ChannelCredentials$outboundSchema.parse(channelCredentials), + ); +} + +export function channelCredentialsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ChannelCredentials$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChannelCredentials' from JSON`, + ); +} diff --git a/src/models/components/channelpreference.ts b/src/models/components/channelpreference.ts new file mode 100644 index 00000000..d637a376 --- /dev/null +++ b/src/models/components/channelpreference.ts @@ -0,0 +1,113 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * The type of channel that is enabled or not + */ +export const ChannelPreferenceType = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +/** + * The type of channel that is enabled or not + */ +export type ChannelPreferenceType = ClosedEnum; + +export type ChannelPreference = { + /** + * The type of channel that is enabled or not + */ + type: ChannelPreferenceType; + /** + * If channel is enabled or not + */ + enabled: boolean; +}; + +/** @internal */ +export const ChannelPreferenceType$inboundSchema: z.ZodNativeEnum< + typeof ChannelPreferenceType +> = z.nativeEnum(ChannelPreferenceType); + +/** @internal */ +export const ChannelPreferenceType$outboundSchema: z.ZodNativeEnum< + typeof ChannelPreferenceType +> = ChannelPreferenceType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ChannelPreferenceType$ { + /** @deprecated use `ChannelPreferenceType$inboundSchema` instead. */ + export const inboundSchema = ChannelPreferenceType$inboundSchema; + /** @deprecated use `ChannelPreferenceType$outboundSchema` instead. */ + export const outboundSchema = ChannelPreferenceType$outboundSchema; +} + +/** @internal */ +export const ChannelPreference$inboundSchema: z.ZodType< + ChannelPreference, + z.ZodTypeDef, + unknown +> = z.object({ + type: ChannelPreferenceType$inboundSchema, + enabled: z.boolean(), +}); + +/** @internal */ +export type ChannelPreference$Outbound = { + type: string; + enabled: boolean; +}; + +/** @internal */ +export const ChannelPreference$outboundSchema: z.ZodType< + ChannelPreference$Outbound, + z.ZodTypeDef, + ChannelPreference +> = z.object({ + type: ChannelPreferenceType$outboundSchema, + enabled: z.boolean(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ChannelPreference$ { + /** @deprecated use `ChannelPreference$inboundSchema` instead. */ + export const inboundSchema = ChannelPreference$inboundSchema; + /** @deprecated use `ChannelPreference$outboundSchema` instead. */ + export const outboundSchema = ChannelPreference$outboundSchema; + /** @deprecated use `ChannelPreference$Outbound` instead. */ + export type Outbound = ChannelPreference$Outbound; +} + +export function channelPreferenceToJSON( + channelPreference: ChannelPreference, +): string { + return JSON.stringify( + ChannelPreference$outboundSchema.parse(channelPreference), + ); +} + +export function channelPreferenceFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ChannelPreference$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChannelPreference' from JSON`, + ); +} diff --git a/src/models/components/channelsettings.ts b/src/models/components/channelsettings.ts new file mode 100644 index 00000000..5be94479 --- /dev/null +++ b/src/models/components/channelsettings.ts @@ -0,0 +1,150 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + ChannelCredentials, + ChannelCredentials$inboundSchema, + ChannelCredentials$Outbound, + ChannelCredentials$outboundSchema, +} from "./channelcredentials.js"; + +/** + * The provider identifier for the credentials + */ +export const ProviderId = { + Slack: "slack", + Discord: "discord", + Msteams: "msteams", + Mattermost: "mattermost", + Ryver: "ryver", + Zulip: "zulip", + GrafanaOnCall: "grafana-on-call", + Getstream: "getstream", + RocketChat: "rocket-chat", + WhatsappBusiness: "whatsapp-business", + Fcm: "fcm", + Apns: "apns", + Expo: "expo", + OneSignal: "one-signal", + Pushpad: "pushpad", + PushWebhook: "push-webhook", + PusherBeams: "pusher-beams", +} as const; +/** + * The provider identifier for the credentials + */ +export type ProviderId = ClosedEnum; + +export type ChannelSettings = { + /** + * The provider identifier for the credentials + */ + providerId: ProviderId; + /** + * The integration identifier + */ + integrationIdentifier?: string | undefined; + /** + * Credentials payload for the specified provider + */ + credentials: ChannelCredentials; + /** + * Id of the integration that is used for this channel + */ + integrationId: string; +}; + +/** @internal */ +export const ProviderId$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(ProviderId); + +/** @internal */ +export const ProviderId$outboundSchema: z.ZodNativeEnum = + ProviderId$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ProviderId$ { + /** @deprecated use `ProviderId$inboundSchema` instead. */ + export const inboundSchema = ProviderId$inboundSchema; + /** @deprecated use `ProviderId$outboundSchema` instead. */ + export const outboundSchema = ProviderId$outboundSchema; +} + +/** @internal */ +export const ChannelSettings$inboundSchema: z.ZodType< + ChannelSettings, + z.ZodTypeDef, + unknown +> = z.object({ + providerId: ProviderId$inboundSchema, + integrationIdentifier: z.string().optional(), + credentials: ChannelCredentials$inboundSchema, + _integrationId: z.string(), +}).transform((v) => { + return remap$(v, { + "_integrationId": "integrationId", + }); +}); + +/** @internal */ +export type ChannelSettings$Outbound = { + providerId: string; + integrationIdentifier?: string | undefined; + credentials: ChannelCredentials$Outbound; + _integrationId: string; +}; + +/** @internal */ +export const ChannelSettings$outboundSchema: z.ZodType< + ChannelSettings$Outbound, + z.ZodTypeDef, + ChannelSettings +> = z.object({ + providerId: ProviderId$outboundSchema, + integrationIdentifier: z.string().optional(), + credentials: ChannelCredentials$outboundSchema, + integrationId: z.string(), +}).transform((v) => { + return remap$(v, { + integrationId: "_integrationId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ChannelSettings$ { + /** @deprecated use `ChannelSettings$inboundSchema` instead. */ + export const inboundSchema = ChannelSettings$inboundSchema; + /** @deprecated use `ChannelSettings$outboundSchema` instead. */ + export const outboundSchema = ChannelSettings$outboundSchema; + /** @deprecated use `ChannelSettings$Outbound` instead. */ + export type Outbound = ChannelSettings$Outbound; +} + +export function channelSettingsToJSON( + channelSettings: ChannelSettings, +): string { + return JSON.stringify(ChannelSettings$outboundSchema.parse(channelSettings)); +} + +export function channelSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ChannelSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ChannelSettings' from JSON`, + ); +} diff --git a/src/models/components/createintegrationrequestdto.ts b/src/models/components/createintegrationrequestdto.ts new file mode 100644 index 00000000..f35347ca --- /dev/null +++ b/src/models/components/createintegrationrequestdto.ts @@ -0,0 +1,158 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + CredentialsDto, + CredentialsDto$inboundSchema, + CredentialsDto$Outbound, + CredentialsDto$outboundSchema, +} from "./credentialsdto.js"; +import { + StepFilter, + StepFilter$inboundSchema, + StepFilter$Outbound, + StepFilter$outboundSchema, +} from "./stepfilter.js"; + +export const CreateIntegrationRequestDtoChannel = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +export type CreateIntegrationRequestDtoChannel = ClosedEnum< + typeof CreateIntegrationRequestDtoChannel +>; + +export type CreateIntegrationRequestDto = { + name?: string | undefined; + identifier?: string | undefined; + environmentId?: string | undefined; + providerId: string; + channel: CreateIntegrationRequestDtoChannel; + credentials?: CredentialsDto | undefined; + /** + * If the integration is active the validation on the credentials field will run + */ + active?: boolean | undefined; + check?: boolean | undefined; + conditions?: Array | undefined; +}; + +/** @internal */ +export const CreateIntegrationRequestDtoChannel$inboundSchema: z.ZodNativeEnum< + typeof CreateIntegrationRequestDtoChannel +> = z.nativeEnum(CreateIntegrationRequestDtoChannel); + +/** @internal */ +export const CreateIntegrationRequestDtoChannel$outboundSchema: z.ZodNativeEnum< + typeof CreateIntegrationRequestDtoChannel +> = CreateIntegrationRequestDtoChannel$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CreateIntegrationRequestDtoChannel$ { + /** @deprecated use `CreateIntegrationRequestDtoChannel$inboundSchema` instead. */ + export const inboundSchema = CreateIntegrationRequestDtoChannel$inboundSchema; + /** @deprecated use `CreateIntegrationRequestDtoChannel$outboundSchema` instead. */ + export const outboundSchema = + CreateIntegrationRequestDtoChannel$outboundSchema; +} + +/** @internal */ +export const CreateIntegrationRequestDto$inboundSchema: z.ZodType< + CreateIntegrationRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), + _environmentId: z.string().optional(), + providerId: z.string(), + channel: CreateIntegrationRequestDtoChannel$inboundSchema, + credentials: CredentialsDto$inboundSchema.optional(), + active: z.boolean().optional(), + check: z.boolean().optional(), + conditions: z.array(StepFilter$inboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + "_environmentId": "environmentId", + }); +}); + +/** @internal */ +export type CreateIntegrationRequestDto$Outbound = { + name?: string | undefined; + identifier?: string | undefined; + _environmentId?: string | undefined; + providerId: string; + channel: string; + credentials?: CredentialsDto$Outbound | undefined; + active?: boolean | undefined; + check?: boolean | undefined; + conditions?: Array | undefined; +}; + +/** @internal */ +export const CreateIntegrationRequestDto$outboundSchema: z.ZodType< + CreateIntegrationRequestDto$Outbound, + z.ZodTypeDef, + CreateIntegrationRequestDto +> = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), + environmentId: z.string().optional(), + providerId: z.string(), + channel: CreateIntegrationRequestDtoChannel$outboundSchema, + credentials: CredentialsDto$outboundSchema.optional(), + active: z.boolean().optional(), + check: z.boolean().optional(), + conditions: z.array(StepFilter$outboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + environmentId: "_environmentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CreateIntegrationRequestDto$ { + /** @deprecated use `CreateIntegrationRequestDto$inboundSchema` instead. */ + export const inboundSchema = CreateIntegrationRequestDto$inboundSchema; + /** @deprecated use `CreateIntegrationRequestDto$outboundSchema` instead. */ + export const outboundSchema = CreateIntegrationRequestDto$outboundSchema; + /** @deprecated use `CreateIntegrationRequestDto$Outbound` instead. */ + export type Outbound = CreateIntegrationRequestDto$Outbound; +} + +export function createIntegrationRequestDtoToJSON( + createIntegrationRequestDto: CreateIntegrationRequestDto, +): string { + return JSON.stringify( + CreateIntegrationRequestDto$outboundSchema.parse( + createIntegrationRequestDto, + ), + ); +} + +export function createIntegrationRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateIntegrationRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateIntegrationRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createnotificationgrouprequestdto.ts b/src/models/components/createnotificationgrouprequestdto.ts new file mode 100644 index 00000000..4deb78b9 --- /dev/null +++ b/src/models/components/createnotificationgrouprequestdto.ts @@ -0,0 +1,69 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type CreateNotificationGroupRequestDto = { + name: string; +}; + +/** @internal */ +export const CreateNotificationGroupRequestDto$inboundSchema: z.ZodType< + CreateNotificationGroupRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + name: z.string(), +}); + +/** @internal */ +export type CreateNotificationGroupRequestDto$Outbound = { + name: string; +}; + +/** @internal */ +export const CreateNotificationGroupRequestDto$outboundSchema: z.ZodType< + CreateNotificationGroupRequestDto$Outbound, + z.ZodTypeDef, + CreateNotificationGroupRequestDto +> = z.object({ + name: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CreateNotificationGroupRequestDto$ { + /** @deprecated use `CreateNotificationGroupRequestDto$inboundSchema` instead. */ + export const inboundSchema = CreateNotificationGroupRequestDto$inboundSchema; + /** @deprecated use `CreateNotificationGroupRequestDto$outboundSchema` instead. */ + export const outboundSchema = + CreateNotificationGroupRequestDto$outboundSchema; + /** @deprecated use `CreateNotificationGroupRequestDto$Outbound` instead. */ + export type Outbound = CreateNotificationGroupRequestDto$Outbound; +} + +export function createNotificationGroupRequestDtoToJSON( + createNotificationGroupRequestDto: CreateNotificationGroupRequestDto, +): string { + return JSON.stringify( + CreateNotificationGroupRequestDto$outboundSchema.parse( + createNotificationGroupRequestDto, + ), + ); +} + +export function createNotificationGroupRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateNotificationGroupRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateNotificationGroupRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createsubscriberrequestdto.ts b/src/models/components/createsubscriberrequestdto.ts new file mode 100644 index 00000000..180eb6d1 --- /dev/null +++ b/src/models/components/createsubscriberrequestdto.ts @@ -0,0 +1,156 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type CreateSubscriberRequestDtoData = {}; + +export type CreateSubscriberRequestDto = { + /** + * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + */ + subscriberId: string; + email?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + phone?: string | undefined; + /** + * An http url to the profile image of your subscriber + */ + avatar?: string | undefined; + locale?: string | undefined; + data?: CreateSubscriberRequestDtoData | undefined; + channels?: Array | undefined; +}; + +/** @internal */ +export const CreateSubscriberRequestDtoData$inboundSchema: z.ZodType< + CreateSubscriberRequestDtoData, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type CreateSubscriberRequestDtoData$Outbound = {}; + +/** @internal */ +export const CreateSubscriberRequestDtoData$outboundSchema: z.ZodType< + CreateSubscriberRequestDtoData$Outbound, + z.ZodTypeDef, + CreateSubscriberRequestDtoData +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CreateSubscriberRequestDtoData$ { + /** @deprecated use `CreateSubscriberRequestDtoData$inboundSchema` instead. */ + export const inboundSchema = CreateSubscriberRequestDtoData$inboundSchema; + /** @deprecated use `CreateSubscriberRequestDtoData$outboundSchema` instead. */ + export const outboundSchema = CreateSubscriberRequestDtoData$outboundSchema; + /** @deprecated use `CreateSubscriberRequestDtoData$Outbound` instead. */ + export type Outbound = CreateSubscriberRequestDtoData$Outbound; +} + +export function createSubscriberRequestDtoDataToJSON( + createSubscriberRequestDtoData: CreateSubscriberRequestDtoData, +): string { + return JSON.stringify( + CreateSubscriberRequestDtoData$outboundSchema.parse( + createSubscriberRequestDtoData, + ), + ); +} + +export function createSubscriberRequestDtoDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateSubscriberRequestDtoData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateSubscriberRequestDtoData' from JSON`, + ); +} + +/** @internal */ +export const CreateSubscriberRequestDto$inboundSchema: z.ZodType< + CreateSubscriberRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + subscriberId: z.string(), + email: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => CreateSubscriberRequestDtoData$inboundSchema).optional(), + channels: z.array(z.string()).optional(), +}); + +/** @internal */ +export type CreateSubscriberRequestDto$Outbound = { + subscriberId: string; + email?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + data?: CreateSubscriberRequestDtoData$Outbound | undefined; + channels?: Array | undefined; +}; + +/** @internal */ +export const CreateSubscriberRequestDto$outboundSchema: z.ZodType< + CreateSubscriberRequestDto$Outbound, + z.ZodTypeDef, + CreateSubscriberRequestDto +> = z.object({ + subscriberId: z.string(), + email: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => CreateSubscriberRequestDtoData$outboundSchema).optional(), + channels: z.array(z.string()).optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CreateSubscriberRequestDto$ { + /** @deprecated use `CreateSubscriberRequestDto$inboundSchema` instead. */ + export const inboundSchema = CreateSubscriberRequestDto$inboundSchema; + /** @deprecated use `CreateSubscriberRequestDto$outboundSchema` instead. */ + export const outboundSchema = CreateSubscriberRequestDto$outboundSchema; + /** @deprecated use `CreateSubscriberRequestDto$Outbound` instead. */ + export type Outbound = CreateSubscriberRequestDto$Outbound; +} + +export function createSubscriberRequestDtoToJSON( + createSubscriberRequestDto: CreateSubscriberRequestDto, +): string { + return JSON.stringify( + CreateSubscriberRequestDto$outboundSchema.parse(createSubscriberRequestDto), + ); +} + +export function createSubscriberRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateSubscriberRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateSubscriberRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createtopicrequestdto.ts b/src/models/components/createtopicrequestdto.ts new file mode 100644 index 00000000..51e26840 --- /dev/null +++ b/src/models/components/createtopicrequestdto.ts @@ -0,0 +1,76 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type CreateTopicRequestDto = { + /** + * User defined custom key and provided by the user that will be an unique identifier for the Topic created. + */ + key: string; + /** + * User defined custom name and provided by the user that will name the Topic created. + */ + name: string; +}; + +/** @internal */ +export const CreateTopicRequestDto$inboundSchema: z.ZodType< + CreateTopicRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + key: z.string(), + name: z.string(), +}); + +/** @internal */ +export type CreateTopicRequestDto$Outbound = { + key: string; + name: string; +}; + +/** @internal */ +export const CreateTopicRequestDto$outboundSchema: z.ZodType< + CreateTopicRequestDto$Outbound, + z.ZodTypeDef, + CreateTopicRequestDto +> = z.object({ + key: z.string(), + name: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CreateTopicRequestDto$ { + /** @deprecated use `CreateTopicRequestDto$inboundSchema` instead. */ + export const inboundSchema = CreateTopicRequestDto$inboundSchema; + /** @deprecated use `CreateTopicRequestDto$outboundSchema` instead. */ + export const outboundSchema = CreateTopicRequestDto$outboundSchema; + /** @deprecated use `CreateTopicRequestDto$Outbound` instead. */ + export type Outbound = CreateTopicRequestDto$Outbound; +} + +export function createTopicRequestDtoToJSON( + createTopicRequestDto: CreateTopicRequestDto, +): string { + return JSON.stringify( + CreateTopicRequestDto$outboundSchema.parse(createTopicRequestDto), + ); +} + +export function createTopicRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateTopicRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateTopicRequestDto' from JSON`, + ); +} diff --git a/src/models/components/createtopicresponsedto.ts b/src/models/components/createtopicresponsedto.ts new file mode 100644 index 00000000..b02673c5 --- /dev/null +++ b/src/models/components/createtopicresponsedto.ts @@ -0,0 +1,85 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type CreateTopicResponseDto = { + /** + * The unique identifier for the Topic created. + */ + id?: string | undefined; + /** + * User defined custom key and provided by the user that will be an unique identifier for the Topic created. + */ + key: string; +}; + +/** @internal */ +export const CreateTopicResponseDto$inboundSchema: z.ZodType< + CreateTopicResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + key: z.string(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + }); +}); + +/** @internal */ +export type CreateTopicResponseDto$Outbound = { + _id?: string | undefined; + key: string; +}; + +/** @internal */ +export const CreateTopicResponseDto$outboundSchema: z.ZodType< + CreateTopicResponseDto$Outbound, + z.ZodTypeDef, + CreateTopicResponseDto +> = z.object({ + id: z.string().optional(), + key: z.string(), +}).transform((v) => { + return remap$(v, { + id: "_id", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CreateTopicResponseDto$ { + /** @deprecated use `CreateTopicResponseDto$inboundSchema` instead. */ + export const inboundSchema = CreateTopicResponseDto$inboundSchema; + /** @deprecated use `CreateTopicResponseDto$outboundSchema` instead. */ + export const outboundSchema = CreateTopicResponseDto$outboundSchema; + /** @deprecated use `CreateTopicResponseDto$Outbound` instead. */ + export type Outbound = CreateTopicResponseDto$Outbound; +} + +export function createTopicResponseDtoToJSON( + createTopicResponseDto: CreateTopicResponseDto, +): string { + return JSON.stringify( + CreateTopicResponseDto$outboundSchema.parse(createTopicResponseDto), + ); +} + +export function createTopicResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreateTopicResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateTopicResponseDto' from JSON`, + ); +} diff --git a/src/models/components/credentialsdto.ts b/src/models/components/credentialsdto.ts new file mode 100644 index 00000000..2818b688 --- /dev/null +++ b/src/models/components/credentialsdto.ts @@ -0,0 +1,272 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TlsOptions = {}; + +export type CredentialsDto = { + apiKey?: string | undefined; + user?: string | undefined; + secretKey?: string | undefined; + domain?: string | undefined; + password?: string | undefined; + host?: string | undefined; + port?: string | undefined; + secure?: boolean | undefined; + region?: string | undefined; + accountSid?: string | undefined; + messageProfileId?: string | undefined; + token?: string | undefined; + from?: string | undefined; + senderName?: string | undefined; + projectName?: string | undefined; + applicationId?: string | undefined; + clientId?: string | undefined; + requireTls?: boolean | undefined; + ignoreTls?: boolean | undefined; + tlsOptions?: TlsOptions | undefined; + baseUrl?: string | undefined; + webhookUrl?: string | undefined; + redirectUrl?: string | undefined; + hmac?: boolean | undefined; + serviceAccount?: string | undefined; + ipPoolName?: string | undefined; + apiKeyRequestHeader?: string | undefined; + secretKeyRequestHeader?: string | undefined; + idPath?: string | undefined; + datePath?: string | undefined; + apiToken?: string | undefined; + authenticateByToken?: boolean | undefined; + authenticationTokenKey?: string | undefined; + instanceId?: string | undefined; + alertUid?: string | undefined; + title?: string | undefined; + imageUrl?: string | undefined; + state?: string | undefined; + externalLink?: string | undefined; + channelId?: string | undefined; + phoneNumberIdentification?: string | undefined; + accessKey?: string | undefined; +}; + +/** @internal */ +export const TlsOptions$inboundSchema: z.ZodType< + TlsOptions, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type TlsOptions$Outbound = {}; + +/** @internal */ +export const TlsOptions$outboundSchema: z.ZodType< + TlsOptions$Outbound, + z.ZodTypeDef, + TlsOptions +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TlsOptions$ { + /** @deprecated use `TlsOptions$inboundSchema` instead. */ + export const inboundSchema = TlsOptions$inboundSchema; + /** @deprecated use `TlsOptions$outboundSchema` instead. */ + export const outboundSchema = TlsOptions$outboundSchema; + /** @deprecated use `TlsOptions$Outbound` instead. */ + export type Outbound = TlsOptions$Outbound; +} + +export function tlsOptionsToJSON(tlsOptions: TlsOptions): string { + return JSON.stringify(TlsOptions$outboundSchema.parse(tlsOptions)); +} + +export function tlsOptionsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TlsOptions$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TlsOptions' from JSON`, + ); +} + +/** @internal */ +export const CredentialsDto$inboundSchema: z.ZodType< + CredentialsDto, + z.ZodTypeDef, + unknown +> = z.object({ + apiKey: z.string().optional(), + user: z.string().optional(), + secretKey: z.string().optional(), + domain: z.string().optional(), + password: z.string().optional(), + host: z.string().optional(), + port: z.string().optional(), + secure: z.boolean().optional(), + region: z.string().optional(), + accountSid: z.string().optional(), + messageProfileId: z.string().optional(), + token: z.string().optional(), + from: z.string().optional(), + senderName: z.string().optional(), + projectName: z.string().optional(), + applicationId: z.string().optional(), + clientId: z.string().optional(), + requireTls: z.boolean().optional(), + ignoreTls: z.boolean().optional(), + tlsOptions: z.lazy(() => TlsOptions$inboundSchema).optional(), + baseUrl: z.string().optional(), + webhookUrl: z.string().optional(), + redirectUrl: z.string().optional(), + hmac: z.boolean().optional(), + serviceAccount: z.string().optional(), + ipPoolName: z.string().optional(), + apiKeyRequestHeader: z.string().optional(), + secretKeyRequestHeader: z.string().optional(), + idPath: z.string().optional(), + datePath: z.string().optional(), + apiToken: z.string().optional(), + authenticateByToken: z.boolean().optional(), + authenticationTokenKey: z.string().optional(), + instanceId: z.string().optional(), + alertUid: z.string().optional(), + title: z.string().optional(), + imageUrl: z.string().optional(), + state: z.string().optional(), + externalLink: z.string().optional(), + channelId: z.string().optional(), + phoneNumberIdentification: z.string().optional(), + accessKey: z.string().optional(), +}); + +/** @internal */ +export type CredentialsDto$Outbound = { + apiKey?: string | undefined; + user?: string | undefined; + secretKey?: string | undefined; + domain?: string | undefined; + password?: string | undefined; + host?: string | undefined; + port?: string | undefined; + secure?: boolean | undefined; + region?: string | undefined; + accountSid?: string | undefined; + messageProfileId?: string | undefined; + token?: string | undefined; + from?: string | undefined; + senderName?: string | undefined; + projectName?: string | undefined; + applicationId?: string | undefined; + clientId?: string | undefined; + requireTls?: boolean | undefined; + ignoreTls?: boolean | undefined; + tlsOptions?: TlsOptions$Outbound | undefined; + baseUrl?: string | undefined; + webhookUrl?: string | undefined; + redirectUrl?: string | undefined; + hmac?: boolean | undefined; + serviceAccount?: string | undefined; + ipPoolName?: string | undefined; + apiKeyRequestHeader?: string | undefined; + secretKeyRequestHeader?: string | undefined; + idPath?: string | undefined; + datePath?: string | undefined; + apiToken?: string | undefined; + authenticateByToken?: boolean | undefined; + authenticationTokenKey?: string | undefined; + instanceId?: string | undefined; + alertUid?: string | undefined; + title?: string | undefined; + imageUrl?: string | undefined; + state?: string | undefined; + externalLink?: string | undefined; + channelId?: string | undefined; + phoneNumberIdentification?: string | undefined; + accessKey?: string | undefined; +}; + +/** @internal */ +export const CredentialsDto$outboundSchema: z.ZodType< + CredentialsDto$Outbound, + z.ZodTypeDef, + CredentialsDto +> = z.object({ + apiKey: z.string().optional(), + user: z.string().optional(), + secretKey: z.string().optional(), + domain: z.string().optional(), + password: z.string().optional(), + host: z.string().optional(), + port: z.string().optional(), + secure: z.boolean().optional(), + region: z.string().optional(), + accountSid: z.string().optional(), + messageProfileId: z.string().optional(), + token: z.string().optional(), + from: z.string().optional(), + senderName: z.string().optional(), + projectName: z.string().optional(), + applicationId: z.string().optional(), + clientId: z.string().optional(), + requireTls: z.boolean().optional(), + ignoreTls: z.boolean().optional(), + tlsOptions: z.lazy(() => TlsOptions$outboundSchema).optional(), + baseUrl: z.string().optional(), + webhookUrl: z.string().optional(), + redirectUrl: z.string().optional(), + hmac: z.boolean().optional(), + serviceAccount: z.string().optional(), + ipPoolName: z.string().optional(), + apiKeyRequestHeader: z.string().optional(), + secretKeyRequestHeader: z.string().optional(), + idPath: z.string().optional(), + datePath: z.string().optional(), + apiToken: z.string().optional(), + authenticateByToken: z.boolean().optional(), + authenticationTokenKey: z.string().optional(), + instanceId: z.string().optional(), + alertUid: z.string().optional(), + title: z.string().optional(), + imageUrl: z.string().optional(), + state: z.string().optional(), + externalLink: z.string().optional(), + channelId: z.string().optional(), + phoneNumberIdentification: z.string().optional(), + accessKey: z.string().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace CredentialsDto$ { + /** @deprecated use `CredentialsDto$inboundSchema` instead. */ + export const inboundSchema = CredentialsDto$inboundSchema; + /** @deprecated use `CredentialsDto$outboundSchema` instead. */ + export const outboundSchema = CredentialsDto$outboundSchema; + /** @deprecated use `CredentialsDto$Outbound` instead. */ + export type Outbound = CredentialsDto$Outbound; +} + +export function credentialsDtoToJSON(credentialsDto: CredentialsDto): string { + return JSON.stringify(CredentialsDto$outboundSchema.parse(credentialsDto)); +} + +export function credentialsDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CredentialsDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CredentialsDto' from JSON`, + ); +} diff --git a/src/models/components/databooleandto.ts b/src/models/components/databooleandto.ts new file mode 100644 index 00000000..200fb5b0 --- /dev/null +++ b/src/models/components/databooleandto.ts @@ -0,0 +1,62 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type DataBooleanDto = { + data: boolean; +}; + +/** @internal */ +export const DataBooleanDto$inboundSchema: z.ZodType< + DataBooleanDto, + z.ZodTypeDef, + unknown +> = z.object({ + data: z.boolean(), +}); + +/** @internal */ +export type DataBooleanDto$Outbound = { + data: boolean; +}; + +/** @internal */ +export const DataBooleanDto$outboundSchema: z.ZodType< + DataBooleanDto$Outbound, + z.ZodTypeDef, + DataBooleanDto +> = z.object({ + data: z.boolean(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DataBooleanDto$ { + /** @deprecated use `DataBooleanDto$inboundSchema` instead. */ + export const inboundSchema = DataBooleanDto$inboundSchema; + /** @deprecated use `DataBooleanDto$outboundSchema` instead. */ + export const outboundSchema = DataBooleanDto$outboundSchema; + /** @deprecated use `DataBooleanDto$Outbound` instead. */ + export type Outbound = DataBooleanDto$Outbound; +} + +export function dataBooleanDtoToJSON(dataBooleanDto: DataBooleanDto): string { + return JSON.stringify(DataBooleanDto$outboundSchema.parse(dataBooleanDto)); +} + +export function dataBooleanDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataBooleanDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataBooleanDto' from JSON`, + ); +} diff --git a/src/models/components/delayregularmetadata.ts b/src/models/components/delayregularmetadata.ts new file mode 100644 index 00000000..7c8631f4 --- /dev/null +++ b/src/models/components/delayregularmetadata.ts @@ -0,0 +1,136 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const DelayRegularMetadataUnit = { + Seconds: "seconds", + Minutes: "minutes", + Hours: "hours", + Days: "days", + Weeks: "weeks", + Months: "months", +} as const; +export type DelayRegularMetadataUnit = ClosedEnum< + typeof DelayRegularMetadataUnit +>; + +export const DelayRegularMetadataType = { + Regular: "regular", +} as const; +export type DelayRegularMetadataType = ClosedEnum< + typeof DelayRegularMetadataType +>; + +export type DelayRegularMetadata = { + amount?: number | undefined; + unit?: DelayRegularMetadataUnit | undefined; + type: DelayRegularMetadataType; +}; + +/** @internal */ +export const DelayRegularMetadataUnit$inboundSchema: z.ZodNativeEnum< + typeof DelayRegularMetadataUnit +> = z.nativeEnum(DelayRegularMetadataUnit); + +/** @internal */ +export const DelayRegularMetadataUnit$outboundSchema: z.ZodNativeEnum< + typeof DelayRegularMetadataUnit +> = DelayRegularMetadataUnit$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DelayRegularMetadataUnit$ { + /** @deprecated use `DelayRegularMetadataUnit$inboundSchema` instead. */ + export const inboundSchema = DelayRegularMetadataUnit$inboundSchema; + /** @deprecated use `DelayRegularMetadataUnit$outboundSchema` instead. */ + export const outboundSchema = DelayRegularMetadataUnit$outboundSchema; +} + +/** @internal */ +export const DelayRegularMetadataType$inboundSchema: z.ZodNativeEnum< + typeof DelayRegularMetadataType +> = z.nativeEnum(DelayRegularMetadataType); + +/** @internal */ +export const DelayRegularMetadataType$outboundSchema: z.ZodNativeEnum< + typeof DelayRegularMetadataType +> = DelayRegularMetadataType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DelayRegularMetadataType$ { + /** @deprecated use `DelayRegularMetadataType$inboundSchema` instead. */ + export const inboundSchema = DelayRegularMetadataType$inboundSchema; + /** @deprecated use `DelayRegularMetadataType$outboundSchema` instead. */ + export const outboundSchema = DelayRegularMetadataType$outboundSchema; +} + +/** @internal */ +export const DelayRegularMetadata$inboundSchema: z.ZodType< + DelayRegularMetadata, + z.ZodTypeDef, + unknown +> = z.object({ + amount: z.number().optional(), + unit: DelayRegularMetadataUnit$inboundSchema.optional(), + type: DelayRegularMetadataType$inboundSchema, +}); + +/** @internal */ +export type DelayRegularMetadata$Outbound = { + amount?: number | undefined; + unit?: string | undefined; + type: string; +}; + +/** @internal */ +export const DelayRegularMetadata$outboundSchema: z.ZodType< + DelayRegularMetadata$Outbound, + z.ZodTypeDef, + DelayRegularMetadata +> = z.object({ + amount: z.number().optional(), + unit: DelayRegularMetadataUnit$outboundSchema.optional(), + type: DelayRegularMetadataType$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DelayRegularMetadata$ { + /** @deprecated use `DelayRegularMetadata$inboundSchema` instead. */ + export const inboundSchema = DelayRegularMetadata$inboundSchema; + /** @deprecated use `DelayRegularMetadata$outboundSchema` instead. */ + export const outboundSchema = DelayRegularMetadata$outboundSchema; + /** @deprecated use `DelayRegularMetadata$Outbound` instead. */ + export type Outbound = DelayRegularMetadata$Outbound; +} + +export function delayRegularMetadataToJSON( + delayRegularMetadata: DelayRegularMetadata, +): string { + return JSON.stringify( + DelayRegularMetadata$outboundSchema.parse(delayRegularMetadata), + ); +} + +export function delayRegularMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DelayRegularMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DelayRegularMetadata' from JSON`, + ); +} diff --git a/src/models/components/delayscheduledmetadata.ts b/src/models/components/delayscheduledmetadata.ts new file mode 100644 index 00000000..cd26f256 --- /dev/null +++ b/src/models/components/delayscheduledmetadata.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const DelayScheduledMetadataType = { + Scheduled: "scheduled", +} as const; +export type DelayScheduledMetadataType = ClosedEnum< + typeof DelayScheduledMetadataType +>; + +export type DelayScheduledMetadata = { + type: DelayScheduledMetadataType; + delayPath: string; +}; + +/** @internal */ +export const DelayScheduledMetadataType$inboundSchema: z.ZodNativeEnum< + typeof DelayScheduledMetadataType +> = z.nativeEnum(DelayScheduledMetadataType); + +/** @internal */ +export const DelayScheduledMetadataType$outboundSchema: z.ZodNativeEnum< + typeof DelayScheduledMetadataType +> = DelayScheduledMetadataType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DelayScheduledMetadataType$ { + /** @deprecated use `DelayScheduledMetadataType$inboundSchema` instead. */ + export const inboundSchema = DelayScheduledMetadataType$inboundSchema; + /** @deprecated use `DelayScheduledMetadataType$outboundSchema` instead. */ + export const outboundSchema = DelayScheduledMetadataType$outboundSchema; +} + +/** @internal */ +export const DelayScheduledMetadata$inboundSchema: z.ZodType< + DelayScheduledMetadata, + z.ZodTypeDef, + unknown +> = z.object({ + type: DelayScheduledMetadataType$inboundSchema, + delayPath: z.string(), +}); + +/** @internal */ +export type DelayScheduledMetadata$Outbound = { + type: string; + delayPath: string; +}; + +/** @internal */ +export const DelayScheduledMetadata$outboundSchema: z.ZodType< + DelayScheduledMetadata$Outbound, + z.ZodTypeDef, + DelayScheduledMetadata +> = z.object({ + type: DelayScheduledMetadataType$outboundSchema, + delayPath: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DelayScheduledMetadata$ { + /** @deprecated use `DelayScheduledMetadata$inboundSchema` instead. */ + export const inboundSchema = DelayScheduledMetadata$inboundSchema; + /** @deprecated use `DelayScheduledMetadata$outboundSchema` instead. */ + export const outboundSchema = DelayScheduledMetadata$outboundSchema; + /** @deprecated use `DelayScheduledMetadata$Outbound` instead. */ + export type Outbound = DelayScheduledMetadata$Outbound; +} + +export function delayScheduledMetadataToJSON( + delayScheduledMetadata: DelayScheduledMetadata, +): string { + return JSON.stringify( + DelayScheduledMetadata$outboundSchema.parse(delayScheduledMetadata), + ); +} + +export function delayScheduledMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DelayScheduledMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DelayScheduledMetadata' from JSON`, + ); +} diff --git a/src/models/components/deletemessageresponsedto.ts b/src/models/components/deletemessageresponsedto.ts new file mode 100644 index 00000000..50e20aed --- /dev/null +++ b/src/models/components/deletemessageresponsedto.ts @@ -0,0 +1,111 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * The status enum for the performed action + */ +export const DeleteMessageResponseDtoStatus = { + Deleted: "deleted", +} as const; +/** + * The status enum for the performed action + */ +export type DeleteMessageResponseDtoStatus = ClosedEnum< + typeof DeleteMessageResponseDtoStatus +>; + +export type DeleteMessageResponseDto = { + /** + * A boolean stating the success of the action + */ + acknowledged: boolean; + /** + * The status enum for the performed action + */ + status: DeleteMessageResponseDtoStatus; +}; + +/** @internal */ +export const DeleteMessageResponseDtoStatus$inboundSchema: z.ZodNativeEnum< + typeof DeleteMessageResponseDtoStatus +> = z.nativeEnum(DeleteMessageResponseDtoStatus); + +/** @internal */ +export const DeleteMessageResponseDtoStatus$outboundSchema: z.ZodNativeEnum< + typeof DeleteMessageResponseDtoStatus +> = DeleteMessageResponseDtoStatus$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DeleteMessageResponseDtoStatus$ { + /** @deprecated use `DeleteMessageResponseDtoStatus$inboundSchema` instead. */ + export const inboundSchema = DeleteMessageResponseDtoStatus$inboundSchema; + /** @deprecated use `DeleteMessageResponseDtoStatus$outboundSchema` instead. */ + export const outboundSchema = DeleteMessageResponseDtoStatus$outboundSchema; +} + +/** @internal */ +export const DeleteMessageResponseDto$inboundSchema: z.ZodType< + DeleteMessageResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + acknowledged: z.boolean(), + status: DeleteMessageResponseDtoStatus$inboundSchema, +}); + +/** @internal */ +export type DeleteMessageResponseDto$Outbound = { + acknowledged: boolean; + status: string; +}; + +/** @internal */ +export const DeleteMessageResponseDto$outboundSchema: z.ZodType< + DeleteMessageResponseDto$Outbound, + z.ZodTypeDef, + DeleteMessageResponseDto +> = z.object({ + acknowledged: z.boolean(), + status: DeleteMessageResponseDtoStatus$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DeleteMessageResponseDto$ { + /** @deprecated use `DeleteMessageResponseDto$inboundSchema` instead. */ + export const inboundSchema = DeleteMessageResponseDto$inboundSchema; + /** @deprecated use `DeleteMessageResponseDto$outboundSchema` instead. */ + export const outboundSchema = DeleteMessageResponseDto$outboundSchema; + /** @deprecated use `DeleteMessageResponseDto$Outbound` instead. */ + export type Outbound = DeleteMessageResponseDto$Outbound; +} + +export function deleteMessageResponseDtoToJSON( + deleteMessageResponseDto: DeleteMessageResponseDto, +): string { + return JSON.stringify( + DeleteMessageResponseDto$outboundSchema.parse(deleteMessageResponseDto), + ); +} + +export function deleteMessageResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeleteMessageResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeleteMessageResponseDto' from JSON`, + ); +} diff --git a/src/models/components/deletenotificationgroupresponsedto.ts b/src/models/components/deletenotificationgroupresponsedto.ts new file mode 100644 index 00000000..b75b5c46 --- /dev/null +++ b/src/models/components/deletenotificationgroupresponsedto.ts @@ -0,0 +1,117 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * The status enum for the performed action + */ +export const DeleteNotificationGroupResponseDtoStatus = { + Deleted: "deleted", +} as const; +/** + * The status enum for the performed action + */ +export type DeleteNotificationGroupResponseDtoStatus = ClosedEnum< + typeof DeleteNotificationGroupResponseDtoStatus +>; + +export type DeleteNotificationGroupResponseDto = { + /** + * A boolean stating the success of the action + */ + acknowledged: boolean; + /** + * The status enum for the performed action + */ + status: DeleteNotificationGroupResponseDtoStatus; +}; + +/** @internal */ +export const DeleteNotificationGroupResponseDtoStatus$inboundSchema: + z.ZodNativeEnum = z + .nativeEnum(DeleteNotificationGroupResponseDtoStatus); + +/** @internal */ +export const DeleteNotificationGroupResponseDtoStatus$outboundSchema: + z.ZodNativeEnum = + DeleteNotificationGroupResponseDtoStatus$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DeleteNotificationGroupResponseDtoStatus$ { + /** @deprecated use `DeleteNotificationGroupResponseDtoStatus$inboundSchema` instead. */ + export const inboundSchema = + DeleteNotificationGroupResponseDtoStatus$inboundSchema; + /** @deprecated use `DeleteNotificationGroupResponseDtoStatus$outboundSchema` instead. */ + export const outboundSchema = + DeleteNotificationGroupResponseDtoStatus$outboundSchema; +} + +/** @internal */ +export const DeleteNotificationGroupResponseDto$inboundSchema: z.ZodType< + DeleteNotificationGroupResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + acknowledged: z.boolean(), + status: DeleteNotificationGroupResponseDtoStatus$inboundSchema, +}); + +/** @internal */ +export type DeleteNotificationGroupResponseDto$Outbound = { + acknowledged: boolean; + status: string; +}; + +/** @internal */ +export const DeleteNotificationGroupResponseDto$outboundSchema: z.ZodType< + DeleteNotificationGroupResponseDto$Outbound, + z.ZodTypeDef, + DeleteNotificationGroupResponseDto +> = z.object({ + acknowledged: z.boolean(), + status: DeleteNotificationGroupResponseDtoStatus$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DeleteNotificationGroupResponseDto$ { + /** @deprecated use `DeleteNotificationGroupResponseDto$inboundSchema` instead. */ + export const inboundSchema = DeleteNotificationGroupResponseDto$inboundSchema; + /** @deprecated use `DeleteNotificationGroupResponseDto$outboundSchema` instead. */ + export const outboundSchema = + DeleteNotificationGroupResponseDto$outboundSchema; + /** @deprecated use `DeleteNotificationGroupResponseDto$Outbound` instead. */ + export type Outbound = DeleteNotificationGroupResponseDto$Outbound; +} + +export function deleteNotificationGroupResponseDtoToJSON( + deleteNotificationGroupResponseDto: DeleteNotificationGroupResponseDto, +): string { + return JSON.stringify( + DeleteNotificationGroupResponseDto$outboundSchema.parse( + deleteNotificationGroupResponseDto, + ), + ); +} + +export function deleteNotificationGroupResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeleteNotificationGroupResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeleteNotificationGroupResponseDto' from JSON`, + ); +} diff --git a/src/models/components/deletesubscriberresponsedto.ts b/src/models/components/deletesubscriberresponsedto.ts new file mode 100644 index 00000000..c23af1a8 --- /dev/null +++ b/src/models/components/deletesubscriberresponsedto.ts @@ -0,0 +1,114 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * The status enum for the performed action + */ +export const DeleteSubscriberResponseDtoStatus = { + Deleted: "deleted", +} as const; +/** + * The status enum for the performed action + */ +export type DeleteSubscriberResponseDtoStatus = ClosedEnum< + typeof DeleteSubscriberResponseDtoStatus +>; + +export type DeleteSubscriberResponseDto = { + /** + * A boolean stating the success of the action + */ + acknowledged: boolean; + /** + * The status enum for the performed action + */ + status: DeleteSubscriberResponseDtoStatus; +}; + +/** @internal */ +export const DeleteSubscriberResponseDtoStatus$inboundSchema: z.ZodNativeEnum< + typeof DeleteSubscriberResponseDtoStatus +> = z.nativeEnum(DeleteSubscriberResponseDtoStatus); + +/** @internal */ +export const DeleteSubscriberResponseDtoStatus$outboundSchema: z.ZodNativeEnum< + typeof DeleteSubscriberResponseDtoStatus +> = DeleteSubscriberResponseDtoStatus$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DeleteSubscriberResponseDtoStatus$ { + /** @deprecated use `DeleteSubscriberResponseDtoStatus$inboundSchema` instead. */ + export const inboundSchema = DeleteSubscriberResponseDtoStatus$inboundSchema; + /** @deprecated use `DeleteSubscriberResponseDtoStatus$outboundSchema` instead. */ + export const outboundSchema = + DeleteSubscriberResponseDtoStatus$outboundSchema; +} + +/** @internal */ +export const DeleteSubscriberResponseDto$inboundSchema: z.ZodType< + DeleteSubscriberResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + acknowledged: z.boolean(), + status: DeleteSubscriberResponseDtoStatus$inboundSchema, +}); + +/** @internal */ +export type DeleteSubscriberResponseDto$Outbound = { + acknowledged: boolean; + status: string; +}; + +/** @internal */ +export const DeleteSubscriberResponseDto$outboundSchema: z.ZodType< + DeleteSubscriberResponseDto$Outbound, + z.ZodTypeDef, + DeleteSubscriberResponseDto +> = z.object({ + acknowledged: z.boolean(), + status: DeleteSubscriberResponseDtoStatus$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DeleteSubscriberResponseDto$ { + /** @deprecated use `DeleteSubscriberResponseDto$inboundSchema` instead. */ + export const inboundSchema = DeleteSubscriberResponseDto$inboundSchema; + /** @deprecated use `DeleteSubscriberResponseDto$outboundSchema` instead. */ + export const outboundSchema = DeleteSubscriberResponseDto$outboundSchema; + /** @deprecated use `DeleteSubscriberResponseDto$Outbound` instead. */ + export type Outbound = DeleteSubscriberResponseDto$Outbound; +} + +export function deleteSubscriberResponseDtoToJSON( + deleteSubscriberResponseDto: DeleteSubscriberResponseDto, +): string { + return JSON.stringify( + DeleteSubscriberResponseDto$outboundSchema.parse( + deleteSubscriberResponseDto, + ), + ); +} + +export function deleteSubscriberResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeleteSubscriberResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeleteSubscriberResponseDto' from JSON`, + ); +} diff --git a/src/models/components/digestregularmetadata.ts b/src/models/components/digestregularmetadata.ts new file mode 100644 index 00000000..f59bcbc9 --- /dev/null +++ b/src/models/components/digestregularmetadata.ts @@ -0,0 +1,183 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const Unit = { + Seconds: "seconds", + Minutes: "minutes", + Hours: "hours", + Days: "days", + Weeks: "weeks", + Months: "months", +} as const; +export type Unit = ClosedEnum; + +export const DigestRegularMetadataType = { + Regular: "regular", + Backoff: "backoff", +} as const; +export type DigestRegularMetadataType = ClosedEnum< + typeof DigestRegularMetadataType +>; + +export const BackoffUnit = { + Seconds: "seconds", + Minutes: "minutes", + Hours: "hours", + Days: "days", + Weeks: "weeks", + Months: "months", +} as const; +export type BackoffUnit = ClosedEnum; + +export type DigestRegularMetadata = { + amount?: number | undefined; + unit?: Unit | undefined; + digestKey?: string | undefined; + type: DigestRegularMetadataType; + backoff?: boolean | undefined; + backoffAmount?: number | undefined; + backoffUnit?: BackoffUnit | undefined; + updateMode?: boolean | undefined; +}; + +/** @internal */ +export const Unit$inboundSchema: z.ZodNativeEnum = z.nativeEnum( + Unit, +); + +/** @internal */ +export const Unit$outboundSchema: z.ZodNativeEnum = + Unit$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Unit$ { + /** @deprecated use `Unit$inboundSchema` instead. */ + export const inboundSchema = Unit$inboundSchema; + /** @deprecated use `Unit$outboundSchema` instead. */ + export const outboundSchema = Unit$outboundSchema; +} + +/** @internal */ +export const DigestRegularMetadataType$inboundSchema: z.ZodNativeEnum< + typeof DigestRegularMetadataType +> = z.nativeEnum(DigestRegularMetadataType); + +/** @internal */ +export const DigestRegularMetadataType$outboundSchema: z.ZodNativeEnum< + typeof DigestRegularMetadataType +> = DigestRegularMetadataType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DigestRegularMetadataType$ { + /** @deprecated use `DigestRegularMetadataType$inboundSchema` instead. */ + export const inboundSchema = DigestRegularMetadataType$inboundSchema; + /** @deprecated use `DigestRegularMetadataType$outboundSchema` instead. */ + export const outboundSchema = DigestRegularMetadataType$outboundSchema; +} + +/** @internal */ +export const BackoffUnit$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(BackoffUnit); + +/** @internal */ +export const BackoffUnit$outboundSchema: z.ZodNativeEnum = + BackoffUnit$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace BackoffUnit$ { + /** @deprecated use `BackoffUnit$inboundSchema` instead. */ + export const inboundSchema = BackoffUnit$inboundSchema; + /** @deprecated use `BackoffUnit$outboundSchema` instead. */ + export const outboundSchema = BackoffUnit$outboundSchema; +} + +/** @internal */ +export const DigestRegularMetadata$inboundSchema: z.ZodType< + DigestRegularMetadata, + z.ZodTypeDef, + unknown +> = z.object({ + amount: z.number().optional(), + unit: Unit$inboundSchema.optional(), + digestKey: z.string().optional(), + type: DigestRegularMetadataType$inboundSchema, + backoff: z.boolean().optional(), + backoffAmount: z.number().optional(), + backoffUnit: BackoffUnit$inboundSchema.optional(), + updateMode: z.boolean().optional(), +}); + +/** @internal */ +export type DigestRegularMetadata$Outbound = { + amount?: number | undefined; + unit?: string | undefined; + digestKey?: string | undefined; + type: string; + backoff?: boolean | undefined; + backoffAmount?: number | undefined; + backoffUnit?: string | undefined; + updateMode?: boolean | undefined; +}; + +/** @internal */ +export const DigestRegularMetadata$outboundSchema: z.ZodType< + DigestRegularMetadata$Outbound, + z.ZodTypeDef, + DigestRegularMetadata +> = z.object({ + amount: z.number().optional(), + unit: Unit$outboundSchema.optional(), + digestKey: z.string().optional(), + type: DigestRegularMetadataType$outboundSchema, + backoff: z.boolean().optional(), + backoffAmount: z.number().optional(), + backoffUnit: BackoffUnit$outboundSchema.optional(), + updateMode: z.boolean().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DigestRegularMetadata$ { + /** @deprecated use `DigestRegularMetadata$inboundSchema` instead. */ + export const inboundSchema = DigestRegularMetadata$inboundSchema; + /** @deprecated use `DigestRegularMetadata$outboundSchema` instead. */ + export const outboundSchema = DigestRegularMetadata$outboundSchema; + /** @deprecated use `DigestRegularMetadata$Outbound` instead. */ + export type Outbound = DigestRegularMetadata$Outbound; +} + +export function digestRegularMetadataToJSON( + digestRegularMetadata: DigestRegularMetadata, +): string { + return JSON.stringify( + DigestRegularMetadata$outboundSchema.parse(digestRegularMetadata), + ); +} + +export function digestRegularMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DigestRegularMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DigestRegularMetadata' from JSON`, + ); +} diff --git a/src/models/components/digesttimedmetadata.ts b/src/models/components/digesttimedmetadata.ts new file mode 100644 index 00000000..05b25a8c --- /dev/null +++ b/src/models/components/digesttimedmetadata.ts @@ -0,0 +1,150 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + TimedConfig, + TimedConfig$inboundSchema, + TimedConfig$Outbound, + TimedConfig$outboundSchema, +} from "./timedconfig.js"; + +export const DigestTimedMetadataUnit = { + Seconds: "seconds", + Minutes: "minutes", + Hours: "hours", + Days: "days", + Weeks: "weeks", + Months: "months", +} as const; +export type DigestTimedMetadataUnit = ClosedEnum< + typeof DigestTimedMetadataUnit +>; + +export const DigestTimedMetadataType = { + Timed: "timed", +} as const; +export type DigestTimedMetadataType = ClosedEnum< + typeof DigestTimedMetadataType +>; + +export type DigestTimedMetadata = { + amount?: number | undefined; + unit?: DigestTimedMetadataUnit | undefined; + digestKey?: string | undefined; + type: DigestTimedMetadataType; + timed?: TimedConfig | undefined; +}; + +/** @internal */ +export const DigestTimedMetadataUnit$inboundSchema: z.ZodNativeEnum< + typeof DigestTimedMetadataUnit +> = z.nativeEnum(DigestTimedMetadataUnit); + +/** @internal */ +export const DigestTimedMetadataUnit$outboundSchema: z.ZodNativeEnum< + typeof DigestTimedMetadataUnit +> = DigestTimedMetadataUnit$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DigestTimedMetadataUnit$ { + /** @deprecated use `DigestTimedMetadataUnit$inboundSchema` instead. */ + export const inboundSchema = DigestTimedMetadataUnit$inboundSchema; + /** @deprecated use `DigestTimedMetadataUnit$outboundSchema` instead. */ + export const outboundSchema = DigestTimedMetadataUnit$outboundSchema; +} + +/** @internal */ +export const DigestTimedMetadataType$inboundSchema: z.ZodNativeEnum< + typeof DigestTimedMetadataType +> = z.nativeEnum(DigestTimedMetadataType); + +/** @internal */ +export const DigestTimedMetadataType$outboundSchema: z.ZodNativeEnum< + typeof DigestTimedMetadataType +> = DigestTimedMetadataType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DigestTimedMetadataType$ { + /** @deprecated use `DigestTimedMetadataType$inboundSchema` instead. */ + export const inboundSchema = DigestTimedMetadataType$inboundSchema; + /** @deprecated use `DigestTimedMetadataType$outboundSchema` instead. */ + export const outboundSchema = DigestTimedMetadataType$outboundSchema; +} + +/** @internal */ +export const DigestTimedMetadata$inboundSchema: z.ZodType< + DigestTimedMetadata, + z.ZodTypeDef, + unknown +> = z.object({ + amount: z.number().optional(), + unit: DigestTimedMetadataUnit$inboundSchema.optional(), + digestKey: z.string().optional(), + type: DigestTimedMetadataType$inboundSchema, + timed: TimedConfig$inboundSchema.optional(), +}); + +/** @internal */ +export type DigestTimedMetadata$Outbound = { + amount?: number | undefined; + unit?: string | undefined; + digestKey?: string | undefined; + type: string; + timed?: TimedConfig$Outbound | undefined; +}; + +/** @internal */ +export const DigestTimedMetadata$outboundSchema: z.ZodType< + DigestTimedMetadata$Outbound, + z.ZodTypeDef, + DigestTimedMetadata +> = z.object({ + amount: z.number().optional(), + unit: DigestTimedMetadataUnit$outboundSchema.optional(), + digestKey: z.string().optional(), + type: DigestTimedMetadataType$outboundSchema, + timed: TimedConfig$outboundSchema.optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace DigestTimedMetadata$ { + /** @deprecated use `DigestTimedMetadata$inboundSchema` instead. */ + export const inboundSchema = DigestTimedMetadata$inboundSchema; + /** @deprecated use `DigestTimedMetadata$outboundSchema` instead. */ + export const outboundSchema = DigestTimedMetadata$outboundSchema; + /** @deprecated use `DigestTimedMetadata$Outbound` instead. */ + export type Outbound = DigestTimedMetadata$Outbound; +} + +export function digestTimedMetadataToJSON( + digestTimedMetadata: DigestTimedMetadata, +): string { + return JSON.stringify( + DigestTimedMetadata$outboundSchema.parse(digestTimedMetadata), + ); +} + +export function digestTimedMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DigestTimedMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DigestTimedMetadata' from JSON`, + ); +} diff --git a/src/models/components/emailblock.ts b/src/models/components/emailblock.ts new file mode 100644 index 00000000..1f59f8be --- /dev/null +++ b/src/models/components/emailblock.ts @@ -0,0 +1,108 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + EmailBlockStyles, + EmailBlockStyles$inboundSchema, + EmailBlockStyles$Outbound, + EmailBlockStyles$outboundSchema, +} from "./emailblockstyles.js"; + +export const EmailBlockType = { + Button: "button", + Text: "text", +} as const; +export type EmailBlockType = ClosedEnum; + +export type EmailBlock = { + type: EmailBlockType; + content: string; + url?: string | undefined; + styles?: EmailBlockStyles | undefined; +}; + +/** @internal */ +export const EmailBlockType$inboundSchema: z.ZodNativeEnum< + typeof EmailBlockType +> = z.nativeEnum(EmailBlockType); + +/** @internal */ +export const EmailBlockType$outboundSchema: z.ZodNativeEnum< + typeof EmailBlockType +> = EmailBlockType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EmailBlockType$ { + /** @deprecated use `EmailBlockType$inboundSchema` instead. */ + export const inboundSchema = EmailBlockType$inboundSchema; + /** @deprecated use `EmailBlockType$outboundSchema` instead. */ + export const outboundSchema = EmailBlockType$outboundSchema; +} + +/** @internal */ +export const EmailBlock$inboundSchema: z.ZodType< + EmailBlock, + z.ZodTypeDef, + unknown +> = z.object({ + type: EmailBlockType$inboundSchema, + content: z.string(), + url: z.string().optional(), + styles: EmailBlockStyles$inboundSchema.optional(), +}); + +/** @internal */ +export type EmailBlock$Outbound = { + type: string; + content: string; + url?: string | undefined; + styles?: EmailBlockStyles$Outbound | undefined; +}; + +/** @internal */ +export const EmailBlock$outboundSchema: z.ZodType< + EmailBlock$Outbound, + z.ZodTypeDef, + EmailBlock +> = z.object({ + type: EmailBlockType$outboundSchema, + content: z.string(), + url: z.string().optional(), + styles: EmailBlockStyles$outboundSchema.optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EmailBlock$ { + /** @deprecated use `EmailBlock$inboundSchema` instead. */ + export const inboundSchema = EmailBlock$inboundSchema; + /** @deprecated use `EmailBlock$outboundSchema` instead. */ + export const outboundSchema = EmailBlock$outboundSchema; + /** @deprecated use `EmailBlock$Outbound` instead. */ + export type Outbound = EmailBlock$Outbound; +} + +export function emailBlockToJSON(emailBlock: EmailBlock): string { + return JSON.stringify(EmailBlock$outboundSchema.parse(emailBlock)); +} + +export function emailBlockFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EmailBlock$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EmailBlock' from JSON`, + ); +} diff --git a/src/models/components/emailblockstyles.ts b/src/models/components/emailblockstyles.ts new file mode 100644 index 00000000..7771a9ba --- /dev/null +++ b/src/models/components/emailblockstyles.ts @@ -0,0 +1,93 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const TextAlign = { + Center: "center", + Left: "left", + Right: "right", +} as const; +export type TextAlign = ClosedEnum; + +export type EmailBlockStyles = { + textAlign: TextAlign; +}; + +/** @internal */ +export const TextAlign$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(TextAlign); + +/** @internal */ +export const TextAlign$outboundSchema: z.ZodNativeEnum = + TextAlign$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TextAlign$ { + /** @deprecated use `TextAlign$inboundSchema` instead. */ + export const inboundSchema = TextAlign$inboundSchema; + /** @deprecated use `TextAlign$outboundSchema` instead. */ + export const outboundSchema = TextAlign$outboundSchema; +} + +/** @internal */ +export const EmailBlockStyles$inboundSchema: z.ZodType< + EmailBlockStyles, + z.ZodTypeDef, + unknown +> = z.object({ + textAlign: TextAlign$inboundSchema, +}); + +/** @internal */ +export type EmailBlockStyles$Outbound = { + textAlign: string; +}; + +/** @internal */ +export const EmailBlockStyles$outboundSchema: z.ZodType< + EmailBlockStyles$Outbound, + z.ZodTypeDef, + EmailBlockStyles +> = z.object({ + textAlign: TextAlign$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EmailBlockStyles$ { + /** @deprecated use `EmailBlockStyles$inboundSchema` instead. */ + export const inboundSchema = EmailBlockStyles$inboundSchema; + /** @deprecated use `EmailBlockStyles$outboundSchema` instead. */ + export const outboundSchema = EmailBlockStyles$outboundSchema; + /** @deprecated use `EmailBlockStyles$Outbound` instead. */ + export type Outbound = EmailBlockStyles$Outbound; +} + +export function emailBlockStylesToJSON( + emailBlockStyles: EmailBlockStyles, +): string { + return JSON.stringify( + EmailBlockStyles$outboundSchema.parse(emailBlockStyles), + ); +} + +export function emailBlockStylesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EmailBlockStyles$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EmailBlockStyles' from JSON`, + ); +} diff --git a/src/models/components/environmentresponsedto.ts b/src/models/components/environmentresponsedto.ts new file mode 100644 index 00000000..34a022ea --- /dev/null +++ b/src/models/components/environmentresponsedto.ts @@ -0,0 +1,103 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EnvironmentResponseDto = { + id?: string | undefined; + name: string; + organizationId: string; + identifier: string; + apiKeys?: Array | undefined; + parentId: string; + slug?: string | undefined; +}; + +/** @internal */ +export const EnvironmentResponseDto$inboundSchema: z.ZodType< + EnvironmentResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + name: z.string(), + _organizationId: z.string(), + identifier: z.string(), + apiKeys: z.array(z.string()).optional(), + _parentId: z.string(), + slug: z.string().optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", + "_parentId": "parentId", + }); +}); + +/** @internal */ +export type EnvironmentResponseDto$Outbound = { + _id?: string | undefined; + name: string; + _organizationId: string; + identifier: string; + apiKeys?: Array | undefined; + _parentId: string; + slug?: string | undefined; +}; + +/** @internal */ +export const EnvironmentResponseDto$outboundSchema: z.ZodType< + EnvironmentResponseDto$Outbound, + z.ZodTypeDef, + EnvironmentResponseDto +> = z.object({ + id: z.string().optional(), + name: z.string(), + organizationId: z.string(), + identifier: z.string(), + apiKeys: z.array(z.string()).optional(), + parentId: z.string(), + slug: z.string().optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + organizationId: "_organizationId", + parentId: "_parentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EnvironmentResponseDto$ { + /** @deprecated use `EnvironmentResponseDto$inboundSchema` instead. */ + export const inboundSchema = EnvironmentResponseDto$inboundSchema; + /** @deprecated use `EnvironmentResponseDto$outboundSchema` instead. */ + export const outboundSchema = EnvironmentResponseDto$outboundSchema; + /** @deprecated use `EnvironmentResponseDto$Outbound` instead. */ + export type Outbound = EnvironmentResponseDto$Outbound; +} + +export function environmentResponseDtoToJSON( + environmentResponseDto: EnvironmentResponseDto, +): string { + return JSON.stringify( + EnvironmentResponseDto$outboundSchema.parse(environmentResponseDto), + ); +} + +export function environmentResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EnvironmentResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EnvironmentResponseDto' from JSON`, + ); +} diff --git a/src/models/components/executiondetailsresponsedto.ts b/src/models/components/executiondetailsresponsedto.ts new file mode 100644 index 00000000..4f9059c9 --- /dev/null +++ b/src/models/components/executiondetailsresponsedto.ts @@ -0,0 +1,244 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const Channel = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", + Digest: "digest", + Trigger: "trigger", + Delay: "delay", + Custom: "custom", +} as const; +export type Channel = ClosedEnum; + +export const Source = { + Credentials: "Credentials", + Internal: "Internal", + Payload: "Payload", + Webhook: "Webhook", +} as const; +export type Source = ClosedEnum; + +export const Status = { + Success: "Success", + Warning: "Warning", + Failed: "Failed", + Pending: "Pending", + Queued: "Queued", + ReadConfirmation: "ReadConfirmation", +} as const; +export type Status = ClosedEnum; + +export type ExecutionDetailsResponseDto = { + id?: string | undefined; + organizationId: string; + jobId: string; + environmentId: string; + notificationId: string; + notificationTemplateId: string; + subscriberId: string; + messageId?: string | undefined; + providerId?: string | undefined; + transactionId: string; + channel: Channel; + detail: string; + source: Source; + status: Status; + isTest: boolean; + isRetry: boolean; + createdAt?: string | undefined; +}; + +/** @internal */ +export const Channel$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Channel); + +/** @internal */ +export const Channel$outboundSchema: z.ZodNativeEnum = + Channel$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Channel$ { + /** @deprecated use `Channel$inboundSchema` instead. */ + export const inboundSchema = Channel$inboundSchema; + /** @deprecated use `Channel$outboundSchema` instead. */ + export const outboundSchema = Channel$outboundSchema; +} + +/** @internal */ +export const Source$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Source); + +/** @internal */ +export const Source$outboundSchema: z.ZodNativeEnum = + Source$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Source$ { + /** @deprecated use `Source$inboundSchema` instead. */ + export const inboundSchema = Source$inboundSchema; + /** @deprecated use `Source$outboundSchema` instead. */ + export const outboundSchema = Source$outboundSchema; +} + +/** @internal */ +export const Status$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Status); + +/** @internal */ +export const Status$outboundSchema: z.ZodNativeEnum = + Status$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Status$ { + /** @deprecated use `Status$inboundSchema` instead. */ + export const inboundSchema = Status$inboundSchema; + /** @deprecated use `Status$outboundSchema` instead. */ + export const outboundSchema = Status$outboundSchema; +} + +/** @internal */ +export const ExecutionDetailsResponseDto$inboundSchema: z.ZodType< + ExecutionDetailsResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + _organizationId: z.string(), + _jobId: z.string(), + _environmentId: z.string(), + _notificationId: z.string(), + _notificationTemplateId: z.string(), + _subscriberId: z.string(), + _messageId: z.string().optional(), + providerId: z.string().optional(), + transactionId: z.string(), + channel: Channel$inboundSchema, + detail: z.string(), + source: Source$inboundSchema, + status: Status$inboundSchema, + isTest: z.boolean(), + isRetry: z.boolean(), + createdAt: z.string().optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", + "_jobId": "jobId", + "_environmentId": "environmentId", + "_notificationId": "notificationId", + "_notificationTemplateId": "notificationTemplateId", + "_subscriberId": "subscriberId", + "_messageId": "messageId", + }); +}); + +/** @internal */ +export type ExecutionDetailsResponseDto$Outbound = { + _id?: string | undefined; + _organizationId: string; + _jobId: string; + _environmentId: string; + _notificationId: string; + _notificationTemplateId: string; + _subscriberId: string; + _messageId?: string | undefined; + providerId?: string | undefined; + transactionId: string; + channel: string; + detail: string; + source: string; + status: string; + isTest: boolean; + isRetry: boolean; + createdAt?: string | undefined; +}; + +/** @internal */ +export const ExecutionDetailsResponseDto$outboundSchema: z.ZodType< + ExecutionDetailsResponseDto$Outbound, + z.ZodTypeDef, + ExecutionDetailsResponseDto +> = z.object({ + id: z.string().optional(), + organizationId: z.string(), + jobId: z.string(), + environmentId: z.string(), + notificationId: z.string(), + notificationTemplateId: z.string(), + subscriberId: z.string(), + messageId: z.string().optional(), + providerId: z.string().optional(), + transactionId: z.string(), + channel: Channel$outboundSchema, + detail: z.string(), + source: Source$outboundSchema, + status: Status$outboundSchema, + isTest: z.boolean(), + isRetry: z.boolean(), + createdAt: z.string().optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + organizationId: "_organizationId", + jobId: "_jobId", + environmentId: "_environmentId", + notificationId: "_notificationId", + notificationTemplateId: "_notificationTemplateId", + subscriberId: "_subscriberId", + messageId: "_messageId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ExecutionDetailsResponseDto$ { + /** @deprecated use `ExecutionDetailsResponseDto$inboundSchema` instead. */ + export const inboundSchema = ExecutionDetailsResponseDto$inboundSchema; + /** @deprecated use `ExecutionDetailsResponseDto$outboundSchema` instead. */ + export const outboundSchema = ExecutionDetailsResponseDto$outboundSchema; + /** @deprecated use `ExecutionDetailsResponseDto$Outbound` instead. */ + export type Outbound = ExecutionDetailsResponseDto$Outbound; +} + +export function executionDetailsResponseDtoToJSON( + executionDetailsResponseDto: ExecutionDetailsResponseDto, +): string { + return JSON.stringify( + ExecutionDetailsResponseDto$outboundSchema.parse( + executionDetailsResponseDto, + ), + ); +} + +export function executionDetailsResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ExecutionDetailsResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ExecutionDetailsResponseDto' from JSON`, + ); +} diff --git a/src/models/components/feedresponsedto.ts b/src/models/components/feedresponsedto.ts new file mode 100644 index 00000000..dd231d97 --- /dev/null +++ b/src/models/components/feedresponsedto.ts @@ -0,0 +1,80 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type FeedResponseDto = { + totalCount?: number | undefined; + hasMore: boolean; + data: Array; + pageSize: number; + page: number; +}; + +/** @internal */ +export const FeedResponseDto$inboundSchema: z.ZodType< + FeedResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + totalCount: z.number().optional(), + hasMore: z.boolean(), + data: z.array(z.string()), + pageSize: z.number(), + page: z.number(), +}); + +/** @internal */ +export type FeedResponseDto$Outbound = { + totalCount?: number | undefined; + hasMore: boolean; + data: Array; + pageSize: number; + page: number; +}; + +/** @internal */ +export const FeedResponseDto$outboundSchema: z.ZodType< + FeedResponseDto$Outbound, + z.ZodTypeDef, + FeedResponseDto +> = z.object({ + totalCount: z.number().optional(), + hasMore: z.boolean(), + data: z.array(z.string()), + pageSize: z.number(), + page: z.number(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace FeedResponseDto$ { + /** @deprecated use `FeedResponseDto$inboundSchema` instead. */ + export const inboundSchema = FeedResponseDto$inboundSchema; + /** @deprecated use `FeedResponseDto$outboundSchema` instead. */ + export const outboundSchema = FeedResponseDto$outboundSchema; + /** @deprecated use `FeedResponseDto$Outbound` instead. */ + export type Outbound = FeedResponseDto$Outbound; +} + +export function feedResponseDtoToJSON( + feedResponseDto: FeedResponseDto, +): string { + return JSON.stringify(FeedResponseDto$outboundSchema.parse(feedResponseDto)); +} + +export function feedResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FeedResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FeedResponseDto' from JSON`, + ); +} diff --git a/src/models/components/fieldfilterpart.ts b/src/models/components/fieldfilterpart.ts new file mode 100644 index 00000000..80796872 --- /dev/null +++ b/src/models/components/fieldfilterpart.ts @@ -0,0 +1,137 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const Operator = { + Larger: "LARGER", + Smaller: "SMALLER", + LargerEqual: "LARGER_EQUAL", + SmallerEqual: "SMALLER_EQUAL", + Equal: "EQUAL", + NotEqual: "NOT_EQUAL", + AllIn: "ALL_IN", + AnyIn: "ANY_IN", + NotIn: "NOT_IN", + Between: "BETWEEN", + NotBetween: "NOT_BETWEEN", + Like: "LIKE", + NotLike: "NOT_LIKE", + In: "IN", +} as const; +export type Operator = ClosedEnum; + +export const On = { + Subscriber: "subscriber", + Payload: "payload", +} as const; +export type On = ClosedEnum; + +export type FieldFilterPart = { + field: string; + value: string; + operator: Operator; + on: On; +}; + +/** @internal */ +export const Operator$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Operator); + +/** @internal */ +export const Operator$outboundSchema: z.ZodNativeEnum = + Operator$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Operator$ { + /** @deprecated use `Operator$inboundSchema` instead. */ + export const inboundSchema = Operator$inboundSchema; + /** @deprecated use `Operator$outboundSchema` instead. */ + export const outboundSchema = Operator$outboundSchema; +} + +/** @internal */ +export const On$inboundSchema: z.ZodNativeEnum = z.nativeEnum(On); + +/** @internal */ +export const On$outboundSchema: z.ZodNativeEnum = On$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace On$ { + /** @deprecated use `On$inboundSchema` instead. */ + export const inboundSchema = On$inboundSchema; + /** @deprecated use `On$outboundSchema` instead. */ + export const outboundSchema = On$outboundSchema; +} + +/** @internal */ +export const FieldFilterPart$inboundSchema: z.ZodType< + FieldFilterPart, + z.ZodTypeDef, + unknown +> = z.object({ + field: z.string(), + value: z.string(), + operator: Operator$inboundSchema, + on: On$inboundSchema, +}); + +/** @internal */ +export type FieldFilterPart$Outbound = { + field: string; + value: string; + operator: string; + on: string; +}; + +/** @internal */ +export const FieldFilterPart$outboundSchema: z.ZodType< + FieldFilterPart$Outbound, + z.ZodTypeDef, + FieldFilterPart +> = z.object({ + field: z.string(), + value: z.string(), + operator: Operator$outboundSchema, + on: On$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace FieldFilterPart$ { + /** @deprecated use `FieldFilterPart$inboundSchema` instead. */ + export const inboundSchema = FieldFilterPart$inboundSchema; + /** @deprecated use `FieldFilterPart$outboundSchema` instead. */ + export const outboundSchema = FieldFilterPart$outboundSchema; + /** @deprecated use `FieldFilterPart$Outbound` instead. */ + export type Outbound = FieldFilterPart$Outbound; +} + +export function fieldFilterPartToJSON( + fieldFilterPart: FieldFilterPart, +): string { + return JSON.stringify(FieldFilterPart$outboundSchema.parse(fieldFilterPart)); +} + +export function fieldFilterPartFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FieldFilterPart$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FieldFilterPart' from JSON`, + ); +} diff --git a/src/models/components/filtertopicsresponsedto.ts b/src/models/components/filtertopicsresponsedto.ts new file mode 100644 index 00000000..ca44b57f --- /dev/null +++ b/src/models/components/filtertopicsresponsedto.ts @@ -0,0 +1,84 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + TopicDto, + TopicDto$inboundSchema, + TopicDto$Outbound, + TopicDto$outboundSchema, +} from "./topicdto.js"; + +export type FilterTopicsResponseDto = { + data: Array; + page: number; + pageSize: number; + totalCount: number; +}; + +/** @internal */ +export const FilterTopicsResponseDto$inboundSchema: z.ZodType< + FilterTopicsResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + data: z.array(TopicDto$inboundSchema), + page: z.number(), + pageSize: z.number(), + totalCount: z.number(), +}); + +/** @internal */ +export type FilterTopicsResponseDto$Outbound = { + data: Array; + page: number; + pageSize: number; + totalCount: number; +}; + +/** @internal */ +export const FilterTopicsResponseDto$outboundSchema: z.ZodType< + FilterTopicsResponseDto$Outbound, + z.ZodTypeDef, + FilterTopicsResponseDto +> = z.object({ + data: z.array(TopicDto$outboundSchema), + page: z.number(), + pageSize: z.number(), + totalCount: z.number(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace FilterTopicsResponseDto$ { + /** @deprecated use `FilterTopicsResponseDto$inboundSchema` instead. */ + export const inboundSchema = FilterTopicsResponseDto$inboundSchema; + /** @deprecated use `FilterTopicsResponseDto$outboundSchema` instead. */ + export const outboundSchema = FilterTopicsResponseDto$outboundSchema; + /** @deprecated use `FilterTopicsResponseDto$Outbound` instead. */ + export type Outbound = FilterTopicsResponseDto$Outbound; +} + +export function filterTopicsResponseDtoToJSON( + filterTopicsResponseDto: FilterTopicsResponseDto, +): string { + return JSON.stringify( + FilterTopicsResponseDto$outboundSchema.parse(filterTopicsResponseDto), + ); +} + +export function filterTopicsResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FilterTopicsResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FilterTopicsResponseDto' from JSON`, + ); +} diff --git a/src/models/components/getsubscriberpreferencesresponsedto.ts b/src/models/components/getsubscriberpreferencesresponsedto.ts new file mode 100644 index 00000000..23eaa71f --- /dev/null +++ b/src/models/components/getsubscriberpreferencesresponsedto.ts @@ -0,0 +1,93 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + Preference, + Preference$inboundSchema, + Preference$Outbound, + Preference$outboundSchema, +} from "./preference.js"; +import { + TemplateResponse, + TemplateResponse$inboundSchema, + TemplateResponse$Outbound, + TemplateResponse$outboundSchema, +} from "./templateresponse.js"; + +export type GetSubscriberPreferencesResponseDto = { + /** + * The workflow information and if it is critical or not + */ + template?: TemplateResponse | undefined; + /** + * The preferences of the subscriber regarding the related workflow + */ + preference: Preference; +}; + +/** @internal */ +export const GetSubscriberPreferencesResponseDto$inboundSchema: z.ZodType< + GetSubscriberPreferencesResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + template: TemplateResponse$inboundSchema.optional(), + preference: Preference$inboundSchema, +}); + +/** @internal */ +export type GetSubscriberPreferencesResponseDto$Outbound = { + template?: TemplateResponse$Outbound | undefined; + preference: Preference$Outbound; +}; + +/** @internal */ +export const GetSubscriberPreferencesResponseDto$outboundSchema: z.ZodType< + GetSubscriberPreferencesResponseDto$Outbound, + z.ZodTypeDef, + GetSubscriberPreferencesResponseDto +> = z.object({ + template: TemplateResponse$outboundSchema.optional(), + preference: Preference$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetSubscriberPreferencesResponseDto$ { + /** @deprecated use `GetSubscriberPreferencesResponseDto$inboundSchema` instead. */ + export const inboundSchema = + GetSubscriberPreferencesResponseDto$inboundSchema; + /** @deprecated use `GetSubscriberPreferencesResponseDto$outboundSchema` instead. */ + export const outboundSchema = + GetSubscriberPreferencesResponseDto$outboundSchema; + /** @deprecated use `GetSubscriberPreferencesResponseDto$Outbound` instead. */ + export type Outbound = GetSubscriberPreferencesResponseDto$Outbound; +} + +export function getSubscriberPreferencesResponseDtoToJSON( + getSubscriberPreferencesResponseDto: GetSubscriberPreferencesResponseDto, +): string { + return JSON.stringify( + GetSubscriberPreferencesResponseDto$outboundSchema.parse( + getSubscriberPreferencesResponseDto, + ), + ); +} + +export function getSubscriberPreferencesResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + GetSubscriberPreferencesResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetSubscriberPreferencesResponseDto' from JSON`, + ); +} diff --git a/src/models/components/gettopicresponsedto.ts b/src/models/components/gettopicresponsedto.ts new file mode 100644 index 00000000..d99b61c4 --- /dev/null +++ b/src/models/components/gettopicresponsedto.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type GetTopicResponseDto = { + id?: string | undefined; + organizationId: string; + environmentId: string; + key: string; + name: string; + subscribers: Array; +}; + +/** @internal */ +export const GetTopicResponseDto$inboundSchema: z.ZodType< + GetTopicResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + _organizationId: z.string(), + _environmentId: z.string(), + key: z.string(), + name: z.string(), + subscribers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", + "_environmentId": "environmentId", + }); +}); + +/** @internal */ +export type GetTopicResponseDto$Outbound = { + _id?: string | undefined; + _organizationId: string; + _environmentId: string; + key: string; + name: string; + subscribers: Array; +}; + +/** @internal */ +export const GetTopicResponseDto$outboundSchema: z.ZodType< + GetTopicResponseDto$Outbound, + z.ZodTypeDef, + GetTopicResponseDto +> = z.object({ + id: z.string().optional(), + organizationId: z.string(), + environmentId: z.string(), + key: z.string(), + name: z.string(), + subscribers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + id: "_id", + organizationId: "_organizationId", + environmentId: "_environmentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace GetTopicResponseDto$ { + /** @deprecated use `GetTopicResponseDto$inboundSchema` instead. */ + export const inboundSchema = GetTopicResponseDto$inboundSchema; + /** @deprecated use `GetTopicResponseDto$outboundSchema` instead. */ + export const outboundSchema = GetTopicResponseDto$outboundSchema; + /** @deprecated use `GetTopicResponseDto$Outbound` instead. */ + export type Outbound = GetTopicResponseDto$Outbound; +} + +export function getTopicResponseDtoToJSON( + getTopicResponseDto: GetTopicResponseDto, +): string { + return JSON.stringify( + GetTopicResponseDto$outboundSchema.parse(getTopicResponseDto), + ); +} + +export function getTopicResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetTopicResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetTopicResponseDto' from JSON`, + ); +} diff --git a/src/models/components/index.ts b/src/models/components/index.ts new file mode 100644 index 00000000..9d1489e2 --- /dev/null +++ b/src/models/components/index.ts @@ -0,0 +1,85 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export * from "./activitiesresponsedto.js"; +export * from "./activitygraphstatesresponse.js"; +export * from "./activitynotificationresponsedto.js"; +export * from "./activitynotificationsubscriberresponsedto.js"; +export * from "./activitynotificationtemplateresponsedto.js"; +export * from "./activitystatsresponsedto.js"; +export * from "./addsubscribersrequestdto.js"; +export * from "./apikey.js"; +export * from "./bulksubscribercreatedto.js"; +export * from "./bulktriggereventdto.js"; +export * from "./channelcredentials.js"; +export * from "./channelpreference.js"; +export * from "./channelsettings.js"; +export * from "./createintegrationrequestdto.js"; +export * from "./createnotificationgrouprequestdto.js"; +export * from "./createsubscriberrequestdto.js"; +export * from "./createtopicrequestdto.js"; +export * from "./createtopicresponsedto.js"; +export * from "./credentialsdto.js"; +export * from "./databooleandto.js"; +export * from "./delayregularmetadata.js"; +export * from "./delayscheduledmetadata.js"; +export * from "./deletemessageresponsedto.js"; +export * from "./deletenotificationgroupresponsedto.js"; +export * from "./deletesubscriberresponsedto.js"; +export * from "./digestregularmetadata.js"; +export * from "./digesttimedmetadata.js"; +export * from "./emailblock.js"; +export * from "./emailblockstyles.js"; +export * from "./environmentresponsedto.js"; +export * from "./executiondetailsresponsedto.js"; +export * from "./feedresponsedto.js"; +export * from "./fieldfilterpart.js"; +export * from "./filtertopicsresponsedto.js"; +export * from "./getsubscriberpreferencesresponsedto.js"; +export * from "./gettopicresponsedto.js"; +export * from "./integrationresponsedto.js"; +export * from "./markallmessageasrequestdto.js"; +export * from "./markmessageactionasseendto.js"; +export * from "./messageaction.js"; +export * from "./messageactionresult.js"; +export * from "./messagebutton.js"; +export * from "./messagecta.js"; +export * from "./messagectadata.js"; +export * from "./messageentity.js"; +export * from "./messagemarkasrequestdto.js"; +export * from "./messageresponsedto.js"; +export * from "./messagetemplate.js"; +export * from "./notificationgroup.js"; +export * from "./notificationgroupresponsedto.js"; +export * from "./notificationstep.js"; +export * from "./notificationstepvariant.js"; +export * from "./notificationtrigger.js"; +export * from "./notificationtriggervariable.js"; +export * from "./preference.js"; +export * from "./preferencechannels.js"; +export * from "./removesubscribersrequestdto.js"; +export * from "./renametopicrequestdto.js"; +export * from "./renametopicresponsedto.js"; +export * from "./security.js"; +export * from "./stepfilter.js"; +export * from "./subscriberpayloaddto.js"; +export * from "./subscriberresponsedto.js"; +export * from "./templateresponse.js"; +export * from "./tenantpayloaddto.js"; +export * from "./timedconfig.js"; +export * from "./topicdto.js"; +export * from "./topicpayloaddto.js"; +export * from "./topicsubscriberdto.js"; +export * from "./triggereventrequestdto.js"; +export * from "./triggereventresponsedto.js"; +export * from "./triggereventtoallrequestdto.js"; +export * from "./unseencountresponse.js"; +export * from "./updateintegrationrequestdto.js"; +export * from "./updatesubscriberchannelrequestdto.js"; +export * from "./updatesubscriberglobalpreferencesrequestdto.js"; +export * from "./updatesubscriberonlineflagrequestdto.js"; +export * from "./updatesubscriberpreferencerequestdto.js"; +export * from "./updatesubscriberpreferenceresponsedto.js"; +export * from "./updatesubscriberrequestdto.js"; +export * from "./workflowresponse.js"; diff --git a/src/models/components/integrationresponsedto.ts b/src/models/components/integrationresponsedto.ts new file mode 100644 index 00000000..32f14192 --- /dev/null +++ b/src/models/components/integrationresponsedto.ts @@ -0,0 +1,176 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + CredentialsDto, + CredentialsDto$inboundSchema, + CredentialsDto$Outbound, + CredentialsDto$outboundSchema, +} from "./credentialsdto.js"; +import { + StepFilter, + StepFilter$inboundSchema, + StepFilter$Outbound, + StepFilter$outboundSchema, +} from "./stepfilter.js"; + +export const IntegrationResponseDtoChannel = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +export type IntegrationResponseDtoChannel = ClosedEnum< + typeof IntegrationResponseDtoChannel +>; + +export type IntegrationResponseDto = { + id?: string | undefined; + environmentId: string; + organizationId: string; + name: string; + identifier: string; + providerId: string; + channel: IntegrationResponseDtoChannel; + credentials: CredentialsDto; + active: boolean; + deleted: boolean; + deletedAt: string; + deletedBy: string; + primary: boolean; + conditions?: Array | undefined; +}; + +/** @internal */ +export const IntegrationResponseDtoChannel$inboundSchema: z.ZodNativeEnum< + typeof IntegrationResponseDtoChannel +> = z.nativeEnum(IntegrationResponseDtoChannel); + +/** @internal */ +export const IntegrationResponseDtoChannel$outboundSchema: z.ZodNativeEnum< + typeof IntegrationResponseDtoChannel +> = IntegrationResponseDtoChannel$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationResponseDtoChannel$ { + /** @deprecated use `IntegrationResponseDtoChannel$inboundSchema` instead. */ + export const inboundSchema = IntegrationResponseDtoChannel$inboundSchema; + /** @deprecated use `IntegrationResponseDtoChannel$outboundSchema` instead. */ + export const outboundSchema = IntegrationResponseDtoChannel$outboundSchema; +} + +/** @internal */ +export const IntegrationResponseDto$inboundSchema: z.ZodType< + IntegrationResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + _environmentId: z.string(), + _organizationId: z.string(), + name: z.string(), + identifier: z.string(), + providerId: z.string(), + channel: IntegrationResponseDtoChannel$inboundSchema, + credentials: CredentialsDto$inboundSchema, + active: z.boolean(), + deleted: z.boolean(), + deletedAt: z.string(), + deletedBy: z.string(), + primary: z.boolean(), + conditions: z.array(StepFilter$inboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_environmentId": "environmentId", + "_organizationId": "organizationId", + }); +}); + +/** @internal */ +export type IntegrationResponseDto$Outbound = { + _id?: string | undefined; + _environmentId: string; + _organizationId: string; + name: string; + identifier: string; + providerId: string; + channel: string; + credentials: CredentialsDto$Outbound; + active: boolean; + deleted: boolean; + deletedAt: string; + deletedBy: string; + primary: boolean; + conditions?: Array | undefined; +}; + +/** @internal */ +export const IntegrationResponseDto$outboundSchema: z.ZodType< + IntegrationResponseDto$Outbound, + z.ZodTypeDef, + IntegrationResponseDto +> = z.object({ + id: z.string().optional(), + environmentId: z.string(), + organizationId: z.string(), + name: z.string(), + identifier: z.string(), + providerId: z.string(), + channel: IntegrationResponseDtoChannel$outboundSchema, + credentials: CredentialsDto$outboundSchema, + active: z.boolean(), + deleted: z.boolean(), + deletedAt: z.string(), + deletedBy: z.string(), + primary: z.boolean(), + conditions: z.array(StepFilter$outboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + environmentId: "_environmentId", + organizationId: "_organizationId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationResponseDto$ { + /** @deprecated use `IntegrationResponseDto$inboundSchema` instead. */ + export const inboundSchema = IntegrationResponseDto$inboundSchema; + /** @deprecated use `IntegrationResponseDto$outboundSchema` instead. */ + export const outboundSchema = IntegrationResponseDto$outboundSchema; + /** @deprecated use `IntegrationResponseDto$Outbound` instead. */ + export type Outbound = IntegrationResponseDto$Outbound; +} + +export function integrationResponseDtoToJSON( + integrationResponseDto: IntegrationResponseDto, +): string { + return JSON.stringify( + IntegrationResponseDto$outboundSchema.parse(integrationResponseDto), + ); +} + +export function integrationResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => IntegrationResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'IntegrationResponseDto' from JSON`, + ); +} diff --git a/src/models/components/markallmessageasrequestdto.ts b/src/models/components/markallmessageasrequestdto.ts new file mode 100644 index 00000000..1258d034 --- /dev/null +++ b/src/models/components/markallmessageasrequestdto.ts @@ -0,0 +1,163 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * Optional feed identifier or array of feed identifiers + */ +export type FeedIdentifier = string | Array; + +/** + * Mark all subscriber messages as read, unread, seen or unseen + */ +export const MarkAllMessageAsRequestDtoMarkAs = { + Read: "read", + Seen: "seen", + Unread: "unread", + Unseen: "unseen", +} as const; +/** + * Mark all subscriber messages as read, unread, seen or unseen + */ +export type MarkAllMessageAsRequestDtoMarkAs = ClosedEnum< + typeof MarkAllMessageAsRequestDtoMarkAs +>; + +export type MarkAllMessageAsRequestDto = { + /** + * Optional feed identifier or array of feed identifiers + */ + feedIdentifier?: string | Array | undefined; + /** + * Mark all subscriber messages as read, unread, seen or unseen + */ + markAs: MarkAllMessageAsRequestDtoMarkAs; +}; + +/** @internal */ +export const FeedIdentifier$inboundSchema: z.ZodType< + FeedIdentifier, + z.ZodTypeDef, + unknown +> = z.union([z.string(), z.array(z.string())]); + +/** @internal */ +export type FeedIdentifier$Outbound = string | Array; + +/** @internal */ +export const FeedIdentifier$outboundSchema: z.ZodType< + FeedIdentifier$Outbound, + z.ZodTypeDef, + FeedIdentifier +> = z.union([z.string(), z.array(z.string())]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace FeedIdentifier$ { + /** @deprecated use `FeedIdentifier$inboundSchema` instead. */ + export const inboundSchema = FeedIdentifier$inboundSchema; + /** @deprecated use `FeedIdentifier$outboundSchema` instead. */ + export const outboundSchema = FeedIdentifier$outboundSchema; + /** @deprecated use `FeedIdentifier$Outbound` instead. */ + export type Outbound = FeedIdentifier$Outbound; +} + +export function feedIdentifierToJSON(feedIdentifier: FeedIdentifier): string { + return JSON.stringify(FeedIdentifier$outboundSchema.parse(feedIdentifier)); +} + +export function feedIdentifierFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FeedIdentifier$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FeedIdentifier' from JSON`, + ); +} + +/** @internal */ +export const MarkAllMessageAsRequestDtoMarkAs$inboundSchema: z.ZodNativeEnum< + typeof MarkAllMessageAsRequestDtoMarkAs +> = z.nativeEnum(MarkAllMessageAsRequestDtoMarkAs); + +/** @internal */ +export const MarkAllMessageAsRequestDtoMarkAs$outboundSchema: z.ZodNativeEnum< + typeof MarkAllMessageAsRequestDtoMarkAs +> = MarkAllMessageAsRequestDtoMarkAs$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkAllMessageAsRequestDtoMarkAs$ { + /** @deprecated use `MarkAllMessageAsRequestDtoMarkAs$inboundSchema` instead. */ + export const inboundSchema = MarkAllMessageAsRequestDtoMarkAs$inboundSchema; + /** @deprecated use `MarkAllMessageAsRequestDtoMarkAs$outboundSchema` instead. */ + export const outboundSchema = MarkAllMessageAsRequestDtoMarkAs$outboundSchema; +} + +/** @internal */ +export const MarkAllMessageAsRequestDto$inboundSchema: z.ZodType< + MarkAllMessageAsRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + feedIdentifier: z.union([z.string(), z.array(z.string())]).optional(), + markAs: MarkAllMessageAsRequestDtoMarkAs$inboundSchema, +}); + +/** @internal */ +export type MarkAllMessageAsRequestDto$Outbound = { + feedIdentifier?: string | Array | undefined; + markAs: string; +}; + +/** @internal */ +export const MarkAllMessageAsRequestDto$outboundSchema: z.ZodType< + MarkAllMessageAsRequestDto$Outbound, + z.ZodTypeDef, + MarkAllMessageAsRequestDto +> = z.object({ + feedIdentifier: z.union([z.string(), z.array(z.string())]).optional(), + markAs: MarkAllMessageAsRequestDtoMarkAs$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkAllMessageAsRequestDto$ { + /** @deprecated use `MarkAllMessageAsRequestDto$inboundSchema` instead. */ + export const inboundSchema = MarkAllMessageAsRequestDto$inboundSchema; + /** @deprecated use `MarkAllMessageAsRequestDto$outboundSchema` instead. */ + export const outboundSchema = MarkAllMessageAsRequestDto$outboundSchema; + /** @deprecated use `MarkAllMessageAsRequestDto$Outbound` instead. */ + export type Outbound = MarkAllMessageAsRequestDto$Outbound; +} + +export function markAllMessageAsRequestDtoToJSON( + markAllMessageAsRequestDto: MarkAllMessageAsRequestDto, +): string { + return JSON.stringify( + MarkAllMessageAsRequestDto$outboundSchema.parse(markAllMessageAsRequestDto), + ); +} + +export function markAllMessageAsRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MarkAllMessageAsRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MarkAllMessageAsRequestDto' from JSON`, + ); +} diff --git a/src/models/components/markmessageactionasseendto.ts b/src/models/components/markmessageactionasseendto.ts new file mode 100644 index 00000000..4476a8f5 --- /dev/null +++ b/src/models/components/markmessageactionasseendto.ts @@ -0,0 +1,170 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * Message action status + */ +export const MarkMessageActionAsSeenDtoStatus = { + Pending: "pending", + Done: "done", +} as const; +/** + * Message action status + */ +export type MarkMessageActionAsSeenDtoStatus = ClosedEnum< + typeof MarkMessageActionAsSeenDtoStatus +>; + +/** + * Message action payload + */ +export type MarkMessageActionAsSeenDtoPayload = {}; + +export type MarkMessageActionAsSeenDto = { + /** + * Message action status + */ + status: MarkMessageActionAsSeenDtoStatus; + /** + * Message action payload + */ + payload?: MarkMessageActionAsSeenDtoPayload | undefined; +}; + +/** @internal */ +export const MarkMessageActionAsSeenDtoStatus$inboundSchema: z.ZodNativeEnum< + typeof MarkMessageActionAsSeenDtoStatus +> = z.nativeEnum(MarkMessageActionAsSeenDtoStatus); + +/** @internal */ +export const MarkMessageActionAsSeenDtoStatus$outboundSchema: z.ZodNativeEnum< + typeof MarkMessageActionAsSeenDtoStatus +> = MarkMessageActionAsSeenDtoStatus$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkMessageActionAsSeenDtoStatus$ { + /** @deprecated use `MarkMessageActionAsSeenDtoStatus$inboundSchema` instead. */ + export const inboundSchema = MarkMessageActionAsSeenDtoStatus$inboundSchema; + /** @deprecated use `MarkMessageActionAsSeenDtoStatus$outboundSchema` instead. */ + export const outboundSchema = MarkMessageActionAsSeenDtoStatus$outboundSchema; +} + +/** @internal */ +export const MarkMessageActionAsSeenDtoPayload$inboundSchema: z.ZodType< + MarkMessageActionAsSeenDtoPayload, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type MarkMessageActionAsSeenDtoPayload$Outbound = {}; + +/** @internal */ +export const MarkMessageActionAsSeenDtoPayload$outboundSchema: z.ZodType< + MarkMessageActionAsSeenDtoPayload$Outbound, + z.ZodTypeDef, + MarkMessageActionAsSeenDtoPayload +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkMessageActionAsSeenDtoPayload$ { + /** @deprecated use `MarkMessageActionAsSeenDtoPayload$inboundSchema` instead. */ + export const inboundSchema = MarkMessageActionAsSeenDtoPayload$inboundSchema; + /** @deprecated use `MarkMessageActionAsSeenDtoPayload$outboundSchema` instead. */ + export const outboundSchema = + MarkMessageActionAsSeenDtoPayload$outboundSchema; + /** @deprecated use `MarkMessageActionAsSeenDtoPayload$Outbound` instead. */ + export type Outbound = MarkMessageActionAsSeenDtoPayload$Outbound; +} + +export function markMessageActionAsSeenDtoPayloadToJSON( + markMessageActionAsSeenDtoPayload: MarkMessageActionAsSeenDtoPayload, +): string { + return JSON.stringify( + MarkMessageActionAsSeenDtoPayload$outboundSchema.parse( + markMessageActionAsSeenDtoPayload, + ), + ); +} + +export function markMessageActionAsSeenDtoPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MarkMessageActionAsSeenDtoPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MarkMessageActionAsSeenDtoPayload' from JSON`, + ); +} + +/** @internal */ +export const MarkMessageActionAsSeenDto$inboundSchema: z.ZodType< + MarkMessageActionAsSeenDto, + z.ZodTypeDef, + unknown +> = z.object({ + status: MarkMessageActionAsSeenDtoStatus$inboundSchema, + payload: z.lazy(() => MarkMessageActionAsSeenDtoPayload$inboundSchema) + .optional(), +}); + +/** @internal */ +export type MarkMessageActionAsSeenDto$Outbound = { + status: string; + payload?: MarkMessageActionAsSeenDtoPayload$Outbound | undefined; +}; + +/** @internal */ +export const MarkMessageActionAsSeenDto$outboundSchema: z.ZodType< + MarkMessageActionAsSeenDto$Outbound, + z.ZodTypeDef, + MarkMessageActionAsSeenDto +> = z.object({ + status: MarkMessageActionAsSeenDtoStatus$outboundSchema, + payload: z.lazy(() => MarkMessageActionAsSeenDtoPayload$outboundSchema) + .optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkMessageActionAsSeenDto$ { + /** @deprecated use `MarkMessageActionAsSeenDto$inboundSchema` instead. */ + export const inboundSchema = MarkMessageActionAsSeenDto$inboundSchema; + /** @deprecated use `MarkMessageActionAsSeenDto$outboundSchema` instead. */ + export const outboundSchema = MarkMessageActionAsSeenDto$outboundSchema; + /** @deprecated use `MarkMessageActionAsSeenDto$Outbound` instead. */ + export type Outbound = MarkMessageActionAsSeenDto$Outbound; +} + +export function markMessageActionAsSeenDtoToJSON( + markMessageActionAsSeenDto: MarkMessageActionAsSeenDto, +): string { + return JSON.stringify( + MarkMessageActionAsSeenDto$outboundSchema.parse(markMessageActionAsSeenDto), + ); +} + +export function markMessageActionAsSeenDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MarkMessageActionAsSeenDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MarkMessageActionAsSeenDto' from JSON`, + ); +} diff --git a/src/models/components/messageaction.ts b/src/models/components/messageaction.ts new file mode 100644 index 00000000..9b865fc7 --- /dev/null +++ b/src/models/components/messageaction.ts @@ -0,0 +1,110 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + MessageActionResult, + MessageActionResult$inboundSchema, + MessageActionResult$Outbound, + MessageActionResult$outboundSchema, +} from "./messageactionresult.js"; +import { + MessageButton, + MessageButton$inboundSchema, + MessageButton$Outbound, + MessageButton$outboundSchema, +} from "./messagebutton.js"; + +export const MessageActionStatus = { + Pending: "pending", + Done: "done", +} as const; +export type MessageActionStatus = ClosedEnum; + +export type MessageAction = { + status?: MessageActionStatus | undefined; + buttons?: Array | undefined; + result?: MessageActionResult | undefined; +}; + +/** @internal */ +export const MessageActionStatus$inboundSchema: z.ZodNativeEnum< + typeof MessageActionStatus +> = z.nativeEnum(MessageActionStatus); + +/** @internal */ +export const MessageActionStatus$outboundSchema: z.ZodNativeEnum< + typeof MessageActionStatus +> = MessageActionStatus$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageActionStatus$ { + /** @deprecated use `MessageActionStatus$inboundSchema` instead. */ + export const inboundSchema = MessageActionStatus$inboundSchema; + /** @deprecated use `MessageActionStatus$outboundSchema` instead. */ + export const outboundSchema = MessageActionStatus$outboundSchema; +} + +/** @internal */ +export const MessageAction$inboundSchema: z.ZodType< + MessageAction, + z.ZodTypeDef, + unknown +> = z.object({ + status: MessageActionStatus$inboundSchema.optional(), + buttons: z.array(MessageButton$inboundSchema).optional(), + result: MessageActionResult$inboundSchema.optional(), +}); + +/** @internal */ +export type MessageAction$Outbound = { + status?: string | undefined; + buttons?: Array | undefined; + result?: MessageActionResult$Outbound | undefined; +}; + +/** @internal */ +export const MessageAction$outboundSchema: z.ZodType< + MessageAction$Outbound, + z.ZodTypeDef, + MessageAction +> = z.object({ + status: MessageActionStatus$outboundSchema.optional(), + buttons: z.array(MessageButton$outboundSchema).optional(), + result: MessageActionResult$outboundSchema.optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageAction$ { + /** @deprecated use `MessageAction$inboundSchema` instead. */ + export const inboundSchema = MessageAction$inboundSchema; + /** @deprecated use `MessageAction$outboundSchema` instead. */ + export const outboundSchema = MessageAction$outboundSchema; + /** @deprecated use `MessageAction$Outbound` instead. */ + export type Outbound = MessageAction$Outbound; +} + +export function messageActionToJSON(messageAction: MessageAction): string { + return JSON.stringify(MessageAction$outboundSchema.parse(messageAction)); +} + +export function messageActionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageAction$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageAction' from JSON`, + ); +} diff --git a/src/models/components/messageactionresult.ts b/src/models/components/messageactionresult.ts new file mode 100644 index 00000000..7a147d51 --- /dev/null +++ b/src/models/components/messageactionresult.ts @@ -0,0 +1,150 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type MessageActionResultPayload = {}; + +export const MessageActionResultType = { + Primary: "primary", + Secondary: "secondary", +} as const; +export type MessageActionResultType = ClosedEnum< + typeof MessageActionResultType +>; + +export type MessageActionResult = { + payload?: MessageActionResultPayload | undefined; + type?: MessageActionResultType | undefined; +}; + +/** @internal */ +export const MessageActionResultPayload$inboundSchema: z.ZodType< + MessageActionResultPayload, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type MessageActionResultPayload$Outbound = {}; + +/** @internal */ +export const MessageActionResultPayload$outboundSchema: z.ZodType< + MessageActionResultPayload$Outbound, + z.ZodTypeDef, + MessageActionResultPayload +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageActionResultPayload$ { + /** @deprecated use `MessageActionResultPayload$inboundSchema` instead. */ + export const inboundSchema = MessageActionResultPayload$inboundSchema; + /** @deprecated use `MessageActionResultPayload$outboundSchema` instead. */ + export const outboundSchema = MessageActionResultPayload$outboundSchema; + /** @deprecated use `MessageActionResultPayload$Outbound` instead. */ + export type Outbound = MessageActionResultPayload$Outbound; +} + +export function messageActionResultPayloadToJSON( + messageActionResultPayload: MessageActionResultPayload, +): string { + return JSON.stringify( + MessageActionResultPayload$outboundSchema.parse(messageActionResultPayload), + ); +} + +export function messageActionResultPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageActionResultPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageActionResultPayload' from JSON`, + ); +} + +/** @internal */ +export const MessageActionResultType$inboundSchema: z.ZodNativeEnum< + typeof MessageActionResultType +> = z.nativeEnum(MessageActionResultType); + +/** @internal */ +export const MessageActionResultType$outboundSchema: z.ZodNativeEnum< + typeof MessageActionResultType +> = MessageActionResultType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageActionResultType$ { + /** @deprecated use `MessageActionResultType$inboundSchema` instead. */ + export const inboundSchema = MessageActionResultType$inboundSchema; + /** @deprecated use `MessageActionResultType$outboundSchema` instead. */ + export const outboundSchema = MessageActionResultType$outboundSchema; +} + +/** @internal */ +export const MessageActionResult$inboundSchema: z.ZodType< + MessageActionResult, + z.ZodTypeDef, + unknown +> = z.object({ + payload: z.lazy(() => MessageActionResultPayload$inboundSchema).optional(), + type: MessageActionResultType$inboundSchema.optional(), +}); + +/** @internal */ +export type MessageActionResult$Outbound = { + payload?: MessageActionResultPayload$Outbound | undefined; + type?: string | undefined; +}; + +/** @internal */ +export const MessageActionResult$outboundSchema: z.ZodType< + MessageActionResult$Outbound, + z.ZodTypeDef, + MessageActionResult +> = z.object({ + payload: z.lazy(() => MessageActionResultPayload$outboundSchema).optional(), + type: MessageActionResultType$outboundSchema.optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageActionResult$ { + /** @deprecated use `MessageActionResult$inboundSchema` instead. */ + export const inboundSchema = MessageActionResult$inboundSchema; + /** @deprecated use `MessageActionResult$outboundSchema` instead. */ + export const outboundSchema = MessageActionResult$outboundSchema; + /** @deprecated use `MessageActionResult$Outbound` instead. */ + export type Outbound = MessageActionResult$Outbound; +} + +export function messageActionResultToJSON( + messageActionResult: MessageActionResult, +): string { + return JSON.stringify( + MessageActionResult$outboundSchema.parse(messageActionResult), + ); +} + +export function messageActionResultFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageActionResult$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageActionResult' from JSON`, + ); +} diff --git a/src/models/components/messagebutton.ts b/src/models/components/messagebutton.ts new file mode 100644 index 00000000..443f8b3f --- /dev/null +++ b/src/models/components/messagebutton.ts @@ -0,0 +1,98 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const MessageButtonType = { + Primary: "primary", + Secondary: "secondary", +} as const; +export type MessageButtonType = ClosedEnum; + +export type MessageButton = { + type: MessageButtonType; + content: string; + resultContent?: string | undefined; +}; + +/** @internal */ +export const MessageButtonType$inboundSchema: z.ZodNativeEnum< + typeof MessageButtonType +> = z.nativeEnum(MessageButtonType); + +/** @internal */ +export const MessageButtonType$outboundSchema: z.ZodNativeEnum< + typeof MessageButtonType +> = MessageButtonType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageButtonType$ { + /** @deprecated use `MessageButtonType$inboundSchema` instead. */ + export const inboundSchema = MessageButtonType$inboundSchema; + /** @deprecated use `MessageButtonType$outboundSchema` instead. */ + export const outboundSchema = MessageButtonType$outboundSchema; +} + +/** @internal */ +export const MessageButton$inboundSchema: z.ZodType< + MessageButton, + z.ZodTypeDef, + unknown +> = z.object({ + type: MessageButtonType$inboundSchema, + content: z.string(), + resultContent: z.string().optional(), +}); + +/** @internal */ +export type MessageButton$Outbound = { + type: string; + content: string; + resultContent?: string | undefined; +}; + +/** @internal */ +export const MessageButton$outboundSchema: z.ZodType< + MessageButton$Outbound, + z.ZodTypeDef, + MessageButton +> = z.object({ + type: MessageButtonType$outboundSchema, + content: z.string(), + resultContent: z.string().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageButton$ { + /** @deprecated use `MessageButton$inboundSchema` instead. */ + export const inboundSchema = MessageButton$inboundSchema; + /** @deprecated use `MessageButton$outboundSchema` instead. */ + export const outboundSchema = MessageButton$outboundSchema; + /** @deprecated use `MessageButton$Outbound` instead. */ + export type Outbound = MessageButton$Outbound; +} + +export function messageButtonToJSON(messageButton: MessageButton): string { + return JSON.stringify(MessageButton$outboundSchema.parse(messageButton)); +} + +export function messageButtonFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageButton$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageButton' from JSON`, + ); +} diff --git a/src/models/components/messagecta.ts b/src/models/components/messagecta.ts new file mode 100644 index 00000000..6560ba6d --- /dev/null +++ b/src/models/components/messagecta.ts @@ -0,0 +1,109 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + MessageAction, + MessageAction$inboundSchema, + MessageAction$Outbound, + MessageAction$outboundSchema, +} from "./messageaction.js"; +import { + MessageCTAData, + MessageCTAData$inboundSchema, + MessageCTAData$Outbound, + MessageCTAData$outboundSchema, +} from "./messagectadata.js"; + +export const MessageCTAType = { + Redirect: "redirect", +} as const; +export type MessageCTAType = ClosedEnum; + +export type MessageCTA = { + type?: MessageCTAType | undefined; + data: MessageCTAData; + action?: MessageAction | undefined; +}; + +/** @internal */ +export const MessageCTAType$inboundSchema: z.ZodNativeEnum< + typeof MessageCTAType +> = z.nativeEnum(MessageCTAType); + +/** @internal */ +export const MessageCTAType$outboundSchema: z.ZodNativeEnum< + typeof MessageCTAType +> = MessageCTAType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageCTAType$ { + /** @deprecated use `MessageCTAType$inboundSchema` instead. */ + export const inboundSchema = MessageCTAType$inboundSchema; + /** @deprecated use `MessageCTAType$outboundSchema` instead. */ + export const outboundSchema = MessageCTAType$outboundSchema; +} + +/** @internal */ +export const MessageCTA$inboundSchema: z.ZodType< + MessageCTA, + z.ZodTypeDef, + unknown +> = z.object({ + type: MessageCTAType$inboundSchema.optional(), + data: MessageCTAData$inboundSchema, + action: MessageAction$inboundSchema.optional(), +}); + +/** @internal */ +export type MessageCTA$Outbound = { + type?: string | undefined; + data: MessageCTAData$Outbound; + action?: MessageAction$Outbound | undefined; +}; + +/** @internal */ +export const MessageCTA$outboundSchema: z.ZodType< + MessageCTA$Outbound, + z.ZodTypeDef, + MessageCTA +> = z.object({ + type: MessageCTAType$outboundSchema.optional(), + data: MessageCTAData$outboundSchema, + action: MessageAction$outboundSchema.optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageCTA$ { + /** @deprecated use `MessageCTA$inboundSchema` instead. */ + export const inboundSchema = MessageCTA$inboundSchema; + /** @deprecated use `MessageCTA$outboundSchema` instead. */ + export const outboundSchema = MessageCTA$outboundSchema; + /** @deprecated use `MessageCTA$Outbound` instead. */ + export type Outbound = MessageCTA$Outbound; +} + +export function messageCTAToJSON(messageCTA: MessageCTA): string { + return JSON.stringify(MessageCTA$outboundSchema.parse(messageCTA)); +} + +export function messageCTAFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageCTA$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageCTA' from JSON`, + ); +} diff --git a/src/models/components/messagectadata.ts b/src/models/components/messagectadata.ts new file mode 100644 index 00000000..a5fef65a --- /dev/null +++ b/src/models/components/messagectadata.ts @@ -0,0 +1,62 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type MessageCTAData = { + url?: string | undefined; +}; + +/** @internal */ +export const MessageCTAData$inboundSchema: z.ZodType< + MessageCTAData, + z.ZodTypeDef, + unknown +> = z.object({ + url: z.string().optional(), +}); + +/** @internal */ +export type MessageCTAData$Outbound = { + url?: string | undefined; +}; + +/** @internal */ +export const MessageCTAData$outboundSchema: z.ZodType< + MessageCTAData$Outbound, + z.ZodTypeDef, + MessageCTAData +> = z.object({ + url: z.string().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageCTAData$ { + /** @deprecated use `MessageCTAData$inboundSchema` instead. */ + export const inboundSchema = MessageCTAData$inboundSchema; + /** @deprecated use `MessageCTAData$outboundSchema` instead. */ + export const outboundSchema = MessageCTAData$outboundSchema; + /** @deprecated use `MessageCTAData$Outbound` instead. */ + export type Outbound = MessageCTAData$Outbound; +} + +export function messageCTADataToJSON(messageCTAData: MessageCTAData): string { + return JSON.stringify(MessageCTAData$outboundSchema.parse(messageCTAData)); +} + +export function messageCTADataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageCTAData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageCTAData' from JSON`, + ); +} diff --git a/src/models/components/messageentity.ts b/src/models/components/messageentity.ts new file mode 100644 index 00000000..d65bebd2 --- /dev/null +++ b/src/models/components/messageentity.ts @@ -0,0 +1,54 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type MessageEntity = {}; + +/** @internal */ +export const MessageEntity$inboundSchema: z.ZodType< + MessageEntity, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type MessageEntity$Outbound = {}; + +/** @internal */ +export const MessageEntity$outboundSchema: z.ZodType< + MessageEntity$Outbound, + z.ZodTypeDef, + MessageEntity +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageEntity$ { + /** @deprecated use `MessageEntity$inboundSchema` instead. */ + export const inboundSchema = MessageEntity$inboundSchema; + /** @deprecated use `MessageEntity$outboundSchema` instead. */ + export const outboundSchema = MessageEntity$outboundSchema; + /** @deprecated use `MessageEntity$Outbound` instead. */ + export type Outbound = MessageEntity$Outbound; +} + +export function messageEntityToJSON(messageEntity: MessageEntity): string { + return JSON.stringify(MessageEntity$outboundSchema.parse(messageEntity)); +} + +export function messageEntityFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageEntity$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageEntity' from JSON`, + ); +} diff --git a/src/models/components/messagemarkasrequestdto.ts b/src/models/components/messagemarkasrequestdto.ts new file mode 100644 index 00000000..22b8a38a --- /dev/null +++ b/src/models/components/messagemarkasrequestdto.ts @@ -0,0 +1,144 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type MessageId = string | Array; + +export const MarkAs = { + Read: "read", + Seen: "seen", + Unread: "unread", + Unseen: "unseen", +} as const; +export type MarkAs = ClosedEnum; + +export type MessageMarkAsRequestDto = { + messageId: string | Array; + markAs: MarkAs; +}; + +/** @internal */ +export const MessageId$inboundSchema: z.ZodType< + MessageId, + z.ZodTypeDef, + unknown +> = z.union([z.string(), z.array(z.string())]); + +/** @internal */ +export type MessageId$Outbound = string | Array; + +/** @internal */ +export const MessageId$outboundSchema: z.ZodType< + MessageId$Outbound, + z.ZodTypeDef, + MessageId +> = z.union([z.string(), z.array(z.string())]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageId$ { + /** @deprecated use `MessageId$inboundSchema` instead. */ + export const inboundSchema = MessageId$inboundSchema; + /** @deprecated use `MessageId$outboundSchema` instead. */ + export const outboundSchema = MessageId$outboundSchema; + /** @deprecated use `MessageId$Outbound` instead. */ + export type Outbound = MessageId$Outbound; +} + +export function messageIdToJSON(messageId: MessageId): string { + return JSON.stringify(MessageId$outboundSchema.parse(messageId)); +} + +export function messageIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageId' from JSON`, + ); +} + +/** @internal */ +export const MarkAs$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(MarkAs); + +/** @internal */ +export const MarkAs$outboundSchema: z.ZodNativeEnum = + MarkAs$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MarkAs$ { + /** @deprecated use `MarkAs$inboundSchema` instead. */ + export const inboundSchema = MarkAs$inboundSchema; + /** @deprecated use `MarkAs$outboundSchema` instead. */ + export const outboundSchema = MarkAs$outboundSchema; +} + +/** @internal */ +export const MessageMarkAsRequestDto$inboundSchema: z.ZodType< + MessageMarkAsRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + messageId: z.union([z.string(), z.array(z.string())]), + markAs: MarkAs$inboundSchema, +}); + +/** @internal */ +export type MessageMarkAsRequestDto$Outbound = { + messageId: string | Array; + markAs: string; +}; + +/** @internal */ +export const MessageMarkAsRequestDto$outboundSchema: z.ZodType< + MessageMarkAsRequestDto$Outbound, + z.ZodTypeDef, + MessageMarkAsRequestDto +> = z.object({ + messageId: z.union([z.string(), z.array(z.string())]), + markAs: MarkAs$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageMarkAsRequestDto$ { + /** @deprecated use `MessageMarkAsRequestDto$inboundSchema` instead. */ + export const inboundSchema = MessageMarkAsRequestDto$inboundSchema; + /** @deprecated use `MessageMarkAsRequestDto$outboundSchema` instead. */ + export const outboundSchema = MessageMarkAsRequestDto$outboundSchema; + /** @deprecated use `MessageMarkAsRequestDto$Outbound` instead. */ + export type Outbound = MessageMarkAsRequestDto$Outbound; +} + +export function messageMarkAsRequestDtoToJSON( + messageMarkAsRequestDto: MessageMarkAsRequestDto, +): string { + return JSON.stringify( + MessageMarkAsRequestDto$outboundSchema.parse(messageMarkAsRequestDto), + ); +} + +export function messageMarkAsRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageMarkAsRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageMarkAsRequestDto' from JSON`, + ); +} diff --git a/src/models/components/messageresponsedto.ts b/src/models/components/messageresponsedto.ts new file mode 100644 index 00000000..eae7e2c5 --- /dev/null +++ b/src/models/components/messageresponsedto.ts @@ -0,0 +1,500 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + EmailBlock, + EmailBlock$inboundSchema, + EmailBlock$Outbound, + EmailBlock$outboundSchema, +} from "./emailblock.js"; +import { + MessageCTA, + MessageCTA$inboundSchema, + MessageCTA$Outbound, + MessageCTA$outboundSchema, +} from "./messagecta.js"; +import { + SubscriberResponseDto, + SubscriberResponseDto$inboundSchema, + SubscriberResponseDto$Outbound, + SubscriberResponseDto$outboundSchema, +} from "./subscriberresponsedto.js"; +import { + WorkflowResponse, + WorkflowResponse$inboundSchema, + WorkflowResponse$Outbound, + WorkflowResponse$outboundSchema, +} from "./workflowresponse.js"; + +export type Content = EmailBlock | string; + +export const MessageResponseDtoChannel = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +export type MessageResponseDtoChannel = ClosedEnum< + typeof MessageResponseDtoChannel +>; + +export type FeedId = {}; + +export const MessageResponseDtoStatus = { + Sent: "sent", + Error: "error", + Warning: "warning", +} as const; +export type MessageResponseDtoStatus = ClosedEnum< + typeof MessageResponseDtoStatus +>; + +/** + * The payload that was used to send the notification trigger + */ +export type MessageResponseDtoPayload = {}; + +/** + * Provider specific overrides used when triggering the notification + */ +export type MessageResponseDtoOverrides = {}; + +export type MessageResponseDto = { + id?: string | undefined; + templateId: string; + environmentId: string; + messageTemplateId: string; + organizationId: string; + notificationId: string; + subscriberId: string; + subscriber?: SubscriberResponseDto | undefined; + template?: WorkflowResponse | undefined; + templateIdentifier?: string | undefined; + createdAt: string; + lastSeenDate?: string | undefined; + lastReadDate?: string | undefined; + content: EmailBlock | string; + transactionId: string; + subject?: string | undefined; + channel: MessageResponseDtoChannel; + read: boolean; + seen: boolean; + email?: string | undefined; + phone?: string | undefined; + directWebhookUrl?: string | undefined; + providerId?: string | undefined; + deviceTokens?: Array | undefined; + title?: string | undefined; + cta: MessageCTA; + feedId?: FeedId | null | undefined; + status: MessageResponseDtoStatus; + errorId: string; + errorText: string; + /** + * The payload that was used to send the notification trigger + */ + payload: MessageResponseDtoPayload; + /** + * Provider specific overrides used when triggering the notification + */ + overrides: MessageResponseDtoOverrides; +}; + +/** @internal */ +export const Content$inboundSchema: z.ZodType = + z.union([EmailBlock$inboundSchema, z.string()]); + +/** @internal */ +export type Content$Outbound = EmailBlock$Outbound | string; + +/** @internal */ +export const Content$outboundSchema: z.ZodType< + Content$Outbound, + z.ZodTypeDef, + Content +> = z.union([EmailBlock$outboundSchema, z.string()]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Content$ { + /** @deprecated use `Content$inboundSchema` instead. */ + export const inboundSchema = Content$inboundSchema; + /** @deprecated use `Content$outboundSchema` instead. */ + export const outboundSchema = Content$outboundSchema; + /** @deprecated use `Content$Outbound` instead. */ + export type Outbound = Content$Outbound; +} + +export function contentToJSON(content: Content): string { + return JSON.stringify(Content$outboundSchema.parse(content)); +} + +export function contentFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Content$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Content' from JSON`, + ); +} + +/** @internal */ +export const MessageResponseDtoChannel$inboundSchema: z.ZodNativeEnum< + typeof MessageResponseDtoChannel +> = z.nativeEnum(MessageResponseDtoChannel); + +/** @internal */ +export const MessageResponseDtoChannel$outboundSchema: z.ZodNativeEnum< + typeof MessageResponseDtoChannel +> = MessageResponseDtoChannel$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageResponseDtoChannel$ { + /** @deprecated use `MessageResponseDtoChannel$inboundSchema` instead. */ + export const inboundSchema = MessageResponseDtoChannel$inboundSchema; + /** @deprecated use `MessageResponseDtoChannel$outboundSchema` instead. */ + export const outboundSchema = MessageResponseDtoChannel$outboundSchema; +} + +/** @internal */ +export const FeedId$inboundSchema: z.ZodType = z + .object({}); + +/** @internal */ +export type FeedId$Outbound = {}; + +/** @internal */ +export const FeedId$outboundSchema: z.ZodType< + FeedId$Outbound, + z.ZodTypeDef, + FeedId +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace FeedId$ { + /** @deprecated use `FeedId$inboundSchema` instead. */ + export const inboundSchema = FeedId$inboundSchema; + /** @deprecated use `FeedId$outboundSchema` instead. */ + export const outboundSchema = FeedId$outboundSchema; + /** @deprecated use `FeedId$Outbound` instead. */ + export type Outbound = FeedId$Outbound; +} + +export function feedIdToJSON(feedId: FeedId): string { + return JSON.stringify(FeedId$outboundSchema.parse(feedId)); +} + +export function feedIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => FeedId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'FeedId' from JSON`, + ); +} + +/** @internal */ +export const MessageResponseDtoStatus$inboundSchema: z.ZodNativeEnum< + typeof MessageResponseDtoStatus +> = z.nativeEnum(MessageResponseDtoStatus); + +/** @internal */ +export const MessageResponseDtoStatus$outboundSchema: z.ZodNativeEnum< + typeof MessageResponseDtoStatus +> = MessageResponseDtoStatus$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageResponseDtoStatus$ { + /** @deprecated use `MessageResponseDtoStatus$inboundSchema` instead. */ + export const inboundSchema = MessageResponseDtoStatus$inboundSchema; + /** @deprecated use `MessageResponseDtoStatus$outboundSchema` instead. */ + export const outboundSchema = MessageResponseDtoStatus$outboundSchema; +} + +/** @internal */ +export const MessageResponseDtoPayload$inboundSchema: z.ZodType< + MessageResponseDtoPayload, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type MessageResponseDtoPayload$Outbound = {}; + +/** @internal */ +export const MessageResponseDtoPayload$outboundSchema: z.ZodType< + MessageResponseDtoPayload$Outbound, + z.ZodTypeDef, + MessageResponseDtoPayload +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageResponseDtoPayload$ { + /** @deprecated use `MessageResponseDtoPayload$inboundSchema` instead. */ + export const inboundSchema = MessageResponseDtoPayload$inboundSchema; + /** @deprecated use `MessageResponseDtoPayload$outboundSchema` instead. */ + export const outboundSchema = MessageResponseDtoPayload$outboundSchema; + /** @deprecated use `MessageResponseDtoPayload$Outbound` instead. */ + export type Outbound = MessageResponseDtoPayload$Outbound; +} + +export function messageResponseDtoPayloadToJSON( + messageResponseDtoPayload: MessageResponseDtoPayload, +): string { + return JSON.stringify( + MessageResponseDtoPayload$outboundSchema.parse(messageResponseDtoPayload), + ); +} + +export function messageResponseDtoPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageResponseDtoPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageResponseDtoPayload' from JSON`, + ); +} + +/** @internal */ +export const MessageResponseDtoOverrides$inboundSchema: z.ZodType< + MessageResponseDtoOverrides, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type MessageResponseDtoOverrides$Outbound = {}; + +/** @internal */ +export const MessageResponseDtoOverrides$outboundSchema: z.ZodType< + MessageResponseDtoOverrides$Outbound, + z.ZodTypeDef, + MessageResponseDtoOverrides +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageResponseDtoOverrides$ { + /** @deprecated use `MessageResponseDtoOverrides$inboundSchema` instead. */ + export const inboundSchema = MessageResponseDtoOverrides$inboundSchema; + /** @deprecated use `MessageResponseDtoOverrides$outboundSchema` instead. */ + export const outboundSchema = MessageResponseDtoOverrides$outboundSchema; + /** @deprecated use `MessageResponseDtoOverrides$Outbound` instead. */ + export type Outbound = MessageResponseDtoOverrides$Outbound; +} + +export function messageResponseDtoOverridesToJSON( + messageResponseDtoOverrides: MessageResponseDtoOverrides, +): string { + return JSON.stringify( + MessageResponseDtoOverrides$outboundSchema.parse( + messageResponseDtoOverrides, + ), + ); +} + +export function messageResponseDtoOverridesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageResponseDtoOverrides$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageResponseDtoOverrides' from JSON`, + ); +} + +/** @internal */ +export const MessageResponseDto$inboundSchema: z.ZodType< + MessageResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + _templateId: z.string(), + _environmentId: z.string(), + _messageTemplateId: z.string(), + _organizationId: z.string(), + _notificationId: z.string(), + _subscriberId: z.string(), + subscriber: SubscriberResponseDto$inboundSchema.optional(), + template: WorkflowResponse$inboundSchema.optional(), + templateIdentifier: z.string().optional(), + createdAt: z.string(), + lastSeenDate: z.string().optional(), + lastReadDate: z.string().optional(), + content: z.union([EmailBlock$inboundSchema, z.string()]), + transactionId: z.string(), + subject: z.string().optional(), + channel: MessageResponseDtoChannel$inboundSchema, + read: z.boolean(), + seen: z.boolean(), + email: z.string().optional(), + phone: z.string().optional(), + directWebhookUrl: z.string().optional(), + providerId: z.string().optional(), + deviceTokens: z.array(z.string()).optional(), + title: z.string().optional(), + cta: MessageCTA$inboundSchema, + _feedId: z.nullable(z.lazy(() => FeedId$inboundSchema)).optional(), + status: MessageResponseDtoStatus$inboundSchema, + errorId: z.string(), + errorText: z.string(), + payload: z.lazy(() => MessageResponseDtoPayload$inboundSchema), + overrides: z.lazy(() => MessageResponseDtoOverrides$inboundSchema), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_templateId": "templateId", + "_environmentId": "environmentId", + "_messageTemplateId": "messageTemplateId", + "_organizationId": "organizationId", + "_notificationId": "notificationId", + "_subscriberId": "subscriberId", + "_feedId": "feedId", + }); +}); + +/** @internal */ +export type MessageResponseDto$Outbound = { + _id?: string | undefined; + _templateId: string; + _environmentId: string; + _messageTemplateId: string; + _organizationId: string; + _notificationId: string; + _subscriberId: string; + subscriber?: SubscriberResponseDto$Outbound | undefined; + template?: WorkflowResponse$Outbound | undefined; + templateIdentifier?: string | undefined; + createdAt: string; + lastSeenDate?: string | undefined; + lastReadDate?: string | undefined; + content: EmailBlock$Outbound | string; + transactionId: string; + subject?: string | undefined; + channel: string; + read: boolean; + seen: boolean; + email?: string | undefined; + phone?: string | undefined; + directWebhookUrl?: string | undefined; + providerId?: string | undefined; + deviceTokens?: Array | undefined; + title?: string | undefined; + cta: MessageCTA$Outbound; + _feedId?: FeedId$Outbound | null | undefined; + status: string; + errorId: string; + errorText: string; + payload: MessageResponseDtoPayload$Outbound; + overrides: MessageResponseDtoOverrides$Outbound; +}; + +/** @internal */ +export const MessageResponseDto$outboundSchema: z.ZodType< + MessageResponseDto$Outbound, + z.ZodTypeDef, + MessageResponseDto +> = z.object({ + id: z.string().optional(), + templateId: z.string(), + environmentId: z.string(), + messageTemplateId: z.string(), + organizationId: z.string(), + notificationId: z.string(), + subscriberId: z.string(), + subscriber: SubscriberResponseDto$outboundSchema.optional(), + template: WorkflowResponse$outboundSchema.optional(), + templateIdentifier: z.string().optional(), + createdAt: z.string(), + lastSeenDate: z.string().optional(), + lastReadDate: z.string().optional(), + content: z.union([EmailBlock$outboundSchema, z.string()]), + transactionId: z.string(), + subject: z.string().optional(), + channel: MessageResponseDtoChannel$outboundSchema, + read: z.boolean(), + seen: z.boolean(), + email: z.string().optional(), + phone: z.string().optional(), + directWebhookUrl: z.string().optional(), + providerId: z.string().optional(), + deviceTokens: z.array(z.string()).optional(), + title: z.string().optional(), + cta: MessageCTA$outboundSchema, + feedId: z.nullable(z.lazy(() => FeedId$outboundSchema)).optional(), + status: MessageResponseDtoStatus$outboundSchema, + errorId: z.string(), + errorText: z.string(), + payload: z.lazy(() => MessageResponseDtoPayload$outboundSchema), + overrides: z.lazy(() => MessageResponseDtoOverrides$outboundSchema), +}).transform((v) => { + return remap$(v, { + id: "_id", + templateId: "_templateId", + environmentId: "_environmentId", + messageTemplateId: "_messageTemplateId", + organizationId: "_organizationId", + notificationId: "_notificationId", + subscriberId: "_subscriberId", + feedId: "_feedId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageResponseDto$ { + /** @deprecated use `MessageResponseDto$inboundSchema` instead. */ + export const inboundSchema = MessageResponseDto$inboundSchema; + /** @deprecated use `MessageResponseDto$outboundSchema` instead. */ + export const outboundSchema = MessageResponseDto$outboundSchema; + /** @deprecated use `MessageResponseDto$Outbound` instead. */ + export type Outbound = MessageResponseDto$Outbound; +} + +export function messageResponseDtoToJSON( + messageResponseDto: MessageResponseDto, +): string { + return JSON.stringify( + MessageResponseDto$outboundSchema.parse(messageResponseDto), + ); +} + +export function messageResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageResponseDto' from JSON`, + ); +} diff --git a/src/models/components/messagetemplate.ts b/src/models/components/messagetemplate.ts new file mode 100644 index 00000000..eff05e96 --- /dev/null +++ b/src/models/components/messagetemplate.ts @@ -0,0 +1,56 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type MessageTemplate = {}; + +/** @internal */ +export const MessageTemplate$inboundSchema: z.ZodType< + MessageTemplate, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type MessageTemplate$Outbound = {}; + +/** @internal */ +export const MessageTemplate$outboundSchema: z.ZodType< + MessageTemplate$Outbound, + z.ZodTypeDef, + MessageTemplate +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessageTemplate$ { + /** @deprecated use `MessageTemplate$inboundSchema` instead. */ + export const inboundSchema = MessageTemplate$inboundSchema; + /** @deprecated use `MessageTemplate$outboundSchema` instead. */ + export const outboundSchema = MessageTemplate$outboundSchema; + /** @deprecated use `MessageTemplate$Outbound` instead. */ + export type Outbound = MessageTemplate$Outbound; +} + +export function messageTemplateToJSON( + messageTemplate: MessageTemplate, +): string { + return JSON.stringify(MessageTemplate$outboundSchema.parse(messageTemplate)); +} + +export function messageTemplateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => MessageTemplate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessageTemplate' from JSON`, + ); +} diff --git a/src/models/components/notificationgroup.ts b/src/models/components/notificationgroup.ts new file mode 100644 index 00000000..dfc602f5 --- /dev/null +++ b/src/models/components/notificationgroup.ts @@ -0,0 +1,97 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroup = { + id?: string | undefined; + name: string; + environmentId: string; + organizationId: string; + parentId?: string | undefined; +}; + +/** @internal */ +export const NotificationGroup$inboundSchema: z.ZodType< + NotificationGroup, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + name: z.string(), + _environmentId: z.string(), + _organizationId: z.string(), + _parentId: z.string().optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_environmentId": "environmentId", + "_organizationId": "organizationId", + "_parentId": "parentId", + }); +}); + +/** @internal */ +export type NotificationGroup$Outbound = { + _id?: string | undefined; + name: string; + _environmentId: string; + _organizationId: string; + _parentId?: string | undefined; +}; + +/** @internal */ +export const NotificationGroup$outboundSchema: z.ZodType< + NotificationGroup$Outbound, + z.ZodTypeDef, + NotificationGroup +> = z.object({ + id: z.string().optional(), + name: z.string(), + environmentId: z.string(), + organizationId: z.string(), + parentId: z.string().optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + environmentId: "_environmentId", + organizationId: "_organizationId", + parentId: "_parentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroup$ { + /** @deprecated use `NotificationGroup$inboundSchema` instead. */ + export const inboundSchema = NotificationGroup$inboundSchema; + /** @deprecated use `NotificationGroup$outboundSchema` instead. */ + export const outboundSchema = NotificationGroup$outboundSchema; + /** @deprecated use `NotificationGroup$Outbound` instead. */ + export type Outbound = NotificationGroup$Outbound; +} + +export function notificationGroupToJSON( + notificationGroup: NotificationGroup, +): string { + return JSON.stringify( + NotificationGroup$outboundSchema.parse(notificationGroup), + ); +} + +export function notificationGroupFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationGroup$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationGroup' from JSON`, + ); +} diff --git a/src/models/components/notificationgroupresponsedto.ts b/src/models/components/notificationgroupresponsedto.ts new file mode 100644 index 00000000..39dd84f4 --- /dev/null +++ b/src/models/components/notificationgroupresponsedto.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupResponseDto = { + id?: string | undefined; + name: string; + environmentId: string; + organizationId: string; + parentId?: string | undefined; +}; + +/** @internal */ +export const NotificationGroupResponseDto$inboundSchema: z.ZodType< + NotificationGroupResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + name: z.string(), + _environmentId: z.string(), + _organizationId: z.string(), + _parentId: z.string().optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_environmentId": "environmentId", + "_organizationId": "organizationId", + "_parentId": "parentId", + }); +}); + +/** @internal */ +export type NotificationGroupResponseDto$Outbound = { + _id?: string | undefined; + name: string; + _environmentId: string; + _organizationId: string; + _parentId?: string | undefined; +}; + +/** @internal */ +export const NotificationGroupResponseDto$outboundSchema: z.ZodType< + NotificationGroupResponseDto$Outbound, + z.ZodTypeDef, + NotificationGroupResponseDto +> = z.object({ + id: z.string().optional(), + name: z.string(), + environmentId: z.string(), + organizationId: z.string(), + parentId: z.string().optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + environmentId: "_environmentId", + organizationId: "_organizationId", + parentId: "_parentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupResponseDto$ { + /** @deprecated use `NotificationGroupResponseDto$inboundSchema` instead. */ + export const inboundSchema = NotificationGroupResponseDto$inboundSchema; + /** @deprecated use `NotificationGroupResponseDto$outboundSchema` instead. */ + export const outboundSchema = NotificationGroupResponseDto$outboundSchema; + /** @deprecated use `NotificationGroupResponseDto$Outbound` instead. */ + export type Outbound = NotificationGroupResponseDto$Outbound; +} + +export function notificationGroupResponseDtoToJSON( + notificationGroupResponseDto: NotificationGroupResponseDto, +): string { + return JSON.stringify( + NotificationGroupResponseDto$outboundSchema.parse( + notificationGroupResponseDto, + ), + ); +} + +export function notificationGroupResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationGroupResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupResponseDto' from JSON`, + ); +} diff --git a/src/models/components/notificationstep.ts b/src/models/components/notificationstep.ts new file mode 100644 index 00000000..701311fd --- /dev/null +++ b/src/models/components/notificationstep.ts @@ -0,0 +1,341 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + DelayRegularMetadata, + DelayRegularMetadata$inboundSchema, + DelayRegularMetadata$Outbound, + DelayRegularMetadata$outboundSchema, +} from "./delayregularmetadata.js"; +import { + DelayScheduledMetadata, + DelayScheduledMetadata$inboundSchema, + DelayScheduledMetadata$Outbound, + DelayScheduledMetadata$outboundSchema, +} from "./delayscheduledmetadata.js"; +import { + DigestRegularMetadata, + DigestRegularMetadata$inboundSchema, + DigestRegularMetadata$Outbound, + DigestRegularMetadata$outboundSchema, +} from "./digestregularmetadata.js"; +import { + DigestTimedMetadata, + DigestTimedMetadata$inboundSchema, + DigestTimedMetadata$Outbound, + DigestTimedMetadata$outboundSchema, +} from "./digesttimedmetadata.js"; +import { + MessageTemplate, + MessageTemplate$inboundSchema, + MessageTemplate$Outbound, + MessageTemplate$outboundSchema, +} from "./messagetemplate.js"; +import { + NotificationStepVariant, + NotificationStepVariant$inboundSchema, + NotificationStepVariant$Outbound, + NotificationStepVariant$outboundSchema, +} from "./notificationstepvariant.js"; +import { + StepFilter, + StepFilter$inboundSchema, + StepFilter$Outbound, + StepFilter$outboundSchema, +} from "./stepfilter.js"; + +export type ParentId = {}; + +export type Metadata = + | DelayScheduledMetadata + | DelayRegularMetadata + | DigestTimedMetadata + | DigestRegularMetadata; + +export type ReplyCallback = {}; + +export type NotificationStep = { + id?: string | undefined; + uuid?: string | undefined; + name?: string | undefined; + templateId?: string | undefined; + active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate | undefined; + filters?: Array | undefined; + parentId?: ParentId | undefined; + metadata?: + | DelayScheduledMetadata + | DelayRegularMetadata + | DigestTimedMetadata + | DigestRegularMetadata + | undefined; + replyCallback?: ReplyCallback | undefined; + variants?: NotificationStepVariant | undefined; +}; + +/** @internal */ +export const ParentId$inboundSchema: z.ZodType< + ParentId, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type ParentId$Outbound = {}; + +/** @internal */ +export const ParentId$outboundSchema: z.ZodType< + ParentId$Outbound, + z.ZodTypeDef, + ParentId +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ParentId$ { + /** @deprecated use `ParentId$inboundSchema` instead. */ + export const inboundSchema = ParentId$inboundSchema; + /** @deprecated use `ParentId$outboundSchema` instead. */ + export const outboundSchema = ParentId$outboundSchema; + /** @deprecated use `ParentId$Outbound` instead. */ + export type Outbound = ParentId$Outbound; +} + +export function parentIdToJSON(parentId: ParentId): string { + return JSON.stringify(ParentId$outboundSchema.parse(parentId)); +} + +export function parentIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ParentId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ParentId' from JSON`, + ); +} + +/** @internal */ +export const Metadata$inboundSchema: z.ZodType< + Metadata, + z.ZodTypeDef, + unknown +> = z.union([ + DelayScheduledMetadata$inboundSchema, + DelayRegularMetadata$inboundSchema, + DigestTimedMetadata$inboundSchema, + DigestRegularMetadata$inboundSchema, +]); + +/** @internal */ +export type Metadata$Outbound = + | DelayScheduledMetadata$Outbound + | DelayRegularMetadata$Outbound + | DigestTimedMetadata$Outbound + | DigestRegularMetadata$Outbound; + +/** @internal */ +export const Metadata$outboundSchema: z.ZodType< + Metadata$Outbound, + z.ZodTypeDef, + Metadata +> = z.union([ + DelayScheduledMetadata$outboundSchema, + DelayRegularMetadata$outboundSchema, + DigestTimedMetadata$outboundSchema, + DigestRegularMetadata$outboundSchema, +]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Metadata$ { + /** @deprecated use `Metadata$inboundSchema` instead. */ + export const inboundSchema = Metadata$inboundSchema; + /** @deprecated use `Metadata$outboundSchema` instead. */ + export const outboundSchema = Metadata$outboundSchema; + /** @deprecated use `Metadata$Outbound` instead. */ + export type Outbound = Metadata$Outbound; +} + +export function metadataToJSON(metadata: Metadata): string { + return JSON.stringify(Metadata$outboundSchema.parse(metadata)); +} + +export function metadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Metadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Metadata' from JSON`, + ); +} + +/** @internal */ +export const ReplyCallback$inboundSchema: z.ZodType< + ReplyCallback, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type ReplyCallback$Outbound = {}; + +/** @internal */ +export const ReplyCallback$outboundSchema: z.ZodType< + ReplyCallback$Outbound, + z.ZodTypeDef, + ReplyCallback +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ReplyCallback$ { + /** @deprecated use `ReplyCallback$inboundSchema` instead. */ + export const inboundSchema = ReplyCallback$inboundSchema; + /** @deprecated use `ReplyCallback$outboundSchema` instead. */ + export const outboundSchema = ReplyCallback$outboundSchema; + /** @deprecated use `ReplyCallback$Outbound` instead. */ + export type Outbound = ReplyCallback$Outbound; +} + +export function replyCallbackToJSON(replyCallback: ReplyCallback): string { + return JSON.stringify(ReplyCallback$outboundSchema.parse(replyCallback)); +} + +export function replyCallbackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReplyCallback$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReplyCallback' from JSON`, + ); +} + +/** @internal */ +export const NotificationStep$inboundSchema: z.ZodType< + NotificationStep, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + uuid: z.string().optional(), + name: z.string().optional(), + _templateId: z.string().optional(), + active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$inboundSchema.optional(), + filters: z.array(StepFilter$inboundSchema).optional(), + _parentId: z.lazy(() => ParentId$inboundSchema).optional(), + metadata: z.union([ + DelayScheduledMetadata$inboundSchema, + DelayRegularMetadata$inboundSchema, + DigestTimedMetadata$inboundSchema, + DigestRegularMetadata$inboundSchema, + ]).optional(), + replyCallback: z.lazy(() => ReplyCallback$inboundSchema).optional(), + variants: NotificationStepVariant$inboundSchema.optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_templateId": "templateId", + "_parentId": "parentId", + }); +}); + +/** @internal */ +export type NotificationStep$Outbound = { + _id?: string | undefined; + uuid?: string | undefined; + name?: string | undefined; + _templateId?: string | undefined; + active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate$Outbound | undefined; + filters?: Array | undefined; + _parentId?: ParentId$Outbound | undefined; + metadata?: + | DelayScheduledMetadata$Outbound + | DelayRegularMetadata$Outbound + | DigestTimedMetadata$Outbound + | DigestRegularMetadata$Outbound + | undefined; + replyCallback?: ReplyCallback$Outbound | undefined; + variants?: NotificationStepVariant$Outbound | undefined; +}; + +/** @internal */ +export const NotificationStep$outboundSchema: z.ZodType< + NotificationStep$Outbound, + z.ZodTypeDef, + NotificationStep +> = z.object({ + id: z.string().optional(), + uuid: z.string().optional(), + name: z.string().optional(), + templateId: z.string().optional(), + active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$outboundSchema.optional(), + filters: z.array(StepFilter$outboundSchema).optional(), + parentId: z.lazy(() => ParentId$outboundSchema).optional(), + metadata: z.union([ + DelayScheduledMetadata$outboundSchema, + DelayRegularMetadata$outboundSchema, + DigestTimedMetadata$outboundSchema, + DigestRegularMetadata$outboundSchema, + ]).optional(), + replyCallback: z.lazy(() => ReplyCallback$outboundSchema).optional(), + variants: NotificationStepVariant$outboundSchema.optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + templateId: "_templateId", + parentId: "_parentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationStep$ { + /** @deprecated use `NotificationStep$inboundSchema` instead. */ + export const inboundSchema = NotificationStep$inboundSchema; + /** @deprecated use `NotificationStep$outboundSchema` instead. */ + export const outboundSchema = NotificationStep$outboundSchema; + /** @deprecated use `NotificationStep$Outbound` instead. */ + export type Outbound = NotificationStep$Outbound; +} + +export function notificationStepToJSON( + notificationStep: NotificationStep, +): string { + return JSON.stringify( + NotificationStep$outboundSchema.parse(notificationStep), + ); +} + +export function notificationStepFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStep$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStep' from JSON`, + ); +} diff --git a/src/models/components/notificationstepvariant.ts b/src/models/components/notificationstepvariant.ts new file mode 100644 index 00000000..630a6ba1 --- /dev/null +++ b/src/models/components/notificationstepvariant.ts @@ -0,0 +1,358 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + DelayRegularMetadata, + DelayRegularMetadata$inboundSchema, + DelayRegularMetadata$Outbound, + DelayRegularMetadata$outboundSchema, +} from "./delayregularmetadata.js"; +import { + DelayScheduledMetadata, + DelayScheduledMetadata$inboundSchema, + DelayScheduledMetadata$Outbound, + DelayScheduledMetadata$outboundSchema, +} from "./delayscheduledmetadata.js"; +import { + DigestRegularMetadata, + DigestRegularMetadata$inboundSchema, + DigestRegularMetadata$Outbound, + DigestRegularMetadata$outboundSchema, +} from "./digestregularmetadata.js"; +import { + DigestTimedMetadata, + DigestTimedMetadata$inboundSchema, + DigestTimedMetadata$Outbound, + DigestTimedMetadata$outboundSchema, +} from "./digesttimedmetadata.js"; +import { + MessageTemplate, + MessageTemplate$inboundSchema, + MessageTemplate$Outbound, + MessageTemplate$outboundSchema, +} from "./messagetemplate.js"; +import { + StepFilter, + StepFilter$inboundSchema, + StepFilter$Outbound, + StepFilter$outboundSchema, +} from "./stepfilter.js"; + +export type NotificationStepVariantParentId = {}; + +export type NotificationStepVariantMetadata = + | DelayScheduledMetadata + | DelayRegularMetadata + | DigestTimedMetadata + | DigestRegularMetadata; + +export type NotificationStepVariantReplyCallback = {}; + +export type NotificationStepVariant = { + id?: string | undefined; + uuid?: string | undefined; + name?: string | undefined; + templateId?: string | undefined; + active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate | undefined; + filters?: Array | undefined; + parentId?: NotificationStepVariantParentId | undefined; + metadata?: + | DelayScheduledMetadata + | DelayRegularMetadata + | DigestTimedMetadata + | DigestRegularMetadata + | undefined; + replyCallback?: NotificationStepVariantReplyCallback | undefined; +}; + +/** @internal */ +export const NotificationStepVariantParentId$inboundSchema: z.ZodType< + NotificationStepVariantParentId, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type NotificationStepVariantParentId$Outbound = {}; + +/** @internal */ +export const NotificationStepVariantParentId$outboundSchema: z.ZodType< + NotificationStepVariantParentId$Outbound, + z.ZodTypeDef, + NotificationStepVariantParentId +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationStepVariantParentId$ { + /** @deprecated use `NotificationStepVariantParentId$inboundSchema` instead. */ + export const inboundSchema = NotificationStepVariantParentId$inboundSchema; + /** @deprecated use `NotificationStepVariantParentId$outboundSchema` instead. */ + export const outboundSchema = NotificationStepVariantParentId$outboundSchema; + /** @deprecated use `NotificationStepVariantParentId$Outbound` instead. */ + export type Outbound = NotificationStepVariantParentId$Outbound; +} + +export function notificationStepVariantParentIdToJSON( + notificationStepVariantParentId: NotificationStepVariantParentId, +): string { + return JSON.stringify( + NotificationStepVariantParentId$outboundSchema.parse( + notificationStepVariantParentId, + ), + ); +} + +export function notificationStepVariantParentIdFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStepVariantParentId$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariantParentId' from JSON`, + ); +} + +/** @internal */ +export const NotificationStepVariantMetadata$inboundSchema: z.ZodType< + NotificationStepVariantMetadata, + z.ZodTypeDef, + unknown +> = z.union([ + DelayScheduledMetadata$inboundSchema, + DelayRegularMetadata$inboundSchema, + DigestTimedMetadata$inboundSchema, + DigestRegularMetadata$inboundSchema, +]); + +/** @internal */ +export type NotificationStepVariantMetadata$Outbound = + | DelayScheduledMetadata$Outbound + | DelayRegularMetadata$Outbound + | DigestTimedMetadata$Outbound + | DigestRegularMetadata$Outbound; + +/** @internal */ +export const NotificationStepVariantMetadata$outboundSchema: z.ZodType< + NotificationStepVariantMetadata$Outbound, + z.ZodTypeDef, + NotificationStepVariantMetadata +> = z.union([ + DelayScheduledMetadata$outboundSchema, + DelayRegularMetadata$outboundSchema, + DigestTimedMetadata$outboundSchema, + DigestRegularMetadata$outboundSchema, +]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationStepVariantMetadata$ { + /** @deprecated use `NotificationStepVariantMetadata$inboundSchema` instead. */ + export const inboundSchema = NotificationStepVariantMetadata$inboundSchema; + /** @deprecated use `NotificationStepVariantMetadata$outboundSchema` instead. */ + export const outboundSchema = NotificationStepVariantMetadata$outboundSchema; + /** @deprecated use `NotificationStepVariantMetadata$Outbound` instead. */ + export type Outbound = NotificationStepVariantMetadata$Outbound; +} + +export function notificationStepVariantMetadataToJSON( + notificationStepVariantMetadata: NotificationStepVariantMetadata, +): string { + return JSON.stringify( + NotificationStepVariantMetadata$outboundSchema.parse( + notificationStepVariantMetadata, + ), + ); +} + +export function notificationStepVariantMetadataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStepVariantMetadata$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariantMetadata' from JSON`, + ); +} + +/** @internal */ +export const NotificationStepVariantReplyCallback$inboundSchema: z.ZodType< + NotificationStepVariantReplyCallback, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type NotificationStepVariantReplyCallback$Outbound = {}; + +/** @internal */ +export const NotificationStepVariantReplyCallback$outboundSchema: z.ZodType< + NotificationStepVariantReplyCallback$Outbound, + z.ZodTypeDef, + NotificationStepVariantReplyCallback +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationStepVariantReplyCallback$ { + /** @deprecated use `NotificationStepVariantReplyCallback$inboundSchema` instead. */ + export const inboundSchema = + NotificationStepVariantReplyCallback$inboundSchema; + /** @deprecated use `NotificationStepVariantReplyCallback$outboundSchema` instead. */ + export const outboundSchema = + NotificationStepVariantReplyCallback$outboundSchema; + /** @deprecated use `NotificationStepVariantReplyCallback$Outbound` instead. */ + export type Outbound = NotificationStepVariantReplyCallback$Outbound; +} + +export function notificationStepVariantReplyCallbackToJSON( + notificationStepVariantReplyCallback: NotificationStepVariantReplyCallback, +): string { + return JSON.stringify( + NotificationStepVariantReplyCallback$outboundSchema.parse( + notificationStepVariantReplyCallback, + ), + ); +} + +export function notificationStepVariantReplyCallbackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + NotificationStepVariantReplyCallback$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariantReplyCallback' from JSON`, + ); +} + +/** @internal */ +export const NotificationStepVariant$inboundSchema: z.ZodType< + NotificationStepVariant, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + uuid: z.string().optional(), + name: z.string().optional(), + _templateId: z.string().optional(), + active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$inboundSchema.optional(), + filters: z.array(StepFilter$inboundSchema).optional(), + _parentId: z.lazy(() => NotificationStepVariantParentId$inboundSchema) + .optional(), + metadata: z.union([ + DelayScheduledMetadata$inboundSchema, + DelayRegularMetadata$inboundSchema, + DigestTimedMetadata$inboundSchema, + DigestRegularMetadata$inboundSchema, + ]).optional(), + replyCallback: z.lazy(() => + NotificationStepVariantReplyCallback$inboundSchema + ).optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_templateId": "templateId", + "_parentId": "parentId", + }); +}); + +/** @internal */ +export type NotificationStepVariant$Outbound = { + _id?: string | undefined; + uuid?: string | undefined; + name?: string | undefined; + _templateId?: string | undefined; + active?: boolean | undefined; + shouldStopOnFail?: boolean | undefined; + template?: MessageTemplate$Outbound | undefined; + filters?: Array | undefined; + _parentId?: NotificationStepVariantParentId$Outbound | undefined; + metadata?: + | DelayScheduledMetadata$Outbound + | DelayRegularMetadata$Outbound + | DigestTimedMetadata$Outbound + | DigestRegularMetadata$Outbound + | undefined; + replyCallback?: NotificationStepVariantReplyCallback$Outbound | undefined; +}; + +/** @internal */ +export const NotificationStepVariant$outboundSchema: z.ZodType< + NotificationStepVariant$Outbound, + z.ZodTypeDef, + NotificationStepVariant +> = z.object({ + id: z.string().optional(), + uuid: z.string().optional(), + name: z.string().optional(), + templateId: z.string().optional(), + active: z.boolean().optional(), + shouldStopOnFail: z.boolean().optional(), + template: MessageTemplate$outboundSchema.optional(), + filters: z.array(StepFilter$outboundSchema).optional(), + parentId: z.lazy(() => NotificationStepVariantParentId$outboundSchema) + .optional(), + metadata: z.union([ + DelayScheduledMetadata$outboundSchema, + DelayRegularMetadata$outboundSchema, + DigestTimedMetadata$outboundSchema, + DigestRegularMetadata$outboundSchema, + ]).optional(), + replyCallback: z.lazy(() => + NotificationStepVariantReplyCallback$outboundSchema + ).optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + templateId: "_templateId", + parentId: "_parentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationStepVariant$ { + /** @deprecated use `NotificationStepVariant$inboundSchema` instead. */ + export const inboundSchema = NotificationStepVariant$inboundSchema; + /** @deprecated use `NotificationStepVariant$outboundSchema` instead. */ + export const outboundSchema = NotificationStepVariant$outboundSchema; + /** @deprecated use `NotificationStepVariant$Outbound` instead. */ + export type Outbound = NotificationStepVariant$Outbound; +} + +export function notificationStepVariantToJSON( + notificationStepVariant: NotificationStepVariant, +): string { + return JSON.stringify( + NotificationStepVariant$outboundSchema.parse(notificationStepVariant), + ); +} + +export function notificationStepVariantFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationStepVariant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationStepVariant' from JSON`, + ); +} diff --git a/src/models/components/notificationtrigger.ts b/src/models/components/notificationtrigger.ts new file mode 100644 index 00000000..60397393 --- /dev/null +++ b/src/models/components/notificationtrigger.ts @@ -0,0 +1,115 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + NotificationTriggerVariable, + NotificationTriggerVariable$inboundSchema, + NotificationTriggerVariable$Outbound, + NotificationTriggerVariable$outboundSchema, +} from "./notificationtriggervariable.js"; + +export const NotificationTriggerType = { + Event: "event", +} as const; +export type NotificationTriggerType = ClosedEnum< + typeof NotificationTriggerType +>; + +export type NotificationTrigger = { + type: NotificationTriggerType; + identifier: string; + variables: Array; + subscriberVariables?: Array | undefined; +}; + +/** @internal */ +export const NotificationTriggerType$inboundSchema: z.ZodNativeEnum< + typeof NotificationTriggerType +> = z.nativeEnum(NotificationTriggerType); + +/** @internal */ +export const NotificationTriggerType$outboundSchema: z.ZodNativeEnum< + typeof NotificationTriggerType +> = NotificationTriggerType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationTriggerType$ { + /** @deprecated use `NotificationTriggerType$inboundSchema` instead. */ + export const inboundSchema = NotificationTriggerType$inboundSchema; + /** @deprecated use `NotificationTriggerType$outboundSchema` instead. */ + export const outboundSchema = NotificationTriggerType$outboundSchema; +} + +/** @internal */ +export const NotificationTrigger$inboundSchema: z.ZodType< + NotificationTrigger, + z.ZodTypeDef, + unknown +> = z.object({ + type: NotificationTriggerType$inboundSchema, + identifier: z.string(), + variables: z.array(NotificationTriggerVariable$inboundSchema), + subscriberVariables: z.array(NotificationTriggerVariable$inboundSchema) + .optional(), +}); + +/** @internal */ +export type NotificationTrigger$Outbound = { + type: string; + identifier: string; + variables: Array; + subscriberVariables?: Array | undefined; +}; + +/** @internal */ +export const NotificationTrigger$outboundSchema: z.ZodType< + NotificationTrigger$Outbound, + z.ZodTypeDef, + NotificationTrigger +> = z.object({ + type: NotificationTriggerType$outboundSchema, + identifier: z.string(), + variables: z.array(NotificationTriggerVariable$outboundSchema), + subscriberVariables: z.array(NotificationTriggerVariable$outboundSchema) + .optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationTrigger$ { + /** @deprecated use `NotificationTrigger$inboundSchema` instead. */ + export const inboundSchema = NotificationTrigger$inboundSchema; + /** @deprecated use `NotificationTrigger$outboundSchema` instead. */ + export const outboundSchema = NotificationTrigger$outboundSchema; + /** @deprecated use `NotificationTrigger$Outbound` instead. */ + export type Outbound = NotificationTrigger$Outbound; +} + +export function notificationTriggerToJSON( + notificationTrigger: NotificationTrigger, +): string { + return JSON.stringify( + NotificationTrigger$outboundSchema.parse(notificationTrigger), + ); +} + +export function notificationTriggerFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationTrigger$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationTrigger' from JSON`, + ); +} diff --git a/src/models/components/notificationtriggervariable.ts b/src/models/components/notificationtriggervariable.ts new file mode 100644 index 00000000..e8961c30 --- /dev/null +++ b/src/models/components/notificationtriggervariable.ts @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationTriggerVariable = { + name: string; +}; + +/** @internal */ +export const NotificationTriggerVariable$inboundSchema: z.ZodType< + NotificationTriggerVariable, + z.ZodTypeDef, + unknown +> = z.object({ + name: z.string(), +}); + +/** @internal */ +export type NotificationTriggerVariable$Outbound = { + name: string; +}; + +/** @internal */ +export const NotificationTriggerVariable$outboundSchema: z.ZodType< + NotificationTriggerVariable$Outbound, + z.ZodTypeDef, + NotificationTriggerVariable +> = z.object({ + name: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationTriggerVariable$ { + /** @deprecated use `NotificationTriggerVariable$inboundSchema` instead. */ + export const inboundSchema = NotificationTriggerVariable$inboundSchema; + /** @deprecated use `NotificationTriggerVariable$outboundSchema` instead. */ + export const outboundSchema = NotificationTriggerVariable$outboundSchema; + /** @deprecated use `NotificationTriggerVariable$Outbound` instead. */ + export type Outbound = NotificationTriggerVariable$Outbound; +} + +export function notificationTriggerVariableToJSON( + notificationTriggerVariable: NotificationTriggerVariable, +): string { + return JSON.stringify( + NotificationTriggerVariable$outboundSchema.parse( + notificationTriggerVariable, + ), + ); +} + +export function notificationTriggerVariableFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => NotificationTriggerVariable$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'NotificationTriggerVariable' from JSON`, + ); +} diff --git a/src/models/components/preference.ts b/src/models/components/preference.ts new file mode 100644 index 00000000..bdee77a4 --- /dev/null +++ b/src/models/components/preference.ts @@ -0,0 +1,78 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PreferenceChannels, + PreferenceChannels$inboundSchema, + PreferenceChannels$Outbound, + PreferenceChannels$outboundSchema, +} from "./preferencechannels.js"; + +export type Preference = { + /** + * Sets if the workflow is fully enabled for all channels or not for the subscriber. + */ + enabled: boolean; + /** + * Subscriber preferences for the different channels regarding this workflow + */ + channels: PreferenceChannels; +}; + +/** @internal */ +export const Preference$inboundSchema: z.ZodType< + Preference, + z.ZodTypeDef, + unknown +> = z.object({ + enabled: z.boolean(), + channels: PreferenceChannels$inboundSchema, +}); + +/** @internal */ +export type Preference$Outbound = { + enabled: boolean; + channels: PreferenceChannels$Outbound; +}; + +/** @internal */ +export const Preference$outboundSchema: z.ZodType< + Preference$Outbound, + z.ZodTypeDef, + Preference +> = z.object({ + enabled: z.boolean(), + channels: PreferenceChannels$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Preference$ { + /** @deprecated use `Preference$inboundSchema` instead. */ + export const inboundSchema = Preference$inboundSchema; + /** @deprecated use `Preference$outboundSchema` instead. */ + export const outboundSchema = Preference$outboundSchema; + /** @deprecated use `Preference$Outbound` instead. */ + export type Outbound = Preference$Outbound; +} + +export function preferenceToJSON(preference: Preference): string { + return JSON.stringify(Preference$outboundSchema.parse(preference)); +} + +export function preferenceFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Preference$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Preference' from JSON`, + ); +} diff --git a/src/models/components/preferencechannels.ts b/src/models/components/preferencechannels.ts new file mode 100644 index 00000000..b4022c33 --- /dev/null +++ b/src/models/components/preferencechannels.ts @@ -0,0 +1,91 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PreferenceChannels = { + email?: boolean | undefined; + sms?: boolean | undefined; + inApp?: boolean | undefined; + chat?: boolean | undefined; + push?: boolean | undefined; +}; + +/** @internal */ +export const PreferenceChannels$inboundSchema: z.ZodType< + PreferenceChannels, + z.ZodTypeDef, + unknown +> = z.object({ + email: z.boolean().optional(), + sms: z.boolean().optional(), + in_app: z.boolean().optional(), + chat: z.boolean().optional(), + push: z.boolean().optional(), +}).transform((v) => { + return remap$(v, { + "in_app": "inApp", + }); +}); + +/** @internal */ +export type PreferenceChannels$Outbound = { + email?: boolean | undefined; + sms?: boolean | undefined; + in_app?: boolean | undefined; + chat?: boolean | undefined; + push?: boolean | undefined; +}; + +/** @internal */ +export const PreferenceChannels$outboundSchema: z.ZodType< + PreferenceChannels$Outbound, + z.ZodTypeDef, + PreferenceChannels +> = z.object({ + email: z.boolean().optional(), + sms: z.boolean().optional(), + inApp: z.boolean().optional(), + chat: z.boolean().optional(), + push: z.boolean().optional(), +}).transform((v) => { + return remap$(v, { + inApp: "in_app", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace PreferenceChannels$ { + /** @deprecated use `PreferenceChannels$inboundSchema` instead. */ + export const inboundSchema = PreferenceChannels$inboundSchema; + /** @deprecated use `PreferenceChannels$outboundSchema` instead. */ + export const outboundSchema = PreferenceChannels$outboundSchema; + /** @deprecated use `PreferenceChannels$Outbound` instead. */ + export type Outbound = PreferenceChannels$Outbound; +} + +export function preferenceChannelsToJSON( + preferenceChannels: PreferenceChannels, +): string { + return JSON.stringify( + PreferenceChannels$outboundSchema.parse(preferenceChannels), + ); +} + +export function preferenceChannelsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PreferenceChannels$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PreferenceChannels' from JSON`, + ); +} diff --git a/src/models/components/removesubscribersrequestdto.ts b/src/models/components/removesubscribersrequestdto.ts new file mode 100644 index 00000000..963a2092 --- /dev/null +++ b/src/models/components/removesubscribersrequestdto.ts @@ -0,0 +1,71 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type RemoveSubscribersRequestDto = { + /** + * List of subscriber identifiers that will be removed to the topic + */ + subscribers: Array; +}; + +/** @internal */ +export const RemoveSubscribersRequestDto$inboundSchema: z.ZodType< + RemoveSubscribersRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + subscribers: z.array(z.string()), +}); + +/** @internal */ +export type RemoveSubscribersRequestDto$Outbound = { + subscribers: Array; +}; + +/** @internal */ +export const RemoveSubscribersRequestDto$outboundSchema: z.ZodType< + RemoveSubscribersRequestDto$Outbound, + z.ZodTypeDef, + RemoveSubscribersRequestDto +> = z.object({ + subscribers: z.array(z.string()), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace RemoveSubscribersRequestDto$ { + /** @deprecated use `RemoveSubscribersRequestDto$inboundSchema` instead. */ + export const inboundSchema = RemoveSubscribersRequestDto$inboundSchema; + /** @deprecated use `RemoveSubscribersRequestDto$outboundSchema` instead. */ + export const outboundSchema = RemoveSubscribersRequestDto$outboundSchema; + /** @deprecated use `RemoveSubscribersRequestDto$Outbound` instead. */ + export type Outbound = RemoveSubscribersRequestDto$Outbound; +} + +export function removeSubscribersRequestDtoToJSON( + removeSubscribersRequestDto: RemoveSubscribersRequestDto, +): string { + return JSON.stringify( + RemoveSubscribersRequestDto$outboundSchema.parse( + removeSubscribersRequestDto, + ), + ); +} + +export function removeSubscribersRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => RemoveSubscribersRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'RemoveSubscribersRequestDto' from JSON`, + ); +} diff --git a/src/models/components/renametopicrequestdto.ts b/src/models/components/renametopicrequestdto.ts new file mode 100644 index 00000000..fd03c301 --- /dev/null +++ b/src/models/components/renametopicrequestdto.ts @@ -0,0 +1,69 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type RenameTopicRequestDto = { + /** + * User defined custom name and provided by the user to rename the topic. + */ + name: string; +}; + +/** @internal */ +export const RenameTopicRequestDto$inboundSchema: z.ZodType< + RenameTopicRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + name: z.string(), +}); + +/** @internal */ +export type RenameTopicRequestDto$Outbound = { + name: string; +}; + +/** @internal */ +export const RenameTopicRequestDto$outboundSchema: z.ZodType< + RenameTopicRequestDto$Outbound, + z.ZodTypeDef, + RenameTopicRequestDto +> = z.object({ + name: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace RenameTopicRequestDto$ { + /** @deprecated use `RenameTopicRequestDto$inboundSchema` instead. */ + export const inboundSchema = RenameTopicRequestDto$inboundSchema; + /** @deprecated use `RenameTopicRequestDto$outboundSchema` instead. */ + export const outboundSchema = RenameTopicRequestDto$outboundSchema; + /** @deprecated use `RenameTopicRequestDto$Outbound` instead. */ + export type Outbound = RenameTopicRequestDto$Outbound; +} + +export function renameTopicRequestDtoToJSON( + renameTopicRequestDto: RenameTopicRequestDto, +): string { + return JSON.stringify( + RenameTopicRequestDto$outboundSchema.parse(renameTopicRequestDto), + ); +} + +export function renameTopicRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => RenameTopicRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'RenameTopicRequestDto' from JSON`, + ); +} diff --git a/src/models/components/renametopicresponsedto.ts b/src/models/components/renametopicresponsedto.ts new file mode 100644 index 00000000..b993443b --- /dev/null +++ b/src/models/components/renametopicresponsedto.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type RenameTopicResponseDto = { + id?: string | undefined; + organizationId: string; + environmentId: string; + key: string; + name: string; + subscribers: Array; +}; + +/** @internal */ +export const RenameTopicResponseDto$inboundSchema: z.ZodType< + RenameTopicResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + _organizationId: z.string(), + _environmentId: z.string(), + key: z.string(), + name: z.string(), + subscribers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", + "_environmentId": "environmentId", + }); +}); + +/** @internal */ +export type RenameTopicResponseDto$Outbound = { + _id?: string | undefined; + _organizationId: string; + _environmentId: string; + key: string; + name: string; + subscribers: Array; +}; + +/** @internal */ +export const RenameTopicResponseDto$outboundSchema: z.ZodType< + RenameTopicResponseDto$Outbound, + z.ZodTypeDef, + RenameTopicResponseDto +> = z.object({ + id: z.string().optional(), + organizationId: z.string(), + environmentId: z.string(), + key: z.string(), + name: z.string(), + subscribers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + id: "_id", + organizationId: "_organizationId", + environmentId: "_environmentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace RenameTopicResponseDto$ { + /** @deprecated use `RenameTopicResponseDto$inboundSchema` instead. */ + export const inboundSchema = RenameTopicResponseDto$inboundSchema; + /** @deprecated use `RenameTopicResponseDto$outboundSchema` instead. */ + export const outboundSchema = RenameTopicResponseDto$outboundSchema; + /** @deprecated use `RenameTopicResponseDto$Outbound` instead. */ + export type Outbound = RenameTopicResponseDto$Outbound; +} + +export function renameTopicResponseDtoToJSON( + renameTopicResponseDto: RenameTopicResponseDto, +): string { + return JSON.stringify( + RenameTopicResponseDto$outboundSchema.parse(renameTopicResponseDto), + ); +} + +export function renameTopicResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => RenameTopicResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'RenameTopicResponseDto' from JSON`, + ); +} diff --git a/src/models/components/security.ts b/src/models/components/security.ts new file mode 100644 index 00000000..8000a90c --- /dev/null +++ b/src/models/components/security.ts @@ -0,0 +1,71 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type Security = { + apiKey: string; +}; + +/** @internal */ +export const Security$inboundSchema: z.ZodType< + Security, + z.ZodTypeDef, + unknown +> = z.object({ + "api-key": z.string(), +}).transform((v) => { + return remap$(v, { + "api-key": "apiKey", + }); +}); + +/** @internal */ +export type Security$Outbound = { + "api-key": string; +}; + +/** @internal */ +export const Security$outboundSchema: z.ZodType< + Security$Outbound, + z.ZodTypeDef, + Security +> = z.object({ + apiKey: z.string(), +}).transform((v) => { + return remap$(v, { + apiKey: "api-key", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Security$ { + /** @deprecated use `Security$inboundSchema` instead. */ + export const inboundSchema = Security$inboundSchema; + /** @deprecated use `Security$outboundSchema` instead. */ + export const outboundSchema = Security$outboundSchema; + /** @deprecated use `Security$Outbound` instead. */ + export type Outbound = Security$Outbound; +} + +export function securityToJSON(security: Security): string { + return JSON.stringify(Security$outboundSchema.parse(security)); +} + +export function securityFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Security$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Security' from JSON`, + ); +} diff --git a/src/models/components/stepfilter.ts b/src/models/components/stepfilter.ts new file mode 100644 index 00000000..4ad0efc6 --- /dev/null +++ b/src/models/components/stepfilter.ts @@ -0,0 +1,140 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + FieldFilterPart, + FieldFilterPart$inboundSchema, + FieldFilterPart$Outbound, + FieldFilterPart$outboundSchema, +} from "./fieldfilterpart.js"; + +export const StepFilterType = { + Boolean: "BOOLEAN", + Text: "TEXT", + Date: "DATE", + Number: "NUMBER", + Statement: "STATEMENT", + List: "LIST", + MultiList: "MULTI_LIST", + Group: "GROUP", +} as const; +export type StepFilterType = ClosedEnum; + +export const Value = { + And: "AND", + Or: "OR", +} as const; +export type Value = ClosedEnum; + +export type StepFilter = { + isNegated: boolean; + type: StepFilterType; + value: Value; + children: Array; +}; + +/** @internal */ +export const StepFilterType$inboundSchema: z.ZodNativeEnum< + typeof StepFilterType +> = z.nativeEnum(StepFilterType); + +/** @internal */ +export const StepFilterType$outboundSchema: z.ZodNativeEnum< + typeof StepFilterType +> = StepFilterType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace StepFilterType$ { + /** @deprecated use `StepFilterType$inboundSchema` instead. */ + export const inboundSchema = StepFilterType$inboundSchema; + /** @deprecated use `StepFilterType$outboundSchema` instead. */ + export const outboundSchema = StepFilterType$outboundSchema; +} + +/** @internal */ +export const Value$inboundSchema: z.ZodNativeEnum = z.nativeEnum( + Value, +); + +/** @internal */ +export const Value$outboundSchema: z.ZodNativeEnum = + Value$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Value$ { + /** @deprecated use `Value$inboundSchema` instead. */ + export const inboundSchema = Value$inboundSchema; + /** @deprecated use `Value$outboundSchema` instead. */ + export const outboundSchema = Value$outboundSchema; +} + +/** @internal */ +export const StepFilter$inboundSchema: z.ZodType< + StepFilter, + z.ZodTypeDef, + unknown +> = z.object({ + isNegated: z.boolean(), + type: StepFilterType$inboundSchema, + value: Value$inboundSchema, + children: z.array(FieldFilterPart$inboundSchema), +}); + +/** @internal */ +export type StepFilter$Outbound = { + isNegated: boolean; + type: string; + value: string; + children: Array; +}; + +/** @internal */ +export const StepFilter$outboundSchema: z.ZodType< + StepFilter$Outbound, + z.ZodTypeDef, + StepFilter +> = z.object({ + isNegated: z.boolean(), + type: StepFilterType$outboundSchema, + value: Value$outboundSchema, + children: z.array(FieldFilterPart$outboundSchema), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace StepFilter$ { + /** @deprecated use `StepFilter$inboundSchema` instead. */ + export const inboundSchema = StepFilter$inboundSchema; + /** @deprecated use `StepFilter$outboundSchema` instead. */ + export const outboundSchema = StepFilter$outboundSchema; + /** @deprecated use `StepFilter$Outbound` instead. */ + export type Outbound = StepFilter$Outbound; +} + +export function stepFilterToJSON(stepFilter: StepFilter): string { + return JSON.stringify(StepFilter$outboundSchema.parse(stepFilter)); +} + +export function stepFilterFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => StepFilter$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'StepFilter' from JSON`, + ); +} diff --git a/src/models/components/subscriberpayloaddto.ts b/src/models/components/subscriberpayloaddto.ts new file mode 100644 index 00000000..da926aad --- /dev/null +++ b/src/models/components/subscriberpayloaddto.ts @@ -0,0 +1,144 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type Data = {}; + +export type SubscriberPayloadDto = { + /** + * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + */ + subscriberId: string; + email?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + phone?: string | undefined; + /** + * An http url to the profile image of your subscriber + */ + avatar?: string | undefined; + locale?: string | undefined; + data?: Data | undefined; + channels?: Array | undefined; +}; + +/** @internal */ +export const Data$inboundSchema: z.ZodType = z + .object({}); + +/** @internal */ +export type Data$Outbound = {}; + +/** @internal */ +export const Data$outboundSchema: z.ZodType = + z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Data$ { + /** @deprecated use `Data$inboundSchema` instead. */ + export const inboundSchema = Data$inboundSchema; + /** @deprecated use `Data$outboundSchema` instead. */ + export const outboundSchema = Data$outboundSchema; + /** @deprecated use `Data$Outbound` instead. */ + export type Outbound = Data$Outbound; +} + +export function dataToJSON(data: Data): string { + return JSON.stringify(Data$outboundSchema.parse(data)); +} + +export function dataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Data$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Data' from JSON`, + ); +} + +/** @internal */ +export const SubscriberPayloadDto$inboundSchema: z.ZodType< + SubscriberPayloadDto, + z.ZodTypeDef, + unknown +> = z.object({ + subscriberId: z.string(), + email: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => Data$inboundSchema).optional(), + channels: z.array(z.string()).optional(), +}); + +/** @internal */ +export type SubscriberPayloadDto$Outbound = { + subscriberId: string; + email?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + data?: Data$Outbound | undefined; + channels?: Array | undefined; +}; + +/** @internal */ +export const SubscriberPayloadDto$outboundSchema: z.ZodType< + SubscriberPayloadDto$Outbound, + z.ZodTypeDef, + SubscriberPayloadDto +> = z.object({ + subscriberId: z.string(), + email: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => Data$outboundSchema).optional(), + channels: z.array(z.string()).optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscriberPayloadDto$ { + /** @deprecated use `SubscriberPayloadDto$inboundSchema` instead. */ + export const inboundSchema = SubscriberPayloadDto$inboundSchema; + /** @deprecated use `SubscriberPayloadDto$outboundSchema` instead. */ + export const outboundSchema = SubscriberPayloadDto$outboundSchema; + /** @deprecated use `SubscriberPayloadDto$Outbound` instead. */ + export type Outbound = SubscriberPayloadDto$Outbound; +} + +export function subscriberPayloadDtoToJSON( + subscriberPayloadDto: SubscriberPayloadDto, +): string { + return JSON.stringify( + SubscriberPayloadDto$outboundSchema.parse(subscriberPayloadDto), + ); +} + +export function subscriberPayloadDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SubscriberPayloadDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SubscriberPayloadDto' from JSON`, + ); +} diff --git a/src/models/components/subscriberresponsedto.ts b/src/models/components/subscriberresponsedto.ts new file mode 100644 index 00000000..24f069d6 --- /dev/null +++ b/src/models/components/subscriberresponsedto.ts @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + ChannelSettings, + ChannelSettings$inboundSchema, + ChannelSettings$Outbound, + ChannelSettings$outboundSchema, +} from "./channelsettings.js"; + +export type SubscriberResponseDto = { + /** + * The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + */ + id?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + email?: string | undefined; + phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + /** + * The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + */ + subscriberId: string; + /** + * Channels settings for subscriber + */ + channels?: Array | undefined; + /** + * Topics that subscriber belongs to + */ + topics?: Array | undefined; + isOnline?: boolean | undefined; + lastOnlineAt?: string | undefined; + organizationId: string; + environmentId: string; + deleted: boolean; + createdAt: string; + updatedAt: string; + v?: number | undefined; +}; + +/** @internal */ +export const SubscriberResponseDto$inboundSchema: z.ZodType< + SubscriberResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + email: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + subscriberId: z.string(), + channels: z.array(ChannelSettings$inboundSchema).optional(), + topics: z.array(z.string()).optional(), + isOnline: z.boolean().optional(), + lastOnlineAt: z.string().optional(), + _organizationId: z.string(), + _environmentId: z.string(), + deleted: z.boolean(), + createdAt: z.string(), + updatedAt: z.string(), + __v: z.number().optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", + "_environmentId": "environmentId", + "__v": "v", + }); +}); + +/** @internal */ +export type SubscriberResponseDto$Outbound = { + _id?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + email?: string | undefined; + phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + subscriberId: string; + channels?: Array | undefined; + topics?: Array | undefined; + isOnline?: boolean | undefined; + lastOnlineAt?: string | undefined; + _organizationId: string; + _environmentId: string; + deleted: boolean; + createdAt: string; + updatedAt: string; + __v?: number | undefined; +}; + +/** @internal */ +export const SubscriberResponseDto$outboundSchema: z.ZodType< + SubscriberResponseDto$Outbound, + z.ZodTypeDef, + SubscriberResponseDto +> = z.object({ + id: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + email: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + subscriberId: z.string(), + channels: z.array(ChannelSettings$outboundSchema).optional(), + topics: z.array(z.string()).optional(), + isOnline: z.boolean().optional(), + lastOnlineAt: z.string().optional(), + organizationId: z.string(), + environmentId: z.string(), + deleted: z.boolean(), + createdAt: z.string(), + updatedAt: z.string(), + v: z.number().optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + organizationId: "_organizationId", + environmentId: "_environmentId", + v: "__v", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscriberResponseDto$ { + /** @deprecated use `SubscriberResponseDto$inboundSchema` instead. */ + export const inboundSchema = SubscriberResponseDto$inboundSchema; + /** @deprecated use `SubscriberResponseDto$outboundSchema` instead. */ + export const outboundSchema = SubscriberResponseDto$outboundSchema; + /** @deprecated use `SubscriberResponseDto$Outbound` instead. */ + export type Outbound = SubscriberResponseDto$Outbound; +} + +export function subscriberResponseDtoToJSON( + subscriberResponseDto: SubscriberResponseDto, +): string { + return JSON.stringify( + SubscriberResponseDto$outboundSchema.parse(subscriberResponseDto), + ); +} + +export function subscriberResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SubscriberResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SubscriberResponseDto' from JSON`, + ); +} diff --git a/src/models/components/templateresponse.ts b/src/models/components/templateresponse.ts new file mode 100644 index 00000000..04894f27 --- /dev/null +++ b/src/models/components/templateresponse.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TemplateResponse = { + /** + * Unique identifier of the workflow + */ + id: string; + /** + * Name of the workflow + */ + name: string; + /** + * Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + */ + critical: boolean; + /** + * Triggers are the events that will trigger the workflow. + */ + triggers: Array; +}; + +/** @internal */ +export const TemplateResponse$inboundSchema: z.ZodType< + TemplateResponse, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string(), + name: z.string(), + critical: z.boolean(), + triggers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + "_id": "id", + }); +}); + +/** @internal */ +export type TemplateResponse$Outbound = { + _id: string; + name: string; + critical: boolean; + triggers: Array; +}; + +/** @internal */ +export const TemplateResponse$outboundSchema: z.ZodType< + TemplateResponse$Outbound, + z.ZodTypeDef, + TemplateResponse +> = z.object({ + id: z.string(), + name: z.string(), + critical: z.boolean(), + triggers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + id: "_id", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TemplateResponse$ { + /** @deprecated use `TemplateResponse$inboundSchema` instead. */ + export const inboundSchema = TemplateResponse$inboundSchema; + /** @deprecated use `TemplateResponse$outboundSchema` instead. */ + export const outboundSchema = TemplateResponse$outboundSchema; + /** @deprecated use `TemplateResponse$Outbound` instead. */ + export type Outbound = TemplateResponse$Outbound; +} + +export function templateResponseToJSON( + templateResponse: TemplateResponse, +): string { + return JSON.stringify( + TemplateResponse$outboundSchema.parse(templateResponse), + ); +} + +export function templateResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TemplateResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TemplateResponse' from JSON`, + ); +} diff --git a/src/models/components/tenantpayloaddto.ts b/src/models/components/tenantpayloaddto.ts new file mode 100644 index 00000000..25a1ac9d --- /dev/null +++ b/src/models/components/tenantpayloaddto.ts @@ -0,0 +1,124 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TenantPayloadDtoData = {}; + +export type TenantPayloadDto = { + identifier?: string | undefined; + name?: string | undefined; + data?: TenantPayloadDtoData | undefined; +}; + +/** @internal */ +export const TenantPayloadDtoData$inboundSchema: z.ZodType< + TenantPayloadDtoData, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type TenantPayloadDtoData$Outbound = {}; + +/** @internal */ +export const TenantPayloadDtoData$outboundSchema: z.ZodType< + TenantPayloadDtoData$Outbound, + z.ZodTypeDef, + TenantPayloadDtoData +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TenantPayloadDtoData$ { + /** @deprecated use `TenantPayloadDtoData$inboundSchema` instead. */ + export const inboundSchema = TenantPayloadDtoData$inboundSchema; + /** @deprecated use `TenantPayloadDtoData$outboundSchema` instead. */ + export const outboundSchema = TenantPayloadDtoData$outboundSchema; + /** @deprecated use `TenantPayloadDtoData$Outbound` instead. */ + export type Outbound = TenantPayloadDtoData$Outbound; +} + +export function tenantPayloadDtoDataToJSON( + tenantPayloadDtoData: TenantPayloadDtoData, +): string { + return JSON.stringify( + TenantPayloadDtoData$outboundSchema.parse(tenantPayloadDtoData), + ); +} + +export function tenantPayloadDtoDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TenantPayloadDtoData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TenantPayloadDtoData' from JSON`, + ); +} + +/** @internal */ +export const TenantPayloadDto$inboundSchema: z.ZodType< + TenantPayloadDto, + z.ZodTypeDef, + unknown +> = z.object({ + identifier: z.string().optional(), + name: z.string().optional(), + data: z.lazy(() => TenantPayloadDtoData$inboundSchema).optional(), +}); + +/** @internal */ +export type TenantPayloadDto$Outbound = { + identifier?: string | undefined; + name?: string | undefined; + data?: TenantPayloadDtoData$Outbound | undefined; +}; + +/** @internal */ +export const TenantPayloadDto$outboundSchema: z.ZodType< + TenantPayloadDto$Outbound, + z.ZodTypeDef, + TenantPayloadDto +> = z.object({ + identifier: z.string().optional(), + name: z.string().optional(), + data: z.lazy(() => TenantPayloadDtoData$outboundSchema).optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TenantPayloadDto$ { + /** @deprecated use `TenantPayloadDto$inboundSchema` instead. */ + export const inboundSchema = TenantPayloadDto$inboundSchema; + /** @deprecated use `TenantPayloadDto$outboundSchema` instead. */ + export const outboundSchema = TenantPayloadDto$outboundSchema; + /** @deprecated use `TenantPayloadDto$Outbound` instead. */ + export type Outbound = TenantPayloadDto$Outbound; +} + +export function tenantPayloadDtoToJSON( + tenantPayloadDto: TenantPayloadDto, +): string { + return JSON.stringify( + TenantPayloadDto$outboundSchema.parse(tenantPayloadDto), + ); +} + +export function tenantPayloadDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TenantPayloadDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TenantPayloadDto' from JSON`, + ); +} diff --git a/src/models/components/timedconfig.ts b/src/models/components/timedconfig.ts new file mode 100644 index 00000000..15330964 --- /dev/null +++ b/src/models/components/timedconfig.ts @@ -0,0 +1,200 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const WeekDays = { + Monday: "monday", + Tuesday: "tuesday", + Wednesday: "wednesday", + Thursday: "thursday", + Friday: "friday", + Saturday: "saturday", + Sunday: "sunday", +} as const; +export type WeekDays = ClosedEnum; + +export const Ordinal = { + One: "1", + Two: "2", + Three: "3", + Four: "4", + Five: "5", + Last: "last", +} as const; +export type Ordinal = ClosedEnum; + +export const OrdinalValue = { + Day: "day", + Weekday: "weekday", + Weekend: "weekend", + Sunday: "sunday", + Monday: "monday", + Tuesday: "tuesday", + Wednesday: "wednesday", + Thursday: "thursday", + Friday: "friday", + Saturday: "saturday", +} as const; +export type OrdinalValue = ClosedEnum; + +export const MonthlyType = { + Each: "each", + On: "on", +} as const; +export type MonthlyType = ClosedEnum; + +export type TimedConfig = { + atTime?: string | undefined; + weekDays?: Array | undefined; + monthDays?: Array | undefined; + ordinal?: Ordinal | undefined; + ordinalValue?: OrdinalValue | undefined; + monthlyType?: MonthlyType | undefined; +}; + +/** @internal */ +export const WeekDays$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(WeekDays); + +/** @internal */ +export const WeekDays$outboundSchema: z.ZodNativeEnum = + WeekDays$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace WeekDays$ { + /** @deprecated use `WeekDays$inboundSchema` instead. */ + export const inboundSchema = WeekDays$inboundSchema; + /** @deprecated use `WeekDays$outboundSchema` instead. */ + export const outboundSchema = WeekDays$outboundSchema; +} + +/** @internal */ +export const Ordinal$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Ordinal); + +/** @internal */ +export const Ordinal$outboundSchema: z.ZodNativeEnum = + Ordinal$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Ordinal$ { + /** @deprecated use `Ordinal$inboundSchema` instead. */ + export const inboundSchema = Ordinal$inboundSchema; + /** @deprecated use `Ordinal$outboundSchema` instead. */ + export const outboundSchema = Ordinal$outboundSchema; +} + +/** @internal */ +export const OrdinalValue$inboundSchema: z.ZodNativeEnum = + z.nativeEnum(OrdinalValue); + +/** @internal */ +export const OrdinalValue$outboundSchema: z.ZodNativeEnum = + OrdinalValue$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace OrdinalValue$ { + /** @deprecated use `OrdinalValue$inboundSchema` instead. */ + export const inboundSchema = OrdinalValue$inboundSchema; + /** @deprecated use `OrdinalValue$outboundSchema` instead. */ + export const outboundSchema = OrdinalValue$outboundSchema; +} + +/** @internal */ +export const MonthlyType$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(MonthlyType); + +/** @internal */ +export const MonthlyType$outboundSchema: z.ZodNativeEnum = + MonthlyType$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MonthlyType$ { + /** @deprecated use `MonthlyType$inboundSchema` instead. */ + export const inboundSchema = MonthlyType$inboundSchema; + /** @deprecated use `MonthlyType$outboundSchema` instead. */ + export const outboundSchema = MonthlyType$outboundSchema; +} + +/** @internal */ +export const TimedConfig$inboundSchema: z.ZodType< + TimedConfig, + z.ZodTypeDef, + unknown +> = z.object({ + atTime: z.string().optional(), + weekDays: z.array(WeekDays$inboundSchema).optional(), + monthDays: z.array(z.string()).optional(), + ordinal: Ordinal$inboundSchema.optional(), + ordinalValue: OrdinalValue$inboundSchema.optional(), + monthlyType: MonthlyType$inboundSchema.optional(), +}); + +/** @internal */ +export type TimedConfig$Outbound = { + atTime?: string | undefined; + weekDays?: Array | undefined; + monthDays?: Array | undefined; + ordinal?: string | undefined; + ordinalValue?: string | undefined; + monthlyType?: string | undefined; +}; + +/** @internal */ +export const TimedConfig$outboundSchema: z.ZodType< + TimedConfig$Outbound, + z.ZodTypeDef, + TimedConfig +> = z.object({ + atTime: z.string().optional(), + weekDays: z.array(WeekDays$outboundSchema).optional(), + monthDays: z.array(z.string()).optional(), + ordinal: Ordinal$outboundSchema.optional(), + ordinalValue: OrdinalValue$outboundSchema.optional(), + monthlyType: MonthlyType$outboundSchema.optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TimedConfig$ { + /** @deprecated use `TimedConfig$inboundSchema` instead. */ + export const inboundSchema = TimedConfig$inboundSchema; + /** @deprecated use `TimedConfig$outboundSchema` instead. */ + export const outboundSchema = TimedConfig$outboundSchema; + /** @deprecated use `TimedConfig$Outbound` instead. */ + export type Outbound = TimedConfig$Outbound; +} + +export function timedConfigToJSON(timedConfig: TimedConfig): string { + return JSON.stringify(TimedConfig$outboundSchema.parse(timedConfig)); +} + +export function timedConfigFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TimedConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TimedConfig' from JSON`, + ); +} diff --git a/src/models/components/topicdto.ts b/src/models/components/topicdto.ts new file mode 100644 index 00000000..277aa072 --- /dev/null +++ b/src/models/components/topicdto.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicDto = { + id?: string | undefined; + organizationId: string; + environmentId: string; + key: string; + name: string; + subscribers: Array; +}; + +/** @internal */ +export const TopicDto$inboundSchema: z.ZodType< + TopicDto, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + _organizationId: z.string(), + _environmentId: z.string(), + key: z.string(), + name: z.string(), + subscribers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", + "_environmentId": "environmentId", + }); +}); + +/** @internal */ +export type TopicDto$Outbound = { + _id?: string | undefined; + _organizationId: string; + _environmentId: string; + key: string; + name: string; + subscribers: Array; +}; + +/** @internal */ +export const TopicDto$outboundSchema: z.ZodType< + TopicDto$Outbound, + z.ZodTypeDef, + TopicDto +> = z.object({ + id: z.string().optional(), + organizationId: z.string(), + environmentId: z.string(), + key: z.string(), + name: z.string(), + subscribers: z.array(z.string()), +}).transform((v) => { + return remap$(v, { + id: "_id", + organizationId: "_organizationId", + environmentId: "_environmentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicDto$ { + /** @deprecated use `TopicDto$inboundSchema` instead. */ + export const inboundSchema = TopicDto$inboundSchema; + /** @deprecated use `TopicDto$outboundSchema` instead. */ + export const outboundSchema = TopicDto$outboundSchema; + /** @deprecated use `TopicDto$Outbound` instead. */ + export type Outbound = TopicDto$Outbound; +} + +export function topicDtoToJSON(topicDto: TopicDto): string { + return JSON.stringify(TopicDto$outboundSchema.parse(topicDto)); +} + +export function topicDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicDto' from JSON`, + ); +} diff --git a/src/models/components/topicpayloaddto.ts b/src/models/components/topicpayloaddto.ts new file mode 100644 index 00000000..e23a509b --- /dev/null +++ b/src/models/components/topicpayloaddto.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const Type = { + Subscriber: "Subscriber", + Topic: "Topic", +} as const; +export type Type = ClosedEnum; + +export type TopicPayloadDto = { + topicKey: string; + type: Type; +}; + +/** @internal */ +export const Type$inboundSchema: z.ZodNativeEnum = z.nativeEnum( + Type, +); + +/** @internal */ +export const Type$outboundSchema: z.ZodNativeEnum = + Type$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Type$ { + /** @deprecated use `Type$inboundSchema` instead. */ + export const inboundSchema = Type$inboundSchema; + /** @deprecated use `Type$outboundSchema` instead. */ + export const outboundSchema = Type$outboundSchema; +} + +/** @internal */ +export const TopicPayloadDto$inboundSchema: z.ZodType< + TopicPayloadDto, + z.ZodTypeDef, + unknown +> = z.object({ + topicKey: z.string(), + type: Type$inboundSchema, +}); + +/** @internal */ +export type TopicPayloadDto$Outbound = { + topicKey: string; + type: string; +}; + +/** @internal */ +export const TopicPayloadDto$outboundSchema: z.ZodType< + TopicPayloadDto$Outbound, + z.ZodTypeDef, + TopicPayloadDto +> = z.object({ + topicKey: z.string(), + type: Type$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicPayloadDto$ { + /** @deprecated use `TopicPayloadDto$inboundSchema` instead. */ + export const inboundSchema = TopicPayloadDto$inboundSchema; + /** @deprecated use `TopicPayloadDto$outboundSchema` instead. */ + export const outboundSchema = TopicPayloadDto$outboundSchema; + /** @deprecated use `TopicPayloadDto$Outbound` instead. */ + export type Outbound = TopicPayloadDto$Outbound; +} + +export function topicPayloadDtoToJSON( + topicPayloadDto: TopicPayloadDto, +): string { + return JSON.stringify(TopicPayloadDto$outboundSchema.parse(topicPayloadDto)); +} + +export function topicPayloadDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicPayloadDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicPayloadDto' from JSON`, + ); +} diff --git a/src/models/components/topicsubscriberdto.ts b/src/models/components/topicsubscriberdto.ts new file mode 100644 index 00000000..974296fb --- /dev/null +++ b/src/models/components/topicsubscriberdto.ts @@ -0,0 +1,101 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicSubscriberDto = { + organizationId: string; + environmentId: string; + subscriberId: string; + topicId: string; + topicKey: string; + externalSubscriberId: string; +}; + +/** @internal */ +export const TopicSubscriberDto$inboundSchema: z.ZodType< + TopicSubscriberDto, + z.ZodTypeDef, + unknown +> = z.object({ + _organizationId: z.string(), + _environmentId: z.string(), + _subscriberId: z.string(), + _topicId: z.string(), + topicKey: z.string(), + externalSubscriberId: z.string(), +}).transform((v) => { + return remap$(v, { + "_organizationId": "organizationId", + "_environmentId": "environmentId", + "_subscriberId": "subscriberId", + "_topicId": "topicId", + }); +}); + +/** @internal */ +export type TopicSubscriberDto$Outbound = { + _organizationId: string; + _environmentId: string; + _subscriberId: string; + _topicId: string; + topicKey: string; + externalSubscriberId: string; +}; + +/** @internal */ +export const TopicSubscriberDto$outboundSchema: z.ZodType< + TopicSubscriberDto$Outbound, + z.ZodTypeDef, + TopicSubscriberDto +> = z.object({ + organizationId: z.string(), + environmentId: z.string(), + subscriberId: z.string(), + topicId: z.string(), + topicKey: z.string(), + externalSubscriberId: z.string(), +}).transform((v) => { + return remap$(v, { + organizationId: "_organizationId", + environmentId: "_environmentId", + subscriberId: "_subscriberId", + topicId: "_topicId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicSubscriberDto$ { + /** @deprecated use `TopicSubscriberDto$inboundSchema` instead. */ + export const inboundSchema = TopicSubscriberDto$inboundSchema; + /** @deprecated use `TopicSubscriberDto$outboundSchema` instead. */ + export const outboundSchema = TopicSubscriberDto$outboundSchema; + /** @deprecated use `TopicSubscriberDto$Outbound` instead. */ + export type Outbound = TopicSubscriberDto$Outbound; +} + +export function topicSubscriberDtoToJSON( + topicSubscriberDto: TopicSubscriberDto, +): string { + return JSON.stringify( + TopicSubscriberDto$outboundSchema.parse(topicSubscriberDto), + ); +} + +export function topicSubscriberDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicSubscriberDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicSubscriberDto' from JSON`, + ); +} diff --git a/src/models/components/triggereventrequestdto.ts b/src/models/components/triggereventrequestdto.ts new file mode 100644 index 00000000..6409a61a --- /dev/null +++ b/src/models/components/triggereventrequestdto.ts @@ -0,0 +1,450 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + SubscriberPayloadDto, + SubscriberPayloadDto$inboundSchema, + SubscriberPayloadDto$Outbound, + SubscriberPayloadDto$outboundSchema, +} from "./subscriberpayloaddto.js"; +import { + TenantPayloadDto, + TenantPayloadDto$inboundSchema, + TenantPayloadDto$Outbound, + TenantPayloadDto$outboundSchema, +} from "./tenantpayloaddto.js"; +import { + TopicPayloadDto, + TopicPayloadDto$inboundSchema, + TopicPayloadDto$Outbound, + TopicPayloadDto$outboundSchema, +} from "./topicpayloaddto.js"; + +/** + * The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. + * + * @remarks + * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + */ +export type Payload = {}; + +/** + * This could be used to override provider specific configurations + */ +export type Overrides = {}; + +export type To = TopicPayloadDto | SubscriberPayloadDto | string; + +/** + * It is used to display the Avatar of the provided actor's subscriber id or actor object. + * + * @remarks + * If a new actor object is provided, we will create a new subscriber in our system + */ +export type Actor = SubscriberPayloadDto | string; + +/** + * It is used to specify a tenant context during trigger event. + * + * @remarks + * Existing tenants will be updated with the provided details. + */ +export type Tenant = TenantPayloadDto | string; + +export type Controls = {}; + +export type TriggerEventRequestDto = { + /** + * The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + */ + name: string; + /** + * The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. + * + * @remarks + * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + */ + payload?: Payload | undefined; + /** + * This could be used to override provider specific configurations + */ + overrides?: Overrides | undefined; + /** + * The recipients list of people who will receive the notification. + */ + to: Array; + /** + * A unique identifier for this transaction, we will generated a UUID if not provided. + */ + transactionId?: string | undefined; + /** + * It is used to display the Avatar of the provided actor's subscriber id or actor object. + * + * @remarks + * If a new actor object is provided, we will create a new subscriber in our system + */ + actor?: SubscriberPayloadDto | string | undefined; + /** + * It is used to specify a tenant context during trigger event. + * + * @remarks + * Existing tenants will be updated with the provided details. + */ + tenant?: TenantPayloadDto | string | undefined; + bridgeUrl?: string | undefined; + controls?: Controls | undefined; +}; + +/** @internal */ +export const Payload$inboundSchema: z.ZodType = + z.object({}); + +/** @internal */ +export type Payload$Outbound = {}; + +/** @internal */ +export const Payload$outboundSchema: z.ZodType< + Payload$Outbound, + z.ZodTypeDef, + Payload +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Payload$ { + /** @deprecated use `Payload$inboundSchema` instead. */ + export const inboundSchema = Payload$inboundSchema; + /** @deprecated use `Payload$outboundSchema` instead. */ + export const outboundSchema = Payload$outboundSchema; + /** @deprecated use `Payload$Outbound` instead. */ + export type Outbound = Payload$Outbound; +} + +export function payloadToJSON(payload: Payload): string { + return JSON.stringify(Payload$outboundSchema.parse(payload)); +} + +export function payloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Payload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Payload' from JSON`, + ); +} + +/** @internal */ +export const Overrides$inboundSchema: z.ZodType< + Overrides, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type Overrides$Outbound = {}; + +/** @internal */ +export const Overrides$outboundSchema: z.ZodType< + Overrides$Outbound, + z.ZodTypeDef, + Overrides +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Overrides$ { + /** @deprecated use `Overrides$inboundSchema` instead. */ + export const inboundSchema = Overrides$inboundSchema; + /** @deprecated use `Overrides$outboundSchema` instead. */ + export const outboundSchema = Overrides$outboundSchema; + /** @deprecated use `Overrides$Outbound` instead. */ + export type Outbound = Overrides$Outbound; +} + +export function overridesToJSON(overrides: Overrides): string { + return JSON.stringify(Overrides$outboundSchema.parse(overrides)); +} + +export function overridesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Overrides$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Overrides' from JSON`, + ); +} + +/** @internal */ +export const To$inboundSchema: z.ZodType = z.union([ + TopicPayloadDto$inboundSchema, + SubscriberPayloadDto$inboundSchema, + z.string(), +]); + +/** @internal */ +export type To$Outbound = + | TopicPayloadDto$Outbound + | SubscriberPayloadDto$Outbound + | string; + +/** @internal */ +export const To$outboundSchema: z.ZodType = z + .union([ + TopicPayloadDto$outboundSchema, + SubscriberPayloadDto$outboundSchema, + z.string(), + ]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace To$ { + /** @deprecated use `To$inboundSchema` instead. */ + export const inboundSchema = To$inboundSchema; + /** @deprecated use `To$outboundSchema` instead. */ + export const outboundSchema = To$outboundSchema; + /** @deprecated use `To$Outbound` instead. */ + export type Outbound = To$Outbound; +} + +export function toToJSON(to: To): string { + return JSON.stringify(To$outboundSchema.parse(to)); +} + +export function toFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => To$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'To' from JSON`, + ); +} + +/** @internal */ +export const Actor$inboundSchema: z.ZodType = z + .union([SubscriberPayloadDto$inboundSchema, z.string()]); + +/** @internal */ +export type Actor$Outbound = SubscriberPayloadDto$Outbound | string; + +/** @internal */ +export const Actor$outboundSchema: z.ZodType< + Actor$Outbound, + z.ZodTypeDef, + Actor +> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Actor$ { + /** @deprecated use `Actor$inboundSchema` instead. */ + export const inboundSchema = Actor$inboundSchema; + /** @deprecated use `Actor$outboundSchema` instead. */ + export const outboundSchema = Actor$outboundSchema; + /** @deprecated use `Actor$Outbound` instead. */ + export type Outbound = Actor$Outbound; +} + +export function actorToJSON(actor: Actor): string { + return JSON.stringify(Actor$outboundSchema.parse(actor)); +} + +export function actorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Actor$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Actor' from JSON`, + ); +} + +/** @internal */ +export const Tenant$inboundSchema: z.ZodType = z + .union([TenantPayloadDto$inboundSchema, z.string()]); + +/** @internal */ +export type Tenant$Outbound = TenantPayloadDto$Outbound | string; + +/** @internal */ +export const Tenant$outboundSchema: z.ZodType< + Tenant$Outbound, + z.ZodTypeDef, + Tenant +> = z.union([TenantPayloadDto$outboundSchema, z.string()]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Tenant$ { + /** @deprecated use `Tenant$inboundSchema` instead. */ + export const inboundSchema = Tenant$inboundSchema; + /** @deprecated use `Tenant$outboundSchema` instead. */ + export const outboundSchema = Tenant$outboundSchema; + /** @deprecated use `Tenant$Outbound` instead. */ + export type Outbound = Tenant$Outbound; +} + +export function tenantToJSON(tenant: Tenant): string { + return JSON.stringify(Tenant$outboundSchema.parse(tenant)); +} + +export function tenantFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Tenant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Tenant' from JSON`, + ); +} + +/** @internal */ +export const Controls$inboundSchema: z.ZodType< + Controls, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type Controls$Outbound = {}; + +/** @internal */ +export const Controls$outboundSchema: z.ZodType< + Controls$Outbound, + z.ZodTypeDef, + Controls +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Controls$ { + /** @deprecated use `Controls$inboundSchema` instead. */ + export const inboundSchema = Controls$inboundSchema; + /** @deprecated use `Controls$outboundSchema` instead. */ + export const outboundSchema = Controls$outboundSchema; + /** @deprecated use `Controls$Outbound` instead. */ + export type Outbound = Controls$Outbound; +} + +export function controlsToJSON(controls: Controls): string { + return JSON.stringify(Controls$outboundSchema.parse(controls)); +} + +export function controlsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Controls$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Controls' from JSON`, + ); +} + +/** @internal */ +export const TriggerEventRequestDto$inboundSchema: z.ZodType< + TriggerEventRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + name: z.string(), + payload: z.lazy(() => Payload$inboundSchema).optional(), + overrides: z.lazy(() => Overrides$inboundSchema).optional(), + to: z.array( + z.union([ + TopicPayloadDto$inboundSchema, + SubscriberPayloadDto$inboundSchema, + z.string(), + ]), + ), + transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), + bridgeUrl: z.string().optional(), + controls: z.lazy(() => Controls$inboundSchema).optional(), +}); + +/** @internal */ +export type TriggerEventRequestDto$Outbound = { + name: string; + payload?: Payload$Outbound | undefined; + overrides?: Overrides$Outbound | undefined; + to: Array; + transactionId?: string | undefined; + actor?: SubscriberPayloadDto$Outbound | string | undefined; + tenant?: TenantPayloadDto$Outbound | string | undefined; + bridgeUrl?: string | undefined; + controls?: Controls$Outbound | undefined; +}; + +/** @internal */ +export const TriggerEventRequestDto$outboundSchema: z.ZodType< + TriggerEventRequestDto$Outbound, + z.ZodTypeDef, + TriggerEventRequestDto +> = z.object({ + name: z.string(), + payload: z.lazy(() => Payload$outboundSchema).optional(), + overrides: z.lazy(() => Overrides$outboundSchema).optional(), + to: z.array( + z.union([ + TopicPayloadDto$outboundSchema, + SubscriberPayloadDto$outboundSchema, + z.string(), + ]), + ), + transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), + bridgeUrl: z.string().optional(), + controls: z.lazy(() => Controls$outboundSchema).optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventRequestDto$ { + /** @deprecated use `TriggerEventRequestDto$inboundSchema` instead. */ + export const inboundSchema = TriggerEventRequestDto$inboundSchema; + /** @deprecated use `TriggerEventRequestDto$outboundSchema` instead. */ + export const outboundSchema = TriggerEventRequestDto$outboundSchema; + /** @deprecated use `TriggerEventRequestDto$Outbound` instead. */ + export type Outbound = TriggerEventRequestDto$Outbound; +} + +export function triggerEventRequestDtoToJSON( + triggerEventRequestDto: TriggerEventRequestDto, +): string { + return JSON.stringify( + TriggerEventRequestDto$outboundSchema.parse(triggerEventRequestDto), + ); +} + +export function triggerEventRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventRequestDto' from JSON`, + ); +} diff --git a/src/models/components/triggereventresponsedto.ts b/src/models/components/triggereventresponsedto.ts new file mode 100644 index 00000000..e29dd9df --- /dev/null +++ b/src/models/components/triggereventresponsedto.ts @@ -0,0 +1,131 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * Status for trigger + */ +export const TriggerEventResponseDtoStatus = { + Error: "error", + TriggerNotActive: "trigger_not_active", + NoWorkflowActiveStepsDefined: "no_workflow_active_steps_defined", + NoWorkflowStepsDefined: "no_workflow_steps_defined", + Processed: "processed", + SubscriberIdMissing: "subscriber_id_missing", + NoTenantFound: "no_tenant_found", +} as const; +/** + * Status for trigger + */ +export type TriggerEventResponseDtoStatus = ClosedEnum< + typeof TriggerEventResponseDtoStatus +>; + +export type TriggerEventResponseDto = { + /** + * If trigger was acknowledged or not + */ + acknowledged: boolean; + /** + * Status for trigger + */ + status: TriggerEventResponseDtoStatus; + /** + * In case of an error, this field will contain the error message + */ + error?: Array | undefined; + /** + * Transaction id for trigger + */ + transactionId?: string | undefined; +}; + +/** @internal */ +export const TriggerEventResponseDtoStatus$inboundSchema: z.ZodNativeEnum< + typeof TriggerEventResponseDtoStatus +> = z.nativeEnum(TriggerEventResponseDtoStatus); + +/** @internal */ +export const TriggerEventResponseDtoStatus$outboundSchema: z.ZodNativeEnum< + typeof TriggerEventResponseDtoStatus +> = TriggerEventResponseDtoStatus$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventResponseDtoStatus$ { + /** @deprecated use `TriggerEventResponseDtoStatus$inboundSchema` instead. */ + export const inboundSchema = TriggerEventResponseDtoStatus$inboundSchema; + /** @deprecated use `TriggerEventResponseDtoStatus$outboundSchema` instead. */ + export const outboundSchema = TriggerEventResponseDtoStatus$outboundSchema; +} + +/** @internal */ +export const TriggerEventResponseDto$inboundSchema: z.ZodType< + TriggerEventResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + acknowledged: z.boolean(), + status: TriggerEventResponseDtoStatus$inboundSchema, + error: z.array(z.string()).optional(), + transactionId: z.string().optional(), +}); + +/** @internal */ +export type TriggerEventResponseDto$Outbound = { + acknowledged: boolean; + status: string; + error?: Array | undefined; + transactionId?: string | undefined; +}; + +/** @internal */ +export const TriggerEventResponseDto$outboundSchema: z.ZodType< + TriggerEventResponseDto$Outbound, + z.ZodTypeDef, + TriggerEventResponseDto +> = z.object({ + acknowledged: z.boolean(), + status: TriggerEventResponseDtoStatus$outboundSchema, + error: z.array(z.string()).optional(), + transactionId: z.string().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventResponseDto$ { + /** @deprecated use `TriggerEventResponseDto$inboundSchema` instead. */ + export const inboundSchema = TriggerEventResponseDto$inboundSchema; + /** @deprecated use `TriggerEventResponseDto$outboundSchema` instead. */ + export const outboundSchema = TriggerEventResponseDto$outboundSchema; + /** @deprecated use `TriggerEventResponseDto$Outbound` instead. */ + export type Outbound = TriggerEventResponseDto$Outbound; +} + +export function triggerEventResponseDtoToJSON( + triggerEventResponseDto: TriggerEventResponseDto, +): string { + return JSON.stringify( + TriggerEventResponseDto$outboundSchema.parse(triggerEventResponseDto), + ); +} + +export function triggerEventResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventResponseDto' from JSON`, + ); +} diff --git a/src/models/components/triggereventtoallrequestdto.ts b/src/models/components/triggereventtoallrequestdto.ts new file mode 100644 index 00000000..991659bb --- /dev/null +++ b/src/models/components/triggereventtoallrequestdto.ts @@ -0,0 +1,368 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + SubscriberPayloadDto, + SubscriberPayloadDto$inboundSchema, + SubscriberPayloadDto$Outbound, + SubscriberPayloadDto$outboundSchema, +} from "./subscriberpayloaddto.js"; +import { + TenantPayloadDto, + TenantPayloadDto$inboundSchema, + TenantPayloadDto$Outbound, + TenantPayloadDto$outboundSchema, +} from "./tenantpayloaddto.js"; + +/** + * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. + * + * @remarks + * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + */ +export type TriggerEventToAllRequestDtoPayload = {}; + +/** + * This could be used to override provider specific configurations + */ +export type TriggerEventToAllRequestDtoOverrides = {}; + +/** + * It is used to display the Avatar of the provided actor's subscriber id or actor object. + * + * @remarks + * If a new actor object is provided, we will create a new subscriber in our system + */ +export type TriggerEventToAllRequestDtoActor = SubscriberPayloadDto | string; + +/** + * It is used to specify a tenant context during trigger event. + * + * @remarks + * If a new tenant object is provided, we will create a new tenant. + */ +export type TriggerEventToAllRequestDtoTenant = TenantPayloadDto | string; + +export type TriggerEventToAllRequestDto = { + /** + * The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + */ + name: string; + /** + * The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. + * + * @remarks + * This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + */ + payload: TriggerEventToAllRequestDtoPayload; + /** + * This could be used to override provider specific configurations + */ + overrides?: TriggerEventToAllRequestDtoOverrides | undefined; + /** + * A unique identifier for this transaction, we will generated a UUID if not provided. + */ + transactionId?: string | undefined; + /** + * It is used to display the Avatar of the provided actor's subscriber id or actor object. + * + * @remarks + * If a new actor object is provided, we will create a new subscriber in our system + */ + actor?: SubscriberPayloadDto | string | undefined; + /** + * It is used to specify a tenant context during trigger event. + * + * @remarks + * If a new tenant object is provided, we will create a new tenant. + */ + tenant?: TenantPayloadDto | string | undefined; +}; + +/** @internal */ +export const TriggerEventToAllRequestDtoPayload$inboundSchema: z.ZodType< + TriggerEventToAllRequestDtoPayload, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type TriggerEventToAllRequestDtoPayload$Outbound = {}; + +/** @internal */ +export const TriggerEventToAllRequestDtoPayload$outboundSchema: z.ZodType< + TriggerEventToAllRequestDtoPayload$Outbound, + z.ZodTypeDef, + TriggerEventToAllRequestDtoPayload +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventToAllRequestDtoPayload$ { + /** @deprecated use `TriggerEventToAllRequestDtoPayload$inboundSchema` instead. */ + export const inboundSchema = TriggerEventToAllRequestDtoPayload$inboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoPayload$outboundSchema` instead. */ + export const outboundSchema = + TriggerEventToAllRequestDtoPayload$outboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoPayload$Outbound` instead. */ + export type Outbound = TriggerEventToAllRequestDtoPayload$Outbound; +} + +export function triggerEventToAllRequestDtoPayloadToJSON( + triggerEventToAllRequestDtoPayload: TriggerEventToAllRequestDtoPayload, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoPayload$outboundSchema.parse( + triggerEventToAllRequestDtoPayload, + ), + ); +} + +export function triggerEventToAllRequestDtoPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TriggerEventToAllRequestDtoPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoPayload' from JSON`, + ); +} + +/** @internal */ +export const TriggerEventToAllRequestDtoOverrides$inboundSchema: z.ZodType< + TriggerEventToAllRequestDtoOverrides, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type TriggerEventToAllRequestDtoOverrides$Outbound = {}; + +/** @internal */ +export const TriggerEventToAllRequestDtoOverrides$outboundSchema: z.ZodType< + TriggerEventToAllRequestDtoOverrides$Outbound, + z.ZodTypeDef, + TriggerEventToAllRequestDtoOverrides +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventToAllRequestDtoOverrides$ { + /** @deprecated use `TriggerEventToAllRequestDtoOverrides$inboundSchema` instead. */ + export const inboundSchema = + TriggerEventToAllRequestDtoOverrides$inboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoOverrides$outboundSchema` instead. */ + export const outboundSchema = + TriggerEventToAllRequestDtoOverrides$outboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoOverrides$Outbound` instead. */ + export type Outbound = TriggerEventToAllRequestDtoOverrides$Outbound; +} + +export function triggerEventToAllRequestDtoOverridesToJSON( + triggerEventToAllRequestDtoOverrides: TriggerEventToAllRequestDtoOverrides, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoOverrides$outboundSchema.parse( + triggerEventToAllRequestDtoOverrides, + ), + ); +} + +export function triggerEventToAllRequestDtoOverridesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TriggerEventToAllRequestDtoOverrides$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoOverrides' from JSON`, + ); +} + +/** @internal */ +export const TriggerEventToAllRequestDtoActor$inboundSchema: z.ZodType< + TriggerEventToAllRequestDtoActor, + z.ZodTypeDef, + unknown +> = z.union([SubscriberPayloadDto$inboundSchema, z.string()]); + +/** @internal */ +export type TriggerEventToAllRequestDtoActor$Outbound = + | SubscriberPayloadDto$Outbound + | string; + +/** @internal */ +export const TriggerEventToAllRequestDtoActor$outboundSchema: z.ZodType< + TriggerEventToAllRequestDtoActor$Outbound, + z.ZodTypeDef, + TriggerEventToAllRequestDtoActor +> = z.union([SubscriberPayloadDto$outboundSchema, z.string()]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventToAllRequestDtoActor$ { + /** @deprecated use `TriggerEventToAllRequestDtoActor$inboundSchema` instead. */ + export const inboundSchema = TriggerEventToAllRequestDtoActor$inboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoActor$outboundSchema` instead. */ + export const outboundSchema = TriggerEventToAllRequestDtoActor$outboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoActor$Outbound` instead. */ + export type Outbound = TriggerEventToAllRequestDtoActor$Outbound; +} + +export function triggerEventToAllRequestDtoActorToJSON( + triggerEventToAllRequestDtoActor: TriggerEventToAllRequestDtoActor, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoActor$outboundSchema.parse( + triggerEventToAllRequestDtoActor, + ), + ); +} + +export function triggerEventToAllRequestDtoActorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventToAllRequestDtoActor$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoActor' from JSON`, + ); +} + +/** @internal */ +export const TriggerEventToAllRequestDtoTenant$inboundSchema: z.ZodType< + TriggerEventToAllRequestDtoTenant, + z.ZodTypeDef, + unknown +> = z.union([TenantPayloadDto$inboundSchema, z.string()]); + +/** @internal */ +export type TriggerEventToAllRequestDtoTenant$Outbound = + | TenantPayloadDto$Outbound + | string; + +/** @internal */ +export const TriggerEventToAllRequestDtoTenant$outboundSchema: z.ZodType< + TriggerEventToAllRequestDtoTenant$Outbound, + z.ZodTypeDef, + TriggerEventToAllRequestDtoTenant +> = z.union([TenantPayloadDto$outboundSchema, z.string()]); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventToAllRequestDtoTenant$ { + /** @deprecated use `TriggerEventToAllRequestDtoTenant$inboundSchema` instead. */ + export const inboundSchema = TriggerEventToAllRequestDtoTenant$inboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoTenant$outboundSchema` instead. */ + export const outboundSchema = + TriggerEventToAllRequestDtoTenant$outboundSchema; + /** @deprecated use `TriggerEventToAllRequestDtoTenant$Outbound` instead. */ + export type Outbound = TriggerEventToAllRequestDtoTenant$Outbound; +} + +export function triggerEventToAllRequestDtoTenantToJSON( + triggerEventToAllRequestDtoTenant: TriggerEventToAllRequestDtoTenant, +): string { + return JSON.stringify( + TriggerEventToAllRequestDtoTenant$outboundSchema.parse( + triggerEventToAllRequestDtoTenant, + ), + ); +} + +export function triggerEventToAllRequestDtoTenantFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventToAllRequestDtoTenant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDtoTenant' from JSON`, + ); +} + +/** @internal */ +export const TriggerEventToAllRequestDto$inboundSchema: z.ZodType< + TriggerEventToAllRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + name: z.string(), + payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$inboundSchema), + overrides: z.lazy(() => TriggerEventToAllRequestDtoOverrides$inboundSchema) + .optional(), + transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$inboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$inboundSchema, z.string()]).optional(), +}); + +/** @internal */ +export type TriggerEventToAllRequestDto$Outbound = { + name: string; + payload: TriggerEventToAllRequestDtoPayload$Outbound; + overrides?: TriggerEventToAllRequestDtoOverrides$Outbound | undefined; + transactionId?: string | undefined; + actor?: SubscriberPayloadDto$Outbound | string | undefined; + tenant?: TenantPayloadDto$Outbound | string | undefined; +}; + +/** @internal */ +export const TriggerEventToAllRequestDto$outboundSchema: z.ZodType< + TriggerEventToAllRequestDto$Outbound, + z.ZodTypeDef, + TriggerEventToAllRequestDto +> = z.object({ + name: z.string(), + payload: z.lazy(() => TriggerEventToAllRequestDtoPayload$outboundSchema), + overrides: z.lazy(() => TriggerEventToAllRequestDtoOverrides$outboundSchema) + .optional(), + transactionId: z.string().optional(), + actor: z.union([SubscriberPayloadDto$outboundSchema, z.string()]).optional(), + tenant: z.union([TenantPayloadDto$outboundSchema, z.string()]).optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TriggerEventToAllRequestDto$ { + /** @deprecated use `TriggerEventToAllRequestDto$inboundSchema` instead. */ + export const inboundSchema = TriggerEventToAllRequestDto$inboundSchema; + /** @deprecated use `TriggerEventToAllRequestDto$outboundSchema` instead. */ + export const outboundSchema = TriggerEventToAllRequestDto$outboundSchema; + /** @deprecated use `TriggerEventToAllRequestDto$Outbound` instead. */ + export type Outbound = TriggerEventToAllRequestDto$Outbound; +} + +export function triggerEventToAllRequestDtoToJSON( + triggerEventToAllRequestDto: TriggerEventToAllRequestDto, +): string { + return JSON.stringify( + TriggerEventToAllRequestDto$outboundSchema.parse( + triggerEventToAllRequestDto, + ), + ); +} + +export function triggerEventToAllRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TriggerEventToAllRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TriggerEventToAllRequestDto' from JSON`, + ); +} diff --git a/src/models/components/unseencountresponse.ts b/src/models/components/unseencountresponse.ts new file mode 100644 index 00000000..9964517e --- /dev/null +++ b/src/models/components/unseencountresponse.ts @@ -0,0 +1,66 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type UnseenCountResponse = { + count: number; +}; + +/** @internal */ +export const UnseenCountResponse$inboundSchema: z.ZodType< + UnseenCountResponse, + z.ZodTypeDef, + unknown +> = z.object({ + count: z.number(), +}); + +/** @internal */ +export type UnseenCountResponse$Outbound = { + count: number; +}; + +/** @internal */ +export const UnseenCountResponse$outboundSchema: z.ZodType< + UnseenCountResponse$Outbound, + z.ZodTypeDef, + UnseenCountResponse +> = z.object({ + count: z.number(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UnseenCountResponse$ { + /** @deprecated use `UnseenCountResponse$inboundSchema` instead. */ + export const inboundSchema = UnseenCountResponse$inboundSchema; + /** @deprecated use `UnseenCountResponse$outboundSchema` instead. */ + export const outboundSchema = UnseenCountResponse$outboundSchema; + /** @deprecated use `UnseenCountResponse$Outbound` instead. */ + export type Outbound = UnseenCountResponse$Outbound; +} + +export function unseenCountResponseToJSON( + unseenCountResponse: UnseenCountResponse, +): string { + return JSON.stringify( + UnseenCountResponse$outboundSchema.parse(unseenCountResponse), + ); +} + +export function unseenCountResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UnseenCountResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UnseenCountResponse' from JSON`, + ); +} diff --git a/src/models/components/updateintegrationrequestdto.ts b/src/models/components/updateintegrationrequestdto.ts new file mode 100644 index 00000000..690ac742 --- /dev/null +++ b/src/models/components/updateintegrationrequestdto.ts @@ -0,0 +1,123 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + CredentialsDto, + CredentialsDto$inboundSchema, + CredentialsDto$Outbound, + CredentialsDto$outboundSchema, +} from "./credentialsdto.js"; +import { + StepFilter, + StepFilter$inboundSchema, + StepFilter$Outbound, + StepFilter$outboundSchema, +} from "./stepfilter.js"; + +export type UpdateIntegrationRequestDto = { + name?: string | undefined; + identifier?: string | undefined; + environmentId?: string | undefined; + /** + * If the integration is active the validation on the credentials field will run + */ + active?: boolean | undefined; + credentials?: CredentialsDto | undefined; + /** + * If true, the Novu branding will be removed from the Inbox component + */ + removeNovuBranding?: boolean | undefined; + check?: boolean | undefined; + conditions?: Array | undefined; +}; + +/** @internal */ +export const UpdateIntegrationRequestDto$inboundSchema: z.ZodType< + UpdateIntegrationRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), + _environmentId: z.string().optional(), + active: z.boolean().optional(), + credentials: CredentialsDto$inboundSchema.optional(), + removeNovuBranding: z.boolean().optional(), + check: z.boolean().optional(), + conditions: z.array(StepFilter$inboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + "_environmentId": "environmentId", + }); +}); + +/** @internal */ +export type UpdateIntegrationRequestDto$Outbound = { + name?: string | undefined; + identifier?: string | undefined; + _environmentId?: string | undefined; + active?: boolean | undefined; + credentials?: CredentialsDto$Outbound | undefined; + removeNovuBranding?: boolean | undefined; + check?: boolean | undefined; + conditions?: Array | undefined; +}; + +/** @internal */ +export const UpdateIntegrationRequestDto$outboundSchema: z.ZodType< + UpdateIntegrationRequestDto$Outbound, + z.ZodTypeDef, + UpdateIntegrationRequestDto +> = z.object({ + name: z.string().optional(), + identifier: z.string().optional(), + environmentId: z.string().optional(), + active: z.boolean().optional(), + credentials: CredentialsDto$outboundSchema.optional(), + removeNovuBranding: z.boolean().optional(), + check: z.boolean().optional(), + conditions: z.array(StepFilter$outboundSchema).optional(), +}).transform((v) => { + return remap$(v, { + environmentId: "_environmentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateIntegrationRequestDto$ { + /** @deprecated use `UpdateIntegrationRequestDto$inboundSchema` instead. */ + export const inboundSchema = UpdateIntegrationRequestDto$inboundSchema; + /** @deprecated use `UpdateIntegrationRequestDto$outboundSchema` instead. */ + export const outboundSchema = UpdateIntegrationRequestDto$outboundSchema; + /** @deprecated use `UpdateIntegrationRequestDto$Outbound` instead. */ + export type Outbound = UpdateIntegrationRequestDto$Outbound; +} + +export function updateIntegrationRequestDtoToJSON( + updateIntegrationRequestDto: UpdateIntegrationRequestDto, +): string { + return JSON.stringify( + UpdateIntegrationRequestDto$outboundSchema.parse( + updateIntegrationRequestDto, + ), + ); +} + +export function updateIntegrationRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateIntegrationRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateIntegrationRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberchannelrequestdto.ts b/src/models/components/updatesubscriberchannelrequestdto.ts new file mode 100644 index 00000000..92418867 --- /dev/null +++ b/src/models/components/updatesubscriberchannelrequestdto.ts @@ -0,0 +1,145 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + ChannelCredentials, + ChannelCredentials$inboundSchema, + ChannelCredentials$Outbound, + ChannelCredentials$outboundSchema, +} from "./channelcredentials.js"; + +/** + * The provider identifier for the credentials + */ +export const UpdateSubscriberChannelRequestDtoProviderId = { + Slack: "slack", + Discord: "discord", + Msteams: "msteams", + Mattermost: "mattermost", + Ryver: "ryver", + Zulip: "zulip", + GrafanaOnCall: "grafana-on-call", + Getstream: "getstream", + RocketChat: "rocket-chat", + WhatsappBusiness: "whatsapp-business", + Fcm: "fcm", + Apns: "apns", + Expo: "expo", + OneSignal: "one-signal", + Pushpad: "pushpad", + PushWebhook: "push-webhook", + PusherBeams: "pusher-beams", +} as const; +/** + * The provider identifier for the credentials + */ +export type UpdateSubscriberChannelRequestDtoProviderId = ClosedEnum< + typeof UpdateSubscriberChannelRequestDtoProviderId +>; + +export type UpdateSubscriberChannelRequestDto = { + /** + * The provider identifier for the credentials + */ + providerId: UpdateSubscriberChannelRequestDtoProviderId; + /** + * The integration identifier + */ + integrationIdentifier?: string | undefined; + /** + * Credentials payload for the specified provider + */ + credentials: ChannelCredentials; +}; + +/** @internal */ +export const UpdateSubscriberChannelRequestDtoProviderId$inboundSchema: + z.ZodNativeEnum = z + .nativeEnum(UpdateSubscriberChannelRequestDtoProviderId); + +/** @internal */ +export const UpdateSubscriberChannelRequestDtoProviderId$outboundSchema: + z.ZodNativeEnum = + UpdateSubscriberChannelRequestDtoProviderId$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberChannelRequestDtoProviderId$ { + /** @deprecated use `UpdateSubscriberChannelRequestDtoProviderId$inboundSchema` instead. */ + export const inboundSchema = + UpdateSubscriberChannelRequestDtoProviderId$inboundSchema; + /** @deprecated use `UpdateSubscriberChannelRequestDtoProviderId$outboundSchema` instead. */ + export const outboundSchema = + UpdateSubscriberChannelRequestDtoProviderId$outboundSchema; +} + +/** @internal */ +export const UpdateSubscriberChannelRequestDto$inboundSchema: z.ZodType< + UpdateSubscriberChannelRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + providerId: UpdateSubscriberChannelRequestDtoProviderId$inboundSchema, + integrationIdentifier: z.string().optional(), + credentials: ChannelCredentials$inboundSchema, +}); + +/** @internal */ +export type UpdateSubscriberChannelRequestDto$Outbound = { + providerId: string; + integrationIdentifier?: string | undefined; + credentials: ChannelCredentials$Outbound; +}; + +/** @internal */ +export const UpdateSubscriberChannelRequestDto$outboundSchema: z.ZodType< + UpdateSubscriberChannelRequestDto$Outbound, + z.ZodTypeDef, + UpdateSubscriberChannelRequestDto +> = z.object({ + providerId: UpdateSubscriberChannelRequestDtoProviderId$outboundSchema, + integrationIdentifier: z.string().optional(), + credentials: ChannelCredentials$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberChannelRequestDto$ { + /** @deprecated use `UpdateSubscriberChannelRequestDto$inboundSchema` instead. */ + export const inboundSchema = UpdateSubscriberChannelRequestDto$inboundSchema; + /** @deprecated use `UpdateSubscriberChannelRequestDto$outboundSchema` instead. */ + export const outboundSchema = + UpdateSubscriberChannelRequestDto$outboundSchema; + /** @deprecated use `UpdateSubscriberChannelRequestDto$Outbound` instead. */ + export type Outbound = UpdateSubscriberChannelRequestDto$Outbound; +} + +export function updateSubscriberChannelRequestDtoToJSON( + updateSubscriberChannelRequestDto: UpdateSubscriberChannelRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberChannelRequestDto$outboundSchema.parse( + updateSubscriberChannelRequestDto, + ), + ); +} + +export function updateSubscriberChannelRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateSubscriberChannelRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberChannelRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts b/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts new file mode 100644 index 00000000..b00510e0 --- /dev/null +++ b/src/models/components/updatesubscriberglobalpreferencesrequestdto.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + ChannelPreference, + ChannelPreference$inboundSchema, + ChannelPreference$Outbound, + ChannelPreference$outboundSchema, +} from "./channelpreference.js"; + +export type UpdateSubscriberGlobalPreferencesRequestDto = { + /** + * Enable or disable the subscriber global preferences. + */ + enabled?: boolean | undefined; + /** + * The subscriber global preferences for every ChannelTypeEnum. + */ + preferences?: Array | undefined; +}; + +/** @internal */ +export const UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema: + z.ZodType< + UpdateSubscriberGlobalPreferencesRequestDto, + z.ZodTypeDef, + unknown + > = z.object({ + enabled: z.boolean().optional(), + preferences: z.array(ChannelPreference$inboundSchema).optional(), + }); + +/** @internal */ +export type UpdateSubscriberGlobalPreferencesRequestDto$Outbound = { + enabled?: boolean | undefined; + preferences?: Array | undefined; +}; + +/** @internal */ +export const UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema: + z.ZodType< + UpdateSubscriberGlobalPreferencesRequestDto$Outbound, + z.ZodTypeDef, + UpdateSubscriberGlobalPreferencesRequestDto + > = z.object({ + enabled: z.boolean().optional(), + preferences: z.array(ChannelPreference$outboundSchema).optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberGlobalPreferencesRequestDto$ { + /** @deprecated use `UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema` instead. */ + export const inboundSchema = + UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema; + /** @deprecated use `UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema` instead. */ + export const outboundSchema = + UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema; + /** @deprecated use `UpdateSubscriberGlobalPreferencesRequestDto$Outbound` instead. */ + export type Outbound = UpdateSubscriberGlobalPreferencesRequestDto$Outbound; +} + +export function updateSubscriberGlobalPreferencesRequestDtoToJSON( + updateSubscriberGlobalPreferencesRequestDto: + UpdateSubscriberGlobalPreferencesRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema.parse( + updateSubscriberGlobalPreferencesRequestDto, + ), + ); +} + +export function updateSubscriberGlobalPreferencesRequestDtoFromJSON( + jsonString: string, +): SafeParseResult< + UpdateSubscriberGlobalPreferencesRequestDto, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'UpdateSubscriberGlobalPreferencesRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberonlineflagrequestdto.ts b/src/models/components/updatesubscriberonlineflagrequestdto.ts new file mode 100644 index 00000000..5e3da370 --- /dev/null +++ b/src/models/components/updatesubscriberonlineflagrequestdto.ts @@ -0,0 +1,71 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type UpdateSubscriberOnlineFlagRequestDto = { + isOnline: boolean; +}; + +/** @internal */ +export const UpdateSubscriberOnlineFlagRequestDto$inboundSchema: z.ZodType< + UpdateSubscriberOnlineFlagRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + isOnline: z.boolean(), +}); + +/** @internal */ +export type UpdateSubscriberOnlineFlagRequestDto$Outbound = { + isOnline: boolean; +}; + +/** @internal */ +export const UpdateSubscriberOnlineFlagRequestDto$outboundSchema: z.ZodType< + UpdateSubscriberOnlineFlagRequestDto$Outbound, + z.ZodTypeDef, + UpdateSubscriberOnlineFlagRequestDto +> = z.object({ + isOnline: z.boolean(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberOnlineFlagRequestDto$ { + /** @deprecated use `UpdateSubscriberOnlineFlagRequestDto$inboundSchema` instead. */ + export const inboundSchema = + UpdateSubscriberOnlineFlagRequestDto$inboundSchema; + /** @deprecated use `UpdateSubscriberOnlineFlagRequestDto$outboundSchema` instead. */ + export const outboundSchema = + UpdateSubscriberOnlineFlagRequestDto$outboundSchema; + /** @deprecated use `UpdateSubscriberOnlineFlagRequestDto$Outbound` instead. */ + export type Outbound = UpdateSubscriberOnlineFlagRequestDto$Outbound; +} + +export function updateSubscriberOnlineFlagRequestDtoToJSON( + updateSubscriberOnlineFlagRequestDto: UpdateSubscriberOnlineFlagRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberOnlineFlagRequestDto$outboundSchema.parse( + updateSubscriberOnlineFlagRequestDto, + ), + ); +} + +export function updateSubscriberOnlineFlagRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + UpdateSubscriberOnlineFlagRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberOnlineFlagRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberpreferencerequestdto.ts b/src/models/components/updatesubscriberpreferencerequestdto.ts new file mode 100644 index 00000000..4ae4866e --- /dev/null +++ b/src/models/components/updatesubscriberpreferencerequestdto.ts @@ -0,0 +1,87 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + ChannelPreference, + ChannelPreference$inboundSchema, + ChannelPreference$Outbound, + ChannelPreference$outboundSchema, +} from "./channelpreference.js"; + +export type UpdateSubscriberPreferenceRequestDto = { + /** + * The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + */ + channel?: ChannelPreference | undefined; + /** + * Sets if the workflow is fully enabled for all channels or not for the subscriber. + */ + enabled?: boolean | undefined; +}; + +/** @internal */ +export const UpdateSubscriberPreferenceRequestDto$inboundSchema: z.ZodType< + UpdateSubscriberPreferenceRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + channel: ChannelPreference$inboundSchema.optional(), + enabled: z.boolean().optional(), +}); + +/** @internal */ +export type UpdateSubscriberPreferenceRequestDto$Outbound = { + channel?: ChannelPreference$Outbound | undefined; + enabled?: boolean | undefined; +}; + +/** @internal */ +export const UpdateSubscriberPreferenceRequestDto$outboundSchema: z.ZodType< + UpdateSubscriberPreferenceRequestDto$Outbound, + z.ZodTypeDef, + UpdateSubscriberPreferenceRequestDto +> = z.object({ + channel: ChannelPreference$outboundSchema.optional(), + enabled: z.boolean().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberPreferenceRequestDto$ { + /** @deprecated use `UpdateSubscriberPreferenceRequestDto$inboundSchema` instead. */ + export const inboundSchema = + UpdateSubscriberPreferenceRequestDto$inboundSchema; + /** @deprecated use `UpdateSubscriberPreferenceRequestDto$outboundSchema` instead. */ + export const outboundSchema = + UpdateSubscriberPreferenceRequestDto$outboundSchema; + /** @deprecated use `UpdateSubscriberPreferenceRequestDto$Outbound` instead. */ + export type Outbound = UpdateSubscriberPreferenceRequestDto$Outbound; +} + +export function updateSubscriberPreferenceRequestDtoToJSON( + updateSubscriberPreferenceRequestDto: UpdateSubscriberPreferenceRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberPreferenceRequestDto$outboundSchema.parse( + updateSubscriberPreferenceRequestDto, + ), + ); +} + +export function updateSubscriberPreferenceRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + UpdateSubscriberPreferenceRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberPreferenceRequestDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberpreferenceresponsedto.ts b/src/models/components/updatesubscriberpreferenceresponsedto.ts new file mode 100644 index 00000000..c0185123 --- /dev/null +++ b/src/models/components/updatesubscriberpreferenceresponsedto.ts @@ -0,0 +1,93 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + Preference, + Preference$inboundSchema, + Preference$Outbound, + Preference$outboundSchema, +} from "./preference.js"; +import { + TemplateResponse, + TemplateResponse$inboundSchema, + TemplateResponse$Outbound, + TemplateResponse$outboundSchema, +} from "./templateresponse.js"; + +export type UpdateSubscriberPreferenceResponseDto = { + /** + * The workflow information and if it is critical or not + */ + template: TemplateResponse; + /** + * The preferences of the subscriber regarding the related workflow + */ + preference: Preference; +}; + +/** @internal */ +export const UpdateSubscriberPreferenceResponseDto$inboundSchema: z.ZodType< + UpdateSubscriberPreferenceResponseDto, + z.ZodTypeDef, + unknown +> = z.object({ + template: TemplateResponse$inboundSchema, + preference: Preference$inboundSchema, +}); + +/** @internal */ +export type UpdateSubscriberPreferenceResponseDto$Outbound = { + template: TemplateResponse$Outbound; + preference: Preference$Outbound; +}; + +/** @internal */ +export const UpdateSubscriberPreferenceResponseDto$outboundSchema: z.ZodType< + UpdateSubscriberPreferenceResponseDto$Outbound, + z.ZodTypeDef, + UpdateSubscriberPreferenceResponseDto +> = z.object({ + template: TemplateResponse$outboundSchema, + preference: Preference$outboundSchema, +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberPreferenceResponseDto$ { + /** @deprecated use `UpdateSubscriberPreferenceResponseDto$inboundSchema` instead. */ + export const inboundSchema = + UpdateSubscriberPreferenceResponseDto$inboundSchema; + /** @deprecated use `UpdateSubscriberPreferenceResponseDto$outboundSchema` instead. */ + export const outboundSchema = + UpdateSubscriberPreferenceResponseDto$outboundSchema; + /** @deprecated use `UpdateSubscriberPreferenceResponseDto$Outbound` instead. */ + export type Outbound = UpdateSubscriberPreferenceResponseDto$Outbound; +} + +export function updateSubscriberPreferenceResponseDtoToJSON( + updateSubscriberPreferenceResponseDto: UpdateSubscriberPreferenceResponseDto, +): string { + return JSON.stringify( + UpdateSubscriberPreferenceResponseDto$outboundSchema.parse( + updateSubscriberPreferenceResponseDto, + ), + ); +} + +export function updateSubscriberPreferenceResponseDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + UpdateSubscriberPreferenceResponseDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberPreferenceResponseDto' from JSON`, + ); +} diff --git a/src/models/components/updatesubscriberrequestdto.ts b/src/models/components/updatesubscriberrequestdto.ts new file mode 100644 index 00000000..bd97d519 --- /dev/null +++ b/src/models/components/updatesubscriberrequestdto.ts @@ -0,0 +1,146 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type UpdateSubscriberRequestDtoData = {}; + +export type UpdateSubscriberRequestDto = { + email?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + data?: UpdateSubscriberRequestDtoData | undefined; + channels?: Array | undefined; +}; + +/** @internal */ +export const UpdateSubscriberRequestDtoData$inboundSchema: z.ZodType< + UpdateSubscriberRequestDtoData, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type UpdateSubscriberRequestDtoData$Outbound = {}; + +/** @internal */ +export const UpdateSubscriberRequestDtoData$outboundSchema: z.ZodType< + UpdateSubscriberRequestDtoData$Outbound, + z.ZodTypeDef, + UpdateSubscriberRequestDtoData +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberRequestDtoData$ { + /** @deprecated use `UpdateSubscriberRequestDtoData$inboundSchema` instead. */ + export const inboundSchema = UpdateSubscriberRequestDtoData$inboundSchema; + /** @deprecated use `UpdateSubscriberRequestDtoData$outboundSchema` instead. */ + export const outboundSchema = UpdateSubscriberRequestDtoData$outboundSchema; + /** @deprecated use `UpdateSubscriberRequestDtoData$Outbound` instead. */ + export type Outbound = UpdateSubscriberRequestDtoData$Outbound; +} + +export function updateSubscriberRequestDtoDataToJSON( + updateSubscriberRequestDtoData: UpdateSubscriberRequestDtoData, +): string { + return JSON.stringify( + UpdateSubscriberRequestDtoData$outboundSchema.parse( + updateSubscriberRequestDtoData, + ), + ); +} + +export function updateSubscriberRequestDtoDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateSubscriberRequestDtoData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberRequestDtoData' from JSON`, + ); +} + +/** @internal */ +export const UpdateSubscriberRequestDto$inboundSchema: z.ZodType< + UpdateSubscriberRequestDto, + z.ZodTypeDef, + unknown +> = z.object({ + email: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => UpdateSubscriberRequestDtoData$inboundSchema).optional(), + channels: z.array(z.string()).optional(), +}); + +/** @internal */ +export type UpdateSubscriberRequestDto$Outbound = { + email?: string | undefined; + firstName?: string | undefined; + lastName?: string | undefined; + phone?: string | undefined; + avatar?: string | undefined; + locale?: string | undefined; + data?: UpdateSubscriberRequestDtoData$Outbound | undefined; + channels?: Array | undefined; +}; + +/** @internal */ +export const UpdateSubscriberRequestDto$outboundSchema: z.ZodType< + UpdateSubscriberRequestDto$Outbound, + z.ZodTypeDef, + UpdateSubscriberRequestDto +> = z.object({ + email: z.string().optional(), + firstName: z.string().optional(), + lastName: z.string().optional(), + phone: z.string().optional(), + avatar: z.string().optional(), + locale: z.string().optional(), + data: z.lazy(() => UpdateSubscriberRequestDtoData$outboundSchema).optional(), + channels: z.array(z.string()).optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace UpdateSubscriberRequestDto$ { + /** @deprecated use `UpdateSubscriberRequestDto$inboundSchema` instead. */ + export const inboundSchema = UpdateSubscriberRequestDto$inboundSchema; + /** @deprecated use `UpdateSubscriberRequestDto$outboundSchema` instead. */ + export const outboundSchema = UpdateSubscriberRequestDto$outboundSchema; + /** @deprecated use `UpdateSubscriberRequestDto$Outbound` instead. */ + export type Outbound = UpdateSubscriberRequestDto$Outbound; +} + +export function updateSubscriberRequestDtoToJSON( + updateSubscriberRequestDto: UpdateSubscriberRequestDto, +): string { + return JSON.stringify( + UpdateSubscriberRequestDto$outboundSchema.parse(updateSubscriberRequestDto), + ); +} + +export function updateSubscriberRequestDtoFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => UpdateSubscriberRequestDto$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'UpdateSubscriberRequestDto' from JSON`, + ); +} diff --git a/src/models/components/workflowresponse.ts b/src/models/components/workflowresponse.ts new file mode 100644 index 00000000..45f31bdd --- /dev/null +++ b/src/models/components/workflowresponse.ts @@ -0,0 +1,293 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + NotificationGroup, + NotificationGroup$inboundSchema, + NotificationGroup$Outbound, + NotificationGroup$outboundSchema, +} from "./notificationgroup.js"; +import { + NotificationStep, + NotificationStep$inboundSchema, + NotificationStep$Outbound, + NotificationStep$outboundSchema, +} from "./notificationstep.js"; +import { + NotificationTrigger, + NotificationTrigger$inboundSchema, + NotificationTrigger$Outbound, + NotificationTrigger$outboundSchema, +} from "./notificationtrigger.js"; +import { + PreferenceChannels, + PreferenceChannels$inboundSchema, + PreferenceChannels$Outbound, + PreferenceChannels$outboundSchema, +} from "./preferencechannels.js"; + +export type WorkflowResponseData = {}; + +export type WorkflowIntegrationStatus = {}; + +export type WorkflowResponse = { + id?: string | undefined; + name: string; + description: string; + active: boolean; + draft: boolean; + preferenceSettings: PreferenceChannels; + critical: boolean; + tags: Array; + steps: Array; + organizationId: string; + creatorId: string; + environmentId: string; + triggers: Array; + notificationGroupId: string; + parentId?: string | undefined; + deleted: boolean; + deletedAt: string; + deletedBy: string; + notificationGroup?: NotificationGroup | undefined; + data?: WorkflowResponseData | undefined; + workflowIntegrationStatus?: WorkflowIntegrationStatus | undefined; +}; + +/** @internal */ +export const WorkflowResponseData$inboundSchema: z.ZodType< + WorkflowResponseData, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type WorkflowResponseData$Outbound = {}; + +/** @internal */ +export const WorkflowResponseData$outboundSchema: z.ZodType< + WorkflowResponseData$Outbound, + z.ZodTypeDef, + WorkflowResponseData +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace WorkflowResponseData$ { + /** @deprecated use `WorkflowResponseData$inboundSchema` instead. */ + export const inboundSchema = WorkflowResponseData$inboundSchema; + /** @deprecated use `WorkflowResponseData$outboundSchema` instead. */ + export const outboundSchema = WorkflowResponseData$outboundSchema; + /** @deprecated use `WorkflowResponseData$Outbound` instead. */ + export type Outbound = WorkflowResponseData$Outbound; +} + +export function workflowResponseDataToJSON( + workflowResponseData: WorkflowResponseData, +): string { + return JSON.stringify( + WorkflowResponseData$outboundSchema.parse(workflowResponseData), + ); +} + +export function workflowResponseDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkflowResponseData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkflowResponseData' from JSON`, + ); +} + +/** @internal */ +export const WorkflowIntegrationStatus$inboundSchema: z.ZodType< + WorkflowIntegrationStatus, + z.ZodTypeDef, + unknown +> = z.object({}); + +/** @internal */ +export type WorkflowIntegrationStatus$Outbound = {}; + +/** @internal */ +export const WorkflowIntegrationStatus$outboundSchema: z.ZodType< + WorkflowIntegrationStatus$Outbound, + z.ZodTypeDef, + WorkflowIntegrationStatus +> = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace WorkflowIntegrationStatus$ { + /** @deprecated use `WorkflowIntegrationStatus$inboundSchema` instead. */ + export const inboundSchema = WorkflowIntegrationStatus$inboundSchema; + /** @deprecated use `WorkflowIntegrationStatus$outboundSchema` instead. */ + export const outboundSchema = WorkflowIntegrationStatus$outboundSchema; + /** @deprecated use `WorkflowIntegrationStatus$Outbound` instead. */ + export type Outbound = WorkflowIntegrationStatus$Outbound; +} + +export function workflowIntegrationStatusToJSON( + workflowIntegrationStatus: WorkflowIntegrationStatus, +): string { + return JSON.stringify( + WorkflowIntegrationStatus$outboundSchema.parse(workflowIntegrationStatus), + ); +} + +export function workflowIntegrationStatusFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkflowIntegrationStatus$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkflowIntegrationStatus' from JSON`, + ); +} + +/** @internal */ +export const WorkflowResponse$inboundSchema: z.ZodType< + WorkflowResponse, + z.ZodTypeDef, + unknown +> = z.object({ + _id: z.string().optional(), + name: z.string(), + description: z.string(), + active: z.boolean(), + draft: z.boolean(), + preferenceSettings: PreferenceChannels$inboundSchema, + critical: z.boolean(), + tags: z.array(z.string()), + steps: z.array(NotificationStep$inboundSchema), + _organizationId: z.string(), + _creatorId: z.string(), + _environmentId: z.string(), + triggers: z.array(NotificationTrigger$inboundSchema), + _notificationGroupId: z.string(), + _parentId: z.string().optional(), + deleted: z.boolean(), + deletedAt: z.string(), + deletedBy: z.string(), + notificationGroup: NotificationGroup$inboundSchema.optional(), + data: z.lazy(() => WorkflowResponseData$inboundSchema).optional(), + workflowIntegrationStatus: z.lazy(() => + WorkflowIntegrationStatus$inboundSchema + ).optional(), +}).transform((v) => { + return remap$(v, { + "_id": "id", + "_organizationId": "organizationId", + "_creatorId": "creatorId", + "_environmentId": "environmentId", + "_notificationGroupId": "notificationGroupId", + "_parentId": "parentId", + }); +}); + +/** @internal */ +export type WorkflowResponse$Outbound = { + _id?: string | undefined; + name: string; + description: string; + active: boolean; + draft: boolean; + preferenceSettings: PreferenceChannels$Outbound; + critical: boolean; + tags: Array; + steps: Array; + _organizationId: string; + _creatorId: string; + _environmentId: string; + triggers: Array; + _notificationGroupId: string; + _parentId?: string | undefined; + deleted: boolean; + deletedAt: string; + deletedBy: string; + notificationGroup?: NotificationGroup$Outbound | undefined; + data?: WorkflowResponseData$Outbound | undefined; + workflowIntegrationStatus?: WorkflowIntegrationStatus$Outbound | undefined; +}; + +/** @internal */ +export const WorkflowResponse$outboundSchema: z.ZodType< + WorkflowResponse$Outbound, + z.ZodTypeDef, + WorkflowResponse +> = z.object({ + id: z.string().optional(), + name: z.string(), + description: z.string(), + active: z.boolean(), + draft: z.boolean(), + preferenceSettings: PreferenceChannels$outboundSchema, + critical: z.boolean(), + tags: z.array(z.string()), + steps: z.array(NotificationStep$outboundSchema), + organizationId: z.string(), + creatorId: z.string(), + environmentId: z.string(), + triggers: z.array(NotificationTrigger$outboundSchema), + notificationGroupId: z.string(), + parentId: z.string().optional(), + deleted: z.boolean(), + deletedAt: z.string(), + deletedBy: z.string(), + notificationGroup: NotificationGroup$outboundSchema.optional(), + data: z.lazy(() => WorkflowResponseData$outboundSchema).optional(), + workflowIntegrationStatus: z.lazy(() => + WorkflowIntegrationStatus$outboundSchema + ).optional(), +}).transform((v) => { + return remap$(v, { + id: "_id", + organizationId: "_organizationId", + creatorId: "_creatorId", + environmentId: "_environmentId", + notificationGroupId: "_notificationGroupId", + parentId: "_parentId", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace WorkflowResponse$ { + /** @deprecated use `WorkflowResponse$inboundSchema` instead. */ + export const inboundSchema = WorkflowResponse$inboundSchema; + /** @deprecated use `WorkflowResponse$outboundSchema` instead. */ + export const outboundSchema = WorkflowResponse$outboundSchema; + /** @deprecated use `WorkflowResponse$Outbound` instead. */ + export type Outbound = WorkflowResponse$Outbound; +} + +export function workflowResponseToJSON( + workflowResponse: WorkflowResponse, +): string { + return JSON.stringify( + WorkflowResponse$outboundSchema.parse(workflowResponse), + ); +} + +export function workflowResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkflowResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkflowResponse' from JSON`, + ); +} diff --git a/src/models/errors/httpclienterrors.ts b/src/models/errors/httpclienterrors.ts new file mode 100644 index 00000000..b34f6121 --- /dev/null +++ b/src/models/errors/httpclienterrors.ts @@ -0,0 +1,62 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +/** + * Base class for all HTTP errors. + */ +export class HTTPClientError extends Error { + /** The underlying cause of the error. */ + override readonly cause: unknown; + override name = "HTTPClientError"; + constructor(message: string, opts?: { cause?: unknown }) { + let msg = message; + if (opts?.cause) { + msg += `: ${opts.cause}`; + } + + super(msg, opts); + // In older runtimes, the cause field would not have been assigned through + // the super() call. + if (typeof this.cause === "undefined") { + this.cause = opts?.cause; + } + } +} + +/** + * An error to capture unrecognised or unexpected errors when making HTTP calls. + */ +export class UnexpectedClientError extends HTTPClientError { + override name = "UnexpectedClientError"; +} + +/** + * An error that is raised when any inputs used to create a request are invalid. + */ +export class InvalidRequestError extends HTTPClientError { + override name = "InvalidRequestError"; +} + +/** + * An error that is raised when a HTTP request was aborted by the client error. + */ +export class RequestAbortedError extends HTTPClientError { + override readonly name = "RequestAbortedError"; +} + +/** + * An error that is raised when a HTTP request timed out due to an AbortSignal + * signal timeout. + */ +export class RequestTimeoutError extends HTTPClientError { + override readonly name = "RequestTimeoutError"; +} + +/** + * An error that is raised when a HTTP client is unable to make a request to + * a server. + */ +export class ConnectionError extends HTTPClientError { + override readonly name = "ConnectionError"; +} diff --git a/src/models/errors/index.ts b/src/models/errors/index.ts new file mode 100644 index 00000000..900ee9d5 --- /dev/null +++ b/src/models/errors/index.ts @@ -0,0 +1,7 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export * from "./httpclienterrors.js"; +export * from "./sdkerror.js"; +export * from "./sdkvalidationerror.js"; diff --git a/src/models/errors/sdkerror.ts b/src/models/errors/sdkerror.ts new file mode 100644 index 00000000..001f4659 --- /dev/null +++ b/src/models/errors/sdkerror.ts @@ -0,0 +1,27 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export class SDKError extends Error { + public readonly statusCode: number; + public readonly contentType: string; + + constructor( + message: string, + public readonly rawResponse: Response, + public readonly body: string = "", + ) { + const statusCode = rawResponse.status; + const contentType = rawResponse.headers.get("content-type") || ""; + const bodyString = body.length > 0 ? `\n${body}` : ""; + + super( + `${message}: Status ${statusCode} Content-Type ${contentType} Body ${bodyString}`, + ); + + this.statusCode = statusCode; + this.contentType = contentType; + + this.name = "SDKError"; + } +} diff --git a/src/models/errors/sdkvalidationerror.ts b/src/models/errors/sdkvalidationerror.ts new file mode 100644 index 00000000..16929b9e --- /dev/null +++ b/src/models/errors/sdkvalidationerror.ts @@ -0,0 +1,97 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; + +export class SDKValidationError extends Error { + /** + * The raw value that failed validation. + */ + public readonly rawValue: unknown; + + /** + * The raw message that failed validation. + */ + public readonly rawMessage: unknown; + + constructor(message: string, cause: unknown, rawValue: unknown) { + super(`${message}: ${cause}`); + this.name = "SDKValidationError"; + this.cause = cause; + this.rawValue = rawValue; + this.rawMessage = message; + } + + /** + * Return a pretty-formatted error message if the underlying validation error + * is a ZodError or some other recognized error type, otherwise return the + * default error message. + */ + public pretty(): string { + if (this.cause instanceof z.ZodError) { + return `${this.rawMessage}\n${formatZodError(this.cause)}`; + } else { + return this.toString(); + } + } +} + +export function formatZodError(err: z.ZodError, level = 0): string { + let pre = " ".repeat(level); + pre = level > 0 ? `│${pre}` : pre; + pre += " ".repeat(level); + + let message = ""; + const append = (str: string) => (message += `\n${pre}${str}`); + + const len = err.issues.length; + const headline = len === 1 ? `${len} issue found` : `${len} issues found`; + + if (len) { + append(`┌ ${headline}:`); + } + + for (const issue of err.issues) { + let path = issue.path.join("."); + path = path ? `.${path}` : ""; + append(`│ • [${path}]: ${issue.message} (${issue.code})`); + switch (issue.code) { + case "invalid_literal": + case "invalid_type": { + append(`│ Want: ${issue.expected}`); + append(`│ Got: ${issue.received}`); + break; + } + case "unrecognized_keys": { + append(`│ Keys: ${issue.keys.join(", ")}`); + break; + } + case "invalid_enum_value": { + append(`│ Allowed: ${issue.options.join(", ")}`); + append(`│ Got: ${issue.received}`); + break; + } + case "invalid_union_discriminator": { + append(`│ Allowed: ${issue.options.join(", ")}`); + break; + } + case "invalid_union": { + const len = issue.unionErrors.length; + append( + `│ ✖︎ Attemped to deserialize into one of ${len} union members:`, + ); + issue.unionErrors.forEach((err, i) => { + append(`│ ✖︎ Member ${i + 1} of ${len}`); + append(`${formatZodError(err, level + 1)}`); + }); + } + } + } + + if (err.issues.length) { + append(`└─*`); + } + + return message.slice(1); +} diff --git a/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts b/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts new file mode 100644 index 00000000..a80d8b06 --- /dev/null +++ b/src/models/operations/environmentscontrollerv1getcurrentenvironment.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EnvironmentsControllerV1GetCurrentEnvironmentResponse = { + headers: { [k: string]: Array }; + result: components.EnvironmentResponseDto; +}; + +/** @internal */ +export const EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema: + z.ZodType< + EnvironmentsControllerV1GetCurrentEnvironmentResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.EnvironmentResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.EnvironmentResponseDto$Outbound; +}; + +/** @internal */ +export const EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema: + z.ZodType< + EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound, + z.ZodTypeDef, + EnvironmentsControllerV1GetCurrentEnvironmentResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.EnvironmentResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EnvironmentsControllerV1GetCurrentEnvironmentResponse$ { + /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema` instead. */ + export const inboundSchema = + EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema; + /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema` instead. */ + export const outboundSchema = + EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema; + /** @deprecated use `EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound` instead. */ + export type Outbound = + EnvironmentsControllerV1GetCurrentEnvironmentResponse$Outbound; +} + +export function environmentsControllerV1GetCurrentEnvironmentResponseToJSON( + environmentsControllerV1GetCurrentEnvironmentResponse: + EnvironmentsControllerV1GetCurrentEnvironmentResponse, +): string { + return JSON.stringify( + EnvironmentsControllerV1GetCurrentEnvironmentResponse$outboundSchema.parse( + environmentsControllerV1GetCurrentEnvironmentResponse, + ), + ); +} + +export function environmentsControllerV1GetCurrentEnvironmentResponseFromJSON( + jsonString: string, +): SafeParseResult< + EnvironmentsControllerV1GetCurrentEnvironmentResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EnvironmentsControllerV1GetCurrentEnvironmentResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EnvironmentsControllerV1GetCurrentEnvironmentResponse' from JSON`, + ); +} diff --git a/src/models/operations/environmentscontrollerv1listmyenvironments.ts b/src/models/operations/environmentscontrollerv1listmyenvironments.ts new file mode 100644 index 00000000..c2892d2f --- /dev/null +++ b/src/models/operations/environmentscontrollerv1listmyenvironments.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EnvironmentsControllerV1ListMyEnvironmentsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema: + z.ZodType< + EnvironmentsControllerV1ListMyEnvironmentsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.EnvironmentResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema: + z.ZodType< + EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound, + z.ZodTypeDef, + EnvironmentsControllerV1ListMyEnvironmentsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.EnvironmentResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EnvironmentsControllerV1ListMyEnvironmentsResponse$ { + /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema` instead. */ + export const inboundSchema = + EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema` instead. */ + export const outboundSchema = + EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound` instead. */ + export type Outbound = + EnvironmentsControllerV1ListMyEnvironmentsResponse$Outbound; +} + +export function environmentsControllerV1ListMyEnvironmentsResponseToJSON( + environmentsControllerV1ListMyEnvironmentsResponse: + EnvironmentsControllerV1ListMyEnvironmentsResponse, +): string { + return JSON.stringify( + EnvironmentsControllerV1ListMyEnvironmentsResponse$outboundSchema.parse( + environmentsControllerV1ListMyEnvironmentsResponse, + ), + ); +} + +export function environmentsControllerV1ListMyEnvironmentsResponseFromJSON( + jsonString: string, +): SafeParseResult< + EnvironmentsControllerV1ListMyEnvironmentsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EnvironmentsControllerV1ListMyEnvironmentsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EnvironmentsControllerV1ListMyEnvironmentsResponse' from JSON`, + ); +} diff --git a/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts b/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts new file mode 100644 index 00000000..d34a04cf --- /dev/null +++ b/src/models/operations/environmentscontrollerv1listorganizationapikeys.ts @@ -0,0 +1,94 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EnvironmentsControllerV1ListOrganizationApiKeysResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema: + z.ZodType< + EnvironmentsControllerV1ListOrganizationApiKeysResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.ApiKey$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema: + z.ZodType< + EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound, + z.ZodTypeDef, + EnvironmentsControllerV1ListOrganizationApiKeysResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.ApiKey$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EnvironmentsControllerV1ListOrganizationApiKeysResponse$ { + /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema` instead. */ + export const inboundSchema = + EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema` instead. */ + export const outboundSchema = + EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema; + /** @deprecated use `EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound` instead. */ + export type Outbound = + EnvironmentsControllerV1ListOrganizationApiKeysResponse$Outbound; +} + +export function environmentsControllerV1ListOrganizationApiKeysResponseToJSON( + environmentsControllerV1ListOrganizationApiKeysResponse: + EnvironmentsControllerV1ListOrganizationApiKeysResponse, +): string { + return JSON.stringify( + EnvironmentsControllerV1ListOrganizationApiKeysResponse$outboundSchema + .parse(environmentsControllerV1ListOrganizationApiKeysResponse), + ); +} + +export function environmentsControllerV1ListOrganizationApiKeysResponseFromJSON( + jsonString: string, +): SafeParseResult< + EnvironmentsControllerV1ListOrganizationApiKeysResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EnvironmentsControllerV1ListOrganizationApiKeysResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'EnvironmentsControllerV1ListOrganizationApiKeysResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollerbroadcasteventtoall.ts b/src/models/operations/eventscontrollerbroadcasteventtoall.ts new file mode 100644 index 00000000..fe501917 --- /dev/null +++ b/src/models/operations/eventscontrollerbroadcasteventtoall.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EventsControllerBroadcastEventToAllResponse = { + headers: { [k: string]: Array }; + result: components.TriggerEventResponseDto; +}; + +/** @internal */ +export const EventsControllerBroadcastEventToAllResponse$inboundSchema: + z.ZodType< + EventsControllerBroadcastEventToAllResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.TriggerEventResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type EventsControllerBroadcastEventToAllResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.TriggerEventResponseDto$Outbound; +}; + +/** @internal */ +export const EventsControllerBroadcastEventToAllResponse$outboundSchema: + z.ZodType< + EventsControllerBroadcastEventToAllResponse$Outbound, + z.ZodTypeDef, + EventsControllerBroadcastEventToAllResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.TriggerEventResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerBroadcastEventToAllResponse$ { + /** @deprecated use `EventsControllerBroadcastEventToAllResponse$inboundSchema` instead. */ + export const inboundSchema = + EventsControllerBroadcastEventToAllResponse$inboundSchema; + /** @deprecated use `EventsControllerBroadcastEventToAllResponse$outboundSchema` instead. */ + export const outboundSchema = + EventsControllerBroadcastEventToAllResponse$outboundSchema; + /** @deprecated use `EventsControllerBroadcastEventToAllResponse$Outbound` instead. */ + export type Outbound = EventsControllerBroadcastEventToAllResponse$Outbound; +} + +export function eventsControllerBroadcastEventToAllResponseToJSON( + eventsControllerBroadcastEventToAllResponse: + EventsControllerBroadcastEventToAllResponse, +): string { + return JSON.stringify( + EventsControllerBroadcastEventToAllResponse$outboundSchema.parse( + eventsControllerBroadcastEventToAllResponse, + ), + ); +} + +export function eventsControllerBroadcastEventToAllResponseFromJSON( + jsonString: string, +): SafeParseResult< + EventsControllerBroadcastEventToAllResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventsControllerBroadcastEventToAllResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventsControllerBroadcastEventToAllResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollercancel.ts b/src/models/operations/eventscontrollercancel.ts new file mode 100644 index 00000000..1eed1469 --- /dev/null +++ b/src/models/operations/eventscontrollercancel.ts @@ -0,0 +1,144 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EventsControllerCancelRequest = { + transactionId: string; +}; + +export type EventsControllerCancelResponse = { + headers: { [k: string]: Array }; + result: components.DataBooleanDto; +}; + +/** @internal */ +export const EventsControllerCancelRequest$inboundSchema: z.ZodType< + EventsControllerCancelRequest, + z.ZodTypeDef, + unknown +> = z.object({ + transactionId: z.string(), +}); + +/** @internal */ +export type EventsControllerCancelRequest$Outbound = { + transactionId: string; +}; + +/** @internal */ +export const EventsControllerCancelRequest$outboundSchema: z.ZodType< + EventsControllerCancelRequest$Outbound, + z.ZodTypeDef, + EventsControllerCancelRequest +> = z.object({ + transactionId: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerCancelRequest$ { + /** @deprecated use `EventsControllerCancelRequest$inboundSchema` instead. */ + export const inboundSchema = EventsControllerCancelRequest$inboundSchema; + /** @deprecated use `EventsControllerCancelRequest$outboundSchema` instead. */ + export const outboundSchema = EventsControllerCancelRequest$outboundSchema; + /** @deprecated use `EventsControllerCancelRequest$Outbound` instead. */ + export type Outbound = EventsControllerCancelRequest$Outbound; +} + +export function eventsControllerCancelRequestToJSON( + eventsControllerCancelRequest: EventsControllerCancelRequest, +): string { + return JSON.stringify( + EventsControllerCancelRequest$outboundSchema.parse( + eventsControllerCancelRequest, + ), + ); +} + +export function eventsControllerCancelRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventsControllerCancelRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerCancelRequest' from JSON`, + ); +} + +/** @internal */ +export const EventsControllerCancelResponse$inboundSchema: z.ZodType< + EventsControllerCancelResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DataBooleanDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type EventsControllerCancelResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.DataBooleanDto$Outbound; +}; + +/** @internal */ +export const EventsControllerCancelResponse$outboundSchema: z.ZodType< + EventsControllerCancelResponse$Outbound, + z.ZodTypeDef, + EventsControllerCancelResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.DataBooleanDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerCancelResponse$ { + /** @deprecated use `EventsControllerCancelResponse$inboundSchema` instead. */ + export const inboundSchema = EventsControllerCancelResponse$inboundSchema; + /** @deprecated use `EventsControllerCancelResponse$outboundSchema` instead. */ + export const outboundSchema = EventsControllerCancelResponse$outboundSchema; + /** @deprecated use `EventsControllerCancelResponse$Outbound` instead. */ + export type Outbound = EventsControllerCancelResponse$Outbound; +} + +export function eventsControllerCancelResponseToJSON( + eventsControllerCancelResponse: EventsControllerCancelResponse, +): string { + return JSON.stringify( + EventsControllerCancelResponse$outboundSchema.parse( + eventsControllerCancelResponse, + ), + ); +} + +export function eventsControllerCancelResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventsControllerCancelResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerCancelResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollertrigger.ts b/src/models/operations/eventscontrollertrigger.ts new file mode 100644 index 00000000..25a5fcaa --- /dev/null +++ b/src/models/operations/eventscontrollertrigger.ts @@ -0,0 +1,84 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EventsControllerTriggerResponse = { + headers: { [k: string]: Array }; + result: components.TriggerEventResponseDto; +}; + +/** @internal */ +export const EventsControllerTriggerResponse$inboundSchema: z.ZodType< + EventsControllerTriggerResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.TriggerEventResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type EventsControllerTriggerResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.TriggerEventResponseDto$Outbound; +}; + +/** @internal */ +export const EventsControllerTriggerResponse$outboundSchema: z.ZodType< + EventsControllerTriggerResponse$Outbound, + z.ZodTypeDef, + EventsControllerTriggerResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.TriggerEventResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerTriggerResponse$ { + /** @deprecated use `EventsControllerTriggerResponse$inboundSchema` instead. */ + export const inboundSchema = EventsControllerTriggerResponse$inboundSchema; + /** @deprecated use `EventsControllerTriggerResponse$outboundSchema` instead. */ + export const outboundSchema = EventsControllerTriggerResponse$outboundSchema; + /** @deprecated use `EventsControllerTriggerResponse$Outbound` instead. */ + export type Outbound = EventsControllerTriggerResponse$Outbound; +} + +export function eventsControllerTriggerResponseToJSON( + eventsControllerTriggerResponse: EventsControllerTriggerResponse, +): string { + return JSON.stringify( + EventsControllerTriggerResponse$outboundSchema.parse( + eventsControllerTriggerResponse, + ), + ); +} + +export function eventsControllerTriggerResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventsControllerTriggerResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerTriggerResponse' from JSON`, + ); +} diff --git a/src/models/operations/eventscontrollertriggerbulk.ts b/src/models/operations/eventscontrollertriggerbulk.ts new file mode 100644 index 00000000..45aa1492 --- /dev/null +++ b/src/models/operations/eventscontrollertriggerbulk.ts @@ -0,0 +1,87 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type EventsControllerTriggerBulkResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const EventsControllerTriggerBulkResponse$inboundSchema: z.ZodType< + EventsControllerTriggerBulkResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.TriggerEventResponseDto$inboundSchema), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type EventsControllerTriggerBulkResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const EventsControllerTriggerBulkResponse$outboundSchema: z.ZodType< + EventsControllerTriggerBulkResponse$Outbound, + z.ZodTypeDef, + EventsControllerTriggerBulkResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.TriggerEventResponseDto$outboundSchema), +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace EventsControllerTriggerBulkResponse$ { + /** @deprecated use `EventsControllerTriggerBulkResponse$inboundSchema` instead. */ + export const inboundSchema = + EventsControllerTriggerBulkResponse$inboundSchema; + /** @deprecated use `EventsControllerTriggerBulkResponse$outboundSchema` instead. */ + export const outboundSchema = + EventsControllerTriggerBulkResponse$outboundSchema; + /** @deprecated use `EventsControllerTriggerBulkResponse$Outbound` instead. */ + export type Outbound = EventsControllerTriggerBulkResponse$Outbound; +} + +export function eventsControllerTriggerBulkResponseToJSON( + eventsControllerTriggerBulkResponse: EventsControllerTriggerBulkResponse, +): string { + return JSON.stringify( + EventsControllerTriggerBulkResponse$outboundSchema.parse( + eventsControllerTriggerBulkResponse, + ), + ); +} + +export function eventsControllerTriggerBulkResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventsControllerTriggerBulkResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventsControllerTriggerBulkResponse' from JSON`, + ); +} diff --git a/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts b/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts new file mode 100644 index 00000000..75dbbf34 --- /dev/null +++ b/src/models/operations/executiondetailscontrollergetexecutiondetailsfornotification.ts @@ -0,0 +1,176 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest = + { + notificationId: string; + subscriberId: string; + }; + +export type ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse = + { + headers: { [k: string]: Array }; + result: Array; + }; + +/** @internal */ +export const ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema: + z.ZodType< + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, + z.ZodTypeDef, + unknown + > = z.object({ + notificationId: z.string(), + subscriberId: z.string(), + }); + +/** @internal */ +export type ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound = + { + notificationId: string; + subscriberId: string; + }; + +/** @internal */ +export const ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema: + z.ZodType< + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound, + z.ZodTypeDef, + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest + > = z.object({ + notificationId: z.string(), + subscriberId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$ { + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema` instead. */ + export const inboundSchema = + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema; + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema` instead. */ + export const outboundSchema = + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema; + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound` instead. */ + export type Outbound = + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$Outbound; +} + +export function executionDetailsControllerGetExecutionDetailsForNotificationRequestToJSON( + executionDetailsControllerGetExecutionDetailsForNotificationRequest: + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, +): string { + return JSON.stringify( + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$outboundSchema + .parse( + executionDetailsControllerGetExecutionDetailsForNotificationRequest, + ), + ); +} + +export function executionDetailsControllerGetExecutionDetailsForNotificationRequestFromJSON( + jsonString: string, +): SafeParseResult< + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'ExecutionDetailsControllerGetExecutionDetailsForNotificationRequest' from JSON`, + ); +} + +/** @internal */ +export const ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema: + z.ZodType< + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.ExecutionDetailsResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: Array; + }; + +/** @internal */ +export const ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema: + z.ZodType< + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound, + z.ZodTypeDef, + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.ExecutionDetailsResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$ { + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema` instead. */ + export const inboundSchema = + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema; + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema` instead. */ + export const outboundSchema = + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema; + /** @deprecated use `ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound` instead. */ + export type Outbound = + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$Outbound; +} + +export function executionDetailsControllerGetExecutionDetailsForNotificationResponseToJSON( + executionDetailsControllerGetExecutionDetailsForNotificationResponse: + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, +): string { + return JSON.stringify( + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$outboundSchema + .parse( + executionDetailsControllerGetExecutionDetailsForNotificationResponse, + ), + ); +} + +export function executionDetailsControllerGetExecutionDetailsForNotificationResponseFromJSON( + jsonString: string, +): SafeParseResult< + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse' from JSON`, + ); +} diff --git a/src/models/operations/index.ts b/src/models/operations/index.ts new file mode 100644 index 00000000..5d8c728f --- /dev/null +++ b/src/models/operations/index.ts @@ -0,0 +1,60 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export * from "./environmentscontrollerv1getcurrentenvironment.js"; +export * from "./environmentscontrollerv1listmyenvironments.js"; +export * from "./environmentscontrollerv1listorganizationapikeys.js"; +export * from "./eventscontrollerbroadcasteventtoall.js"; +export * from "./eventscontrollercancel.js"; +export * from "./eventscontrollertrigger.js"; +export * from "./eventscontrollertriggerbulk.js"; +export * from "./executiondetailscontrollergetexecutiondetailsfornotification.js"; +export * from "./integrationscontrollercreateintegration.js"; +export * from "./integrationscontrollergetactiveintegrations.js"; +export * from "./integrationscontrollergetwebhooksupportstatus.js"; +export * from "./integrationscontrollerlistintegrations.js"; +export * from "./integrationscontrollerremoveintegration.js"; +export * from "./integrationscontrollersetintegrationasprimary.js"; +export * from "./integrationscontrollerupdateintegrationbyid.js"; +export * from "./messagescontrollerdeletemessage.js"; +export * from "./messagescontrollerdeletemessagesbytransactionid.js"; +export * from "./messagescontrollergetmessages.js"; +export * from "./notificationgroupscontrollercreatenotificationgroup.js"; +export * from "./notificationgroupscontrollerdeletenotificationgroup.js"; +export * from "./notificationgroupscontrollergetnotificationgroup.js"; +export * from "./notificationgroupscontrollerlistnotificationgroups.js"; +export * from "./notificationgroupscontrollerupdatenotificationgroup.js"; +export * from "./notificationscontrollergetactivitygraphstats.js"; +export * from "./notificationscontrollergetactivitystats.js"; +export * from "./notificationscontrollergetnotification.js"; +export * from "./notificationscontrollerlistnotifications.js"; +export * from "./subscriberscontrollerbulkcreatesubscribers.js"; +export * from "./subscriberscontrollerchataccessoauth.js"; +export * from "./subscriberscontrollerchatoauthcallback.js"; +export * from "./subscriberscontrollercreatesubscriber.js"; +export * from "./subscriberscontrollerdeletesubscribercredentials.js"; +export * from "./subscriberscontrollergetnotificationsfeed.js"; +export * from "./subscriberscontrollergetsubscriber.js"; +export * from "./subscriberscontrollergetsubscriberpreferencebylevel.js"; +export * from "./subscriberscontrollergetunseencount.js"; +export * from "./subscriberscontrollerlistsubscriberpreferences.js"; +export * from "./subscriberscontrollerlistsubscribers.js"; +export * from "./subscriberscontrollermarkactionasseen.js"; +export * from "./subscriberscontrollermarkallunreadasread.js"; +export * from "./subscriberscontrollermarkmessagesas.js"; +export * from "./subscriberscontrollermodifysubscriberchannel.js"; +export * from "./subscriberscontrollerremovesubscriber.js"; +export * from "./subscriberscontrollerupdatesubscriber.js"; +export * from "./subscriberscontrollerupdatesubscriberchannel.js"; +export * from "./subscriberscontrollerupdatesubscriberglobalpreferences.js"; +export * from "./subscriberscontrollerupdatesubscriberonlineflag.js"; +export * from "./subscriberscontrollerupdatesubscriberpreference.js"; +export * from "./topicscontrolleraddsubscribers.js"; +export * from "./topicscontrollercreatetopic.js"; +export * from "./topicscontrollerdeletetopic.js"; +export * from "./topicscontrollergettopic.js"; +export * from "./topicscontrollergettopicsubscriber.js"; +export * from "./topicscontrollerlisttopics.js"; +export * from "./topicscontrollerremovesubscribers.js"; +export * from "./topicscontrollerrenametopic.js"; diff --git a/src/models/operations/integrationscontrollercreateintegration.ts b/src/models/operations/integrationscontrollercreateintegration.ts new file mode 100644 index 00000000..8e603d05 --- /dev/null +++ b/src/models/operations/integrationscontrollercreateintegration.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerCreateIntegrationResponse = { + headers: { [k: string]: Array }; + result: components.IntegrationResponseDto; +}; + +/** @internal */ +export const IntegrationsControllerCreateIntegrationResponse$inboundSchema: + z.ZodType< + IntegrationsControllerCreateIntegrationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.IntegrationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerCreateIntegrationResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.IntegrationResponseDto$Outbound; +}; + +/** @internal */ +export const IntegrationsControllerCreateIntegrationResponse$outboundSchema: + z.ZodType< + IntegrationsControllerCreateIntegrationResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerCreateIntegrationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.IntegrationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerCreateIntegrationResponse$ { + /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerCreateIntegrationResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerCreateIntegrationResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerCreateIntegrationResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerCreateIntegrationResponse$Outbound; +} + +export function integrationsControllerCreateIntegrationResponseToJSON( + integrationsControllerCreateIntegrationResponse: + IntegrationsControllerCreateIntegrationResponse, +): string { + return JSON.stringify( + IntegrationsControllerCreateIntegrationResponse$outboundSchema.parse( + integrationsControllerCreateIntegrationResponse, + ), + ); +} + +export function integrationsControllerCreateIntegrationResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerCreateIntegrationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerCreateIntegrationResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerCreateIntegrationResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollergetactiveintegrations.ts b/src/models/operations/integrationscontrollergetactiveintegrations.ts new file mode 100644 index 00000000..44eab8ee --- /dev/null +++ b/src/models/operations/integrationscontrollergetactiveintegrations.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerGetActiveIntegrationsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema: + z.ZodType< + IntegrationsControllerGetActiveIntegrationsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.IntegrationResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerGetActiveIntegrationsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema: + z.ZodType< + IntegrationsControllerGetActiveIntegrationsResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerGetActiveIntegrationsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.IntegrationResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerGetActiveIntegrationsResponse$ { + /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerGetActiveIntegrationsResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerGetActiveIntegrationsResponse$Outbound; +} + +export function integrationsControllerGetActiveIntegrationsResponseToJSON( + integrationsControllerGetActiveIntegrationsResponse: + IntegrationsControllerGetActiveIntegrationsResponse, +): string { + return JSON.stringify( + IntegrationsControllerGetActiveIntegrationsResponse$outboundSchema.parse( + integrationsControllerGetActiveIntegrationsResponse, + ), + ); +} + +export function integrationsControllerGetActiveIntegrationsResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerGetActiveIntegrationsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerGetActiveIntegrationsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerGetActiveIntegrationsResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts b/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts new file mode 100644 index 00000000..326ed208 --- /dev/null +++ b/src/models/operations/integrationscontrollergetwebhooksupportstatus.ts @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerGetWebhookSupportStatusRequest = { + providerOrIntegrationId: string; +}; + +export type IntegrationsControllerGetWebhookSupportStatusResponse = { + headers: { [k: string]: Array }; + result: boolean; +}; + +/** @internal */ +export const IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema: + z.ZodType< + IntegrationsControllerGetWebhookSupportStatusRequest, + z.ZodTypeDef, + unknown + > = z.object({ + providerOrIntegrationId: z.string(), + }); + +/** @internal */ +export type IntegrationsControllerGetWebhookSupportStatusRequest$Outbound = { + providerOrIntegrationId: string; +}; + +/** @internal */ +export const IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema: + z.ZodType< + IntegrationsControllerGetWebhookSupportStatusRequest$Outbound, + z.ZodTypeDef, + IntegrationsControllerGetWebhookSupportStatusRequest + > = z.object({ + providerOrIntegrationId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerGetWebhookSupportStatusRequest$ { + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema; + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema; + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusRequest$Outbound` instead. */ + export type Outbound = + IntegrationsControllerGetWebhookSupportStatusRequest$Outbound; +} + +export function integrationsControllerGetWebhookSupportStatusRequestToJSON( + integrationsControllerGetWebhookSupportStatusRequest: + IntegrationsControllerGetWebhookSupportStatusRequest, +): string { + return JSON.stringify( + IntegrationsControllerGetWebhookSupportStatusRequest$outboundSchema.parse( + integrationsControllerGetWebhookSupportStatusRequest, + ), + ); +} + +export function integrationsControllerGetWebhookSupportStatusRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerGetWebhookSupportStatusRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerGetWebhookSupportStatusRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerGetWebhookSupportStatusRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema: + z.ZodType< + IntegrationsControllerGetWebhookSupportStatusResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.boolean(), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerGetWebhookSupportStatusResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: boolean; +}; + +/** @internal */ +export const IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema: + z.ZodType< + IntegrationsControllerGetWebhookSupportStatusResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerGetWebhookSupportStatusResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.boolean(), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerGetWebhookSupportStatusResponse$ { + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerGetWebhookSupportStatusResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerGetWebhookSupportStatusResponse$Outbound; +} + +export function integrationsControllerGetWebhookSupportStatusResponseToJSON( + integrationsControllerGetWebhookSupportStatusResponse: + IntegrationsControllerGetWebhookSupportStatusResponse, +): string { + return JSON.stringify( + IntegrationsControllerGetWebhookSupportStatusResponse$outboundSchema.parse( + integrationsControllerGetWebhookSupportStatusResponse, + ), + ); +} + +export function integrationsControllerGetWebhookSupportStatusResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerGetWebhookSupportStatusResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerGetWebhookSupportStatusResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerGetWebhookSupportStatusResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollerlistintegrations.ts b/src/models/operations/integrationscontrollerlistintegrations.ts new file mode 100644 index 00000000..6b0b65f9 --- /dev/null +++ b/src/models/operations/integrationscontrollerlistintegrations.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerListIntegrationsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const IntegrationsControllerListIntegrationsResponse$inboundSchema: + z.ZodType< + IntegrationsControllerListIntegrationsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.IntegrationResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerListIntegrationsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const IntegrationsControllerListIntegrationsResponse$outboundSchema: + z.ZodType< + IntegrationsControllerListIntegrationsResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerListIntegrationsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.IntegrationResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerListIntegrationsResponse$ { + /** @deprecated use `IntegrationsControllerListIntegrationsResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerListIntegrationsResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerListIntegrationsResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerListIntegrationsResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerListIntegrationsResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerListIntegrationsResponse$Outbound; +} + +export function integrationsControllerListIntegrationsResponseToJSON( + integrationsControllerListIntegrationsResponse: + IntegrationsControllerListIntegrationsResponse, +): string { + return JSON.stringify( + IntegrationsControllerListIntegrationsResponse$outboundSchema.parse( + integrationsControllerListIntegrationsResponse, + ), + ); +} + +export function integrationsControllerListIntegrationsResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerListIntegrationsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerListIntegrationsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerListIntegrationsResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollerremoveintegration.ts b/src/models/operations/integrationscontrollerremoveintegration.ts new file mode 100644 index 00000000..bcdec774 --- /dev/null +++ b/src/models/operations/integrationscontrollerremoveintegration.ts @@ -0,0 +1,168 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerRemoveIntegrationRequest = { + integrationId: string; +}; + +export type IntegrationsControllerRemoveIntegrationResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const IntegrationsControllerRemoveIntegrationRequest$inboundSchema: + z.ZodType< + IntegrationsControllerRemoveIntegrationRequest, + z.ZodTypeDef, + unknown + > = z.object({ + integrationId: z.string(), + }); + +/** @internal */ +export type IntegrationsControllerRemoveIntegrationRequest$Outbound = { + integrationId: string; +}; + +/** @internal */ +export const IntegrationsControllerRemoveIntegrationRequest$outboundSchema: + z.ZodType< + IntegrationsControllerRemoveIntegrationRequest$Outbound, + z.ZodTypeDef, + IntegrationsControllerRemoveIntegrationRequest + > = z.object({ + integrationId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerRemoveIntegrationRequest$ { + /** @deprecated use `IntegrationsControllerRemoveIntegrationRequest$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerRemoveIntegrationRequest$inboundSchema; + /** @deprecated use `IntegrationsControllerRemoveIntegrationRequest$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerRemoveIntegrationRequest$outboundSchema; + /** @deprecated use `IntegrationsControllerRemoveIntegrationRequest$Outbound` instead. */ + export type Outbound = + IntegrationsControllerRemoveIntegrationRequest$Outbound; +} + +export function integrationsControllerRemoveIntegrationRequestToJSON( + integrationsControllerRemoveIntegrationRequest: + IntegrationsControllerRemoveIntegrationRequest, +): string { + return JSON.stringify( + IntegrationsControllerRemoveIntegrationRequest$outboundSchema.parse( + integrationsControllerRemoveIntegrationRequest, + ), + ); +} + +export function integrationsControllerRemoveIntegrationRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerRemoveIntegrationRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerRemoveIntegrationRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerRemoveIntegrationRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerRemoveIntegrationResponse$inboundSchema: + z.ZodType< + IntegrationsControllerRemoveIntegrationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.IntegrationResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerRemoveIntegrationResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const IntegrationsControllerRemoveIntegrationResponse$outboundSchema: + z.ZodType< + IntegrationsControllerRemoveIntegrationResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerRemoveIntegrationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.IntegrationResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerRemoveIntegrationResponse$ { + /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerRemoveIntegrationResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerRemoveIntegrationResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerRemoveIntegrationResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerRemoveIntegrationResponse$Outbound; +} + +export function integrationsControllerRemoveIntegrationResponseToJSON( + integrationsControllerRemoveIntegrationResponse: + IntegrationsControllerRemoveIntegrationResponse, +): string { + return JSON.stringify( + IntegrationsControllerRemoveIntegrationResponse$outboundSchema.parse( + integrationsControllerRemoveIntegrationResponse, + ), + ); +} + +export function integrationsControllerRemoveIntegrationResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerRemoveIntegrationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerRemoveIntegrationResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerRemoveIntegrationResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollersetintegrationasprimary.ts b/src/models/operations/integrationscontrollersetintegrationasprimary.ts new file mode 100644 index 00000000..454f8440 --- /dev/null +++ b/src/models/operations/integrationscontrollersetintegrationasprimary.ts @@ -0,0 +1,168 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerSetIntegrationAsPrimaryRequest = { + integrationId: string; +}; + +export type IntegrationsControllerSetIntegrationAsPrimaryResponse = { + headers: { [k: string]: Array }; + result: components.IntegrationResponseDto; +}; + +/** @internal */ +export const IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema: + z.ZodType< + IntegrationsControllerSetIntegrationAsPrimaryRequest, + z.ZodTypeDef, + unknown + > = z.object({ + integrationId: z.string(), + }); + +/** @internal */ +export type IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound = { + integrationId: string; +}; + +/** @internal */ +export const IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema: + z.ZodType< + IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound, + z.ZodTypeDef, + IntegrationsControllerSetIntegrationAsPrimaryRequest + > = z.object({ + integrationId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerSetIntegrationAsPrimaryRequest$ { + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema; + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema; + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound` instead. */ + export type Outbound = + IntegrationsControllerSetIntegrationAsPrimaryRequest$Outbound; +} + +export function integrationsControllerSetIntegrationAsPrimaryRequestToJSON( + integrationsControllerSetIntegrationAsPrimaryRequest: + IntegrationsControllerSetIntegrationAsPrimaryRequest, +): string { + return JSON.stringify( + IntegrationsControllerSetIntegrationAsPrimaryRequest$outboundSchema.parse( + integrationsControllerSetIntegrationAsPrimaryRequest, + ), + ); +} + +export function integrationsControllerSetIntegrationAsPrimaryRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerSetIntegrationAsPrimaryRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerSetIntegrationAsPrimaryRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerSetIntegrationAsPrimaryRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema: + z.ZodType< + IntegrationsControllerSetIntegrationAsPrimaryResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.IntegrationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.IntegrationResponseDto$Outbound; +}; + +/** @internal */ +export const IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema: + z.ZodType< + IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerSetIntegrationAsPrimaryResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.IntegrationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerSetIntegrationAsPrimaryResponse$ { + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerSetIntegrationAsPrimaryResponse$Outbound; +} + +export function integrationsControllerSetIntegrationAsPrimaryResponseToJSON( + integrationsControllerSetIntegrationAsPrimaryResponse: + IntegrationsControllerSetIntegrationAsPrimaryResponse, +): string { + return JSON.stringify( + IntegrationsControllerSetIntegrationAsPrimaryResponse$outboundSchema.parse( + integrationsControllerSetIntegrationAsPrimaryResponse, + ), + ); +} + +export function integrationsControllerSetIntegrationAsPrimaryResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerSetIntegrationAsPrimaryResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerSetIntegrationAsPrimaryResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerSetIntegrationAsPrimaryResponse' from JSON`, + ); +} diff --git a/src/models/operations/integrationscontrollerupdateintegrationbyid.ts b/src/models/operations/integrationscontrollerupdateintegrationbyid.ts new file mode 100644 index 00000000..f3bd1193 --- /dev/null +++ b/src/models/operations/integrationscontrollerupdateintegrationbyid.ts @@ -0,0 +1,182 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type IntegrationsControllerUpdateIntegrationByIdRequest = { + integrationId: string; + updateIntegrationRequestDto: components.UpdateIntegrationRequestDto; +}; + +export type IntegrationsControllerUpdateIntegrationByIdResponse = { + headers: { [k: string]: Array }; + result: components.IntegrationResponseDto; +}; + +/** @internal */ +export const IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema: + z.ZodType< + IntegrationsControllerUpdateIntegrationByIdRequest, + z.ZodTypeDef, + unknown + > = z.object({ + integrationId: z.string(), + UpdateIntegrationRequestDto: + components.UpdateIntegrationRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "UpdateIntegrationRequestDto": "updateIntegrationRequestDto", + }); + }); + +/** @internal */ +export type IntegrationsControllerUpdateIntegrationByIdRequest$Outbound = { + integrationId: string; + UpdateIntegrationRequestDto: components.UpdateIntegrationRequestDto$Outbound; +}; + +/** @internal */ +export const IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema: + z.ZodType< + IntegrationsControllerUpdateIntegrationByIdRequest$Outbound, + z.ZodTypeDef, + IntegrationsControllerUpdateIntegrationByIdRequest + > = z.object({ + integrationId: z.string(), + updateIntegrationRequestDto: + components.UpdateIntegrationRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + updateIntegrationRequestDto: "UpdateIntegrationRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerUpdateIntegrationByIdRequest$ { + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema; + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema; + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdRequest$Outbound` instead. */ + export type Outbound = + IntegrationsControllerUpdateIntegrationByIdRequest$Outbound; +} + +export function integrationsControllerUpdateIntegrationByIdRequestToJSON( + integrationsControllerUpdateIntegrationByIdRequest: + IntegrationsControllerUpdateIntegrationByIdRequest, +): string { + return JSON.stringify( + IntegrationsControllerUpdateIntegrationByIdRequest$outboundSchema.parse( + integrationsControllerUpdateIntegrationByIdRequest, + ), + ); +} + +export function integrationsControllerUpdateIntegrationByIdRequestFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerUpdateIntegrationByIdRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerUpdateIntegrationByIdRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerUpdateIntegrationByIdRequest' from JSON`, + ); +} + +/** @internal */ +export const IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema: + z.ZodType< + IntegrationsControllerUpdateIntegrationByIdResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.IntegrationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type IntegrationsControllerUpdateIntegrationByIdResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.IntegrationResponseDto$Outbound; +}; + +/** @internal */ +export const IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema: + z.ZodType< + IntegrationsControllerUpdateIntegrationByIdResponse$Outbound, + z.ZodTypeDef, + IntegrationsControllerUpdateIntegrationByIdResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.IntegrationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace IntegrationsControllerUpdateIntegrationByIdResponse$ { + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema` instead. */ + export const inboundSchema = + IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema; + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema` instead. */ + export const outboundSchema = + IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema; + /** @deprecated use `IntegrationsControllerUpdateIntegrationByIdResponse$Outbound` instead. */ + export type Outbound = + IntegrationsControllerUpdateIntegrationByIdResponse$Outbound; +} + +export function integrationsControllerUpdateIntegrationByIdResponseToJSON( + integrationsControllerUpdateIntegrationByIdResponse: + IntegrationsControllerUpdateIntegrationByIdResponse, +): string { + return JSON.stringify( + IntegrationsControllerUpdateIntegrationByIdResponse$outboundSchema.parse( + integrationsControllerUpdateIntegrationByIdResponse, + ), + ); +} + +export function integrationsControllerUpdateIntegrationByIdResponseFromJSON( + jsonString: string, +): SafeParseResult< + IntegrationsControllerUpdateIntegrationByIdResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + IntegrationsControllerUpdateIntegrationByIdResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'IntegrationsControllerUpdateIntegrationByIdResponse' from JSON`, + ); +} diff --git a/src/models/operations/messagescontrollerdeletemessage.ts b/src/models/operations/messagescontrollerdeletemessage.ts new file mode 100644 index 00000000..fc4b81d6 --- /dev/null +++ b/src/models/operations/messagescontrollerdeletemessage.ts @@ -0,0 +1,157 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type MessagesControllerDeleteMessageRequest = { + messageId: string; +}; + +export type MessagesControllerDeleteMessageResponse = { + headers: { [k: string]: Array }; + result: components.DeleteMessageResponseDto; +}; + +/** @internal */ +export const MessagesControllerDeleteMessageRequest$inboundSchema: z.ZodType< + MessagesControllerDeleteMessageRequest, + z.ZodTypeDef, + unknown +> = z.object({ + messageId: z.string(), +}); + +/** @internal */ +export type MessagesControllerDeleteMessageRequest$Outbound = { + messageId: string; +}; + +/** @internal */ +export const MessagesControllerDeleteMessageRequest$outboundSchema: z.ZodType< + MessagesControllerDeleteMessageRequest$Outbound, + z.ZodTypeDef, + MessagesControllerDeleteMessageRequest +> = z.object({ + messageId: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerDeleteMessageRequest$ { + /** @deprecated use `MessagesControllerDeleteMessageRequest$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerDeleteMessageRequest$inboundSchema; + /** @deprecated use `MessagesControllerDeleteMessageRequest$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerDeleteMessageRequest$outboundSchema; + /** @deprecated use `MessagesControllerDeleteMessageRequest$Outbound` instead. */ + export type Outbound = MessagesControllerDeleteMessageRequest$Outbound; +} + +export function messagesControllerDeleteMessageRequestToJSON( + messagesControllerDeleteMessageRequest: + MessagesControllerDeleteMessageRequest, +): string { + return JSON.stringify( + MessagesControllerDeleteMessageRequest$outboundSchema.parse( + messagesControllerDeleteMessageRequest, + ), + ); +} + +export function messagesControllerDeleteMessageRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessageRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerDeleteMessageRequest' from JSON`, + ); +} + +/** @internal */ +export const MessagesControllerDeleteMessageResponse$inboundSchema: z.ZodType< + MessagesControllerDeleteMessageResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DeleteMessageResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type MessagesControllerDeleteMessageResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.DeleteMessageResponseDto$Outbound; +}; + +/** @internal */ +export const MessagesControllerDeleteMessageResponse$outboundSchema: z.ZodType< + MessagesControllerDeleteMessageResponse$Outbound, + z.ZodTypeDef, + MessagesControllerDeleteMessageResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.DeleteMessageResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerDeleteMessageResponse$ { + /** @deprecated use `MessagesControllerDeleteMessageResponse$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerDeleteMessageResponse$inboundSchema; + /** @deprecated use `MessagesControllerDeleteMessageResponse$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerDeleteMessageResponse$outboundSchema; + /** @deprecated use `MessagesControllerDeleteMessageResponse$Outbound` instead. */ + export type Outbound = MessagesControllerDeleteMessageResponse$Outbound; +} + +export function messagesControllerDeleteMessageResponseToJSON( + messagesControllerDeleteMessageResponse: + MessagesControllerDeleteMessageResponse, +): string { + return JSON.stringify( + MessagesControllerDeleteMessageResponse$outboundSchema.parse( + messagesControllerDeleteMessageResponse, + ), + ); +} + +export function messagesControllerDeleteMessageResponseFromJSON( + jsonString: string, +): SafeParseResult< + MessagesControllerDeleteMessageResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessageResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'MessagesControllerDeleteMessageResponse' from JSON`, + ); +} diff --git a/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts b/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts new file mode 100644 index 00000000..57a6607c --- /dev/null +++ b/src/models/operations/messagescontrollerdeletemessagesbytransactionid.ts @@ -0,0 +1,202 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * The channel of the message to be deleted + */ +export const QueryParamChannel = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +/** + * The channel of the message to be deleted + */ +export type QueryParamChannel = ClosedEnum; + +export type MessagesControllerDeleteMessagesByTransactionIdRequest = { + /** + * The channel of the message to be deleted + */ + channel?: QueryParamChannel | undefined; + transactionId: string; +}; + +export type MessagesControllerDeleteMessagesByTransactionIdResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const QueryParamChannel$inboundSchema: z.ZodNativeEnum< + typeof QueryParamChannel +> = z.nativeEnum(QueryParamChannel); + +/** @internal */ +export const QueryParamChannel$outboundSchema: z.ZodNativeEnum< + typeof QueryParamChannel +> = QueryParamChannel$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace QueryParamChannel$ { + /** @deprecated use `QueryParamChannel$inboundSchema` instead. */ + export const inboundSchema = QueryParamChannel$inboundSchema; + /** @deprecated use `QueryParamChannel$outboundSchema` instead. */ + export const outboundSchema = QueryParamChannel$outboundSchema; +} + +/** @internal */ +export const MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema: + z.ZodType< + MessagesControllerDeleteMessagesByTransactionIdRequest, + z.ZodTypeDef, + unknown + > = z.object({ + channel: QueryParamChannel$inboundSchema.optional(), + transactionId: z.string(), + }); + +/** @internal */ +export type MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound = { + channel?: string | undefined; + transactionId: string; +}; + +/** @internal */ +export const MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema: + z.ZodType< + MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound, + z.ZodTypeDef, + MessagesControllerDeleteMessagesByTransactionIdRequest + > = z.object({ + channel: QueryParamChannel$outboundSchema.optional(), + transactionId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerDeleteMessagesByTransactionIdRequest$ { + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema; + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema; + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound` instead. */ + export type Outbound = + MessagesControllerDeleteMessagesByTransactionIdRequest$Outbound; +} + +export function messagesControllerDeleteMessagesByTransactionIdRequestToJSON( + messagesControllerDeleteMessagesByTransactionIdRequest: + MessagesControllerDeleteMessagesByTransactionIdRequest, +): string { + return JSON.stringify( + MessagesControllerDeleteMessagesByTransactionIdRequest$outboundSchema.parse( + messagesControllerDeleteMessagesByTransactionIdRequest, + ), + ); +} + +export function messagesControllerDeleteMessagesByTransactionIdRequestFromJSON( + jsonString: string, +): SafeParseResult< + MessagesControllerDeleteMessagesByTransactionIdRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessagesByTransactionIdRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerDeleteMessagesByTransactionIdRequest' from JSON`, + ); +} + +/** @internal */ +export const MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema: + z.ZodType< + MessagesControllerDeleteMessagesByTransactionIdResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema: + z.ZodType< + MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound, + z.ZodTypeDef, + MessagesControllerDeleteMessagesByTransactionIdResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerDeleteMessagesByTransactionIdResponse$ { + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema; + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema; + /** @deprecated use `MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound` instead. */ + export type Outbound = + MessagesControllerDeleteMessagesByTransactionIdResponse$Outbound; +} + +export function messagesControllerDeleteMessagesByTransactionIdResponseToJSON( + messagesControllerDeleteMessagesByTransactionIdResponse: + MessagesControllerDeleteMessagesByTransactionIdResponse, +): string { + return JSON.stringify( + MessagesControllerDeleteMessagesByTransactionIdResponse$outboundSchema + .parse(messagesControllerDeleteMessagesByTransactionIdResponse), + ); +} + +export function messagesControllerDeleteMessagesByTransactionIdResponseFromJSON( + jsonString: string, +): SafeParseResult< + MessagesControllerDeleteMessagesByTransactionIdResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + MessagesControllerDeleteMessagesByTransactionIdResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerDeleteMessagesByTransactionIdResponse' from JSON`, + ); +} diff --git a/src/models/operations/messagescontrollergetmessages.ts b/src/models/operations/messagescontrollergetmessages.ts new file mode 100644 index 00000000..4b0ab8e2 --- /dev/null +++ b/src/models/operations/messagescontrollergetmessages.ts @@ -0,0 +1,195 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const Channel = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +export type Channel = ClosedEnum; + +export type MessagesControllerGetMessagesRequest = { + channel?: Channel | undefined; + subscriberId?: string | undefined; + transactionId?: Array | undefined; + page?: number | undefined; + limit?: number | undefined; +}; + +export type MessagesControllerGetMessagesResponse = { + headers: { [k: string]: Array }; + result: components.ActivitiesResponseDto; +}; + +/** @internal */ +export const Channel$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Channel); + +/** @internal */ +export const Channel$outboundSchema: z.ZodNativeEnum = + Channel$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Channel$ { + /** @deprecated use `Channel$inboundSchema` instead. */ + export const inboundSchema = Channel$inboundSchema; + /** @deprecated use `Channel$outboundSchema` instead. */ + export const outboundSchema = Channel$outboundSchema; +} + +/** @internal */ +export const MessagesControllerGetMessagesRequest$inboundSchema: z.ZodType< + MessagesControllerGetMessagesRequest, + z.ZodTypeDef, + unknown +> = z.object({ + channel: Channel$inboundSchema.optional(), + subscriberId: z.string().optional(), + transactionId: z.array(z.string()).optional(), + page: z.number().default(0), + limit: z.number().default(10), +}); + +/** @internal */ +export type MessagesControllerGetMessagesRequest$Outbound = { + channel?: string | undefined; + subscriberId?: string | undefined; + transactionId?: Array | undefined; + page: number; + limit: number; +}; + +/** @internal */ +export const MessagesControllerGetMessagesRequest$outboundSchema: z.ZodType< + MessagesControllerGetMessagesRequest$Outbound, + z.ZodTypeDef, + MessagesControllerGetMessagesRequest +> = z.object({ + channel: Channel$outboundSchema.optional(), + subscriberId: z.string().optional(), + transactionId: z.array(z.string()).optional(), + page: z.number().default(0), + limit: z.number().default(10), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerGetMessagesRequest$ { + /** @deprecated use `MessagesControllerGetMessagesRequest$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerGetMessagesRequest$inboundSchema; + /** @deprecated use `MessagesControllerGetMessagesRequest$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerGetMessagesRequest$outboundSchema; + /** @deprecated use `MessagesControllerGetMessagesRequest$Outbound` instead. */ + export type Outbound = MessagesControllerGetMessagesRequest$Outbound; +} + +export function messagesControllerGetMessagesRequestToJSON( + messagesControllerGetMessagesRequest: MessagesControllerGetMessagesRequest, +): string { + return JSON.stringify( + MessagesControllerGetMessagesRequest$outboundSchema.parse( + messagesControllerGetMessagesRequest, + ), + ); +} + +export function messagesControllerGetMessagesRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + MessagesControllerGetMessagesRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerGetMessagesRequest' from JSON`, + ); +} + +/** @internal */ +export const MessagesControllerGetMessagesResponse$inboundSchema: z.ZodType< + MessagesControllerGetMessagesResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivitiesResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type MessagesControllerGetMessagesResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivitiesResponseDto$Outbound; +}; + +/** @internal */ +export const MessagesControllerGetMessagesResponse$outboundSchema: z.ZodType< + MessagesControllerGetMessagesResponse$Outbound, + z.ZodTypeDef, + MessagesControllerGetMessagesResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivitiesResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace MessagesControllerGetMessagesResponse$ { + /** @deprecated use `MessagesControllerGetMessagesResponse$inboundSchema` instead. */ + export const inboundSchema = + MessagesControllerGetMessagesResponse$inboundSchema; + /** @deprecated use `MessagesControllerGetMessagesResponse$outboundSchema` instead. */ + export const outboundSchema = + MessagesControllerGetMessagesResponse$outboundSchema; + /** @deprecated use `MessagesControllerGetMessagesResponse$Outbound` instead. */ + export type Outbound = MessagesControllerGetMessagesResponse$Outbound; +} + +export function messagesControllerGetMessagesResponseToJSON( + messagesControllerGetMessagesResponse: MessagesControllerGetMessagesResponse, +): string { + return JSON.stringify( + MessagesControllerGetMessagesResponse$outboundSchema.parse( + messagesControllerGetMessagesResponse, + ), + ); +} + +export function messagesControllerGetMessagesResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + MessagesControllerGetMessagesResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'MessagesControllerGetMessagesResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts b/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts new file mode 100644 index 00000000..df21b7d2 --- /dev/null +++ b/src/models/operations/notificationgroupscontrollercreatenotificationgroup.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupsControllerCreateNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.NotificationGroupResponseDto; +}; + +/** @internal */ +export const NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerCreateNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.NotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerCreateNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.NotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerCreateNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerCreateNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.NotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerCreateNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerCreateNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerCreateNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerCreateNotificationGroupResponseToJSON( + notificationGroupsControllerCreateNotificationGroupResponse: + NotificationGroupsControllerCreateNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerCreateNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerCreateNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerCreateNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerCreateNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerCreateNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerCreateNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts b/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts new file mode 100644 index 00000000..505fb746 --- /dev/null +++ b/src/models/operations/notificationgroupscontrollerdeletenotificationgroup.ts @@ -0,0 +1,166 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupsControllerDeleteNotificationGroupRequest = { + id: string; +}; + +export type NotificationGroupsControllerDeleteNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.DeleteNotificationGroupResponseDto; +}; + +/** @internal */ +export const NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema: + z.ZodType< + NotificationGroupsControllerDeleteNotificationGroupRequest, + z.ZodTypeDef, + unknown + > = z.object({ + id: z.string(), + }); + +/** @internal */ +export type NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound = + { + id: string; + }; + +/** @internal */ +export const NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema: + z.ZodType< + NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerDeleteNotificationGroupRequest + > = z.object({ + id: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerDeleteNotificationGroupRequest$ { + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema; + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema; + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerDeleteNotificationGroupRequest$Outbound; +} + +export function notificationGroupsControllerDeleteNotificationGroupRequestToJSON( + notificationGroupsControllerDeleteNotificationGroupRequest: + NotificationGroupsControllerDeleteNotificationGroupRequest, +): string { + return JSON.stringify( + NotificationGroupsControllerDeleteNotificationGroupRequest$outboundSchema + .parse(notificationGroupsControllerDeleteNotificationGroupRequest), + ); +} + +export function notificationGroupsControllerDeleteNotificationGroupRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerDeleteNotificationGroupRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerDeleteNotificationGroupRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerDeleteNotificationGroupRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerDeleteNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DeleteNotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.DeleteNotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerDeleteNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.DeleteNotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerDeleteNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerDeleteNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerDeleteNotificationGroupResponseToJSON( + notificationGroupsControllerDeleteNotificationGroupResponse: + NotificationGroupsControllerDeleteNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerDeleteNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerDeleteNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerDeleteNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerDeleteNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerDeleteNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerDeleteNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts b/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts new file mode 100644 index 00000000..8f66a911 --- /dev/null +++ b/src/models/operations/notificationgroupscontrollergetnotificationgroup.ts @@ -0,0 +1,165 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupsControllerGetNotificationGroupRequest = { + id: string; +}; + +export type NotificationGroupsControllerGetNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.NotificationGroupResponseDto; +}; + +/** @internal */ +export const NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema: + z.ZodType< + NotificationGroupsControllerGetNotificationGroupRequest, + z.ZodTypeDef, + unknown + > = z.object({ + id: z.string(), + }); + +/** @internal */ +export type NotificationGroupsControllerGetNotificationGroupRequest$Outbound = { + id: string; +}; + +/** @internal */ +export const NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema: + z.ZodType< + NotificationGroupsControllerGetNotificationGroupRequest$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerGetNotificationGroupRequest + > = z.object({ + id: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerGetNotificationGroupRequest$ { + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema; + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema; + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupRequest$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerGetNotificationGroupRequest$Outbound; +} + +export function notificationGroupsControllerGetNotificationGroupRequestToJSON( + notificationGroupsControllerGetNotificationGroupRequest: + NotificationGroupsControllerGetNotificationGroupRequest, +): string { + return JSON.stringify( + NotificationGroupsControllerGetNotificationGroupRequest$outboundSchema + .parse(notificationGroupsControllerGetNotificationGroupRequest), + ); +} + +export function notificationGroupsControllerGetNotificationGroupRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerGetNotificationGroupRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerGetNotificationGroupRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerGetNotificationGroupRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerGetNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.NotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerGetNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.NotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerGetNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerGetNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.NotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerGetNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerGetNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerGetNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerGetNotificationGroupResponseToJSON( + notificationGroupsControllerGetNotificationGroupResponse: + NotificationGroupsControllerGetNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerGetNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerGetNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerGetNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerGetNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerGetNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerGetNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts b/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts new file mode 100644 index 00000000..6c51dad2 --- /dev/null +++ b/src/models/operations/notificationgroupscontrollerlistnotificationgroups.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupsControllerListNotificationGroupsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerListNotificationGroupsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.NotificationGroupResponseDto$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerListNotificationGroupsResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: Array; + }; + +/** @internal */ +export const NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerListNotificationGroupsResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerListNotificationGroupsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.NotificationGroupResponseDto$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerListNotificationGroupsResponse$ { + /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerListNotificationGroupsResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerListNotificationGroupsResponse$Outbound; +} + +export function notificationGroupsControllerListNotificationGroupsResponseToJSON( + notificationGroupsControllerListNotificationGroupsResponse: + NotificationGroupsControllerListNotificationGroupsResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerListNotificationGroupsResponse$outboundSchema + .parse(notificationGroupsControllerListNotificationGroupsResponse), + ); +} + +export function notificationGroupsControllerListNotificationGroupsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerListNotificationGroupsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerListNotificationGroupsResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerListNotificationGroupsResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts b/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts new file mode 100644 index 00000000..5a7b80d0 --- /dev/null +++ b/src/models/operations/notificationgroupscontrollerupdatenotificationgroup.ts @@ -0,0 +1,182 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationGroupsControllerUpdateNotificationGroupRequest = { + id: string; + createNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto; +}; + +export type NotificationGroupsControllerUpdateNotificationGroupResponse = { + headers: { [k: string]: Array }; + result: components.NotificationGroupResponseDto; +}; + +/** @internal */ +export const NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema: + z.ZodType< + NotificationGroupsControllerUpdateNotificationGroupRequest, + z.ZodTypeDef, + unknown + > = z.object({ + id: z.string(), + CreateNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "CreateNotificationGroupRequestDto": "createNotificationGroupRequestDto", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound = + { + id: string; + CreateNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema: + z.ZodType< + NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerUpdateNotificationGroupRequest + > = z.object({ + id: z.string(), + createNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + createNotificationGroupRequestDto: "CreateNotificationGroupRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerUpdateNotificationGroupRequest$ { + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema; + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema; + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerUpdateNotificationGroupRequest$Outbound; +} + +export function notificationGroupsControllerUpdateNotificationGroupRequestToJSON( + notificationGroupsControllerUpdateNotificationGroupRequest: + NotificationGroupsControllerUpdateNotificationGroupRequest, +): string { + return JSON.stringify( + NotificationGroupsControllerUpdateNotificationGroupRequest$outboundSchema + .parse(notificationGroupsControllerUpdateNotificationGroupRequest), + ); +} + +export function notificationGroupsControllerUpdateNotificationGroupRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerUpdateNotificationGroupRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerUpdateNotificationGroupRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerUpdateNotificationGroupRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema: + z.ZodType< + NotificationGroupsControllerUpdateNotificationGroupResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.NotificationGroupResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.NotificationGroupResponseDto$Outbound; + }; + +/** @internal */ +export const NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema: + z.ZodType< + NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound, + z.ZodTypeDef, + NotificationGroupsControllerUpdateNotificationGroupResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.NotificationGroupResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationGroupsControllerUpdateNotificationGroupResponse$ { + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema; + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema; + /** @deprecated use `NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound` instead. */ + export type Outbound = + NotificationGroupsControllerUpdateNotificationGroupResponse$Outbound; +} + +export function notificationGroupsControllerUpdateNotificationGroupResponseToJSON( + notificationGroupsControllerUpdateNotificationGroupResponse: + NotificationGroupsControllerUpdateNotificationGroupResponse, +): string { + return JSON.stringify( + NotificationGroupsControllerUpdateNotificationGroupResponse$outboundSchema + .parse(notificationGroupsControllerUpdateNotificationGroupResponse), + ); +} + +export function notificationGroupsControllerUpdateNotificationGroupResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationGroupsControllerUpdateNotificationGroupResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationGroupsControllerUpdateNotificationGroupResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'NotificationGroupsControllerUpdateNotificationGroupResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollergetactivitygraphstats.ts b/src/models/operations/notificationscontrollergetactivitygraphstats.ts new file mode 100644 index 00000000..e392a033 --- /dev/null +++ b/src/models/operations/notificationscontrollergetactivitygraphstats.ts @@ -0,0 +1,168 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationsControllerGetActivityGraphStatsRequest = { + days?: number | undefined; +}; + +export type NotificationsControllerGetActivityGraphStatsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const NotificationsControllerGetActivityGraphStatsRequest$inboundSchema: + z.ZodType< + NotificationsControllerGetActivityGraphStatsRequest, + z.ZodTypeDef, + unknown + > = z.object({ + days: z.number().optional(), + }); + +/** @internal */ +export type NotificationsControllerGetActivityGraphStatsRequest$Outbound = { + days?: number | undefined; +}; + +/** @internal */ +export const NotificationsControllerGetActivityGraphStatsRequest$outboundSchema: + z.ZodType< + NotificationsControllerGetActivityGraphStatsRequest$Outbound, + z.ZodTypeDef, + NotificationsControllerGetActivityGraphStatsRequest + > = z.object({ + days: z.number().optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetActivityGraphStatsRequest$ { + /** @deprecated use `NotificationsControllerGetActivityGraphStatsRequest$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetActivityGraphStatsRequest$inboundSchema; + /** @deprecated use `NotificationsControllerGetActivityGraphStatsRequest$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetActivityGraphStatsRequest$outboundSchema; + /** @deprecated use `NotificationsControllerGetActivityGraphStatsRequest$Outbound` instead. */ + export type Outbound = + NotificationsControllerGetActivityGraphStatsRequest$Outbound; +} + +export function notificationsControllerGetActivityGraphStatsRequestToJSON( + notificationsControllerGetActivityGraphStatsRequest: + NotificationsControllerGetActivityGraphStatsRequest, +): string { + return JSON.stringify( + NotificationsControllerGetActivityGraphStatsRequest$outboundSchema.parse( + notificationsControllerGetActivityGraphStatsRequest, + ), + ); +} + +export function notificationsControllerGetActivityGraphStatsRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetActivityGraphStatsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetActivityGraphStatsRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetActivityGraphStatsRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationsControllerGetActivityGraphStatsResponse$inboundSchema: + z.ZodType< + NotificationsControllerGetActivityGraphStatsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.ActivityGraphStatesResponse$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerGetActivityGraphStatsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const NotificationsControllerGetActivityGraphStatsResponse$outboundSchema: + z.ZodType< + NotificationsControllerGetActivityGraphStatsResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerGetActivityGraphStatsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.ActivityGraphStatesResponse$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetActivityGraphStatsResponse$ { + /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetActivityGraphStatsResponse$inboundSchema; + /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetActivityGraphStatsResponse$outboundSchema; + /** @deprecated use `NotificationsControllerGetActivityGraphStatsResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerGetActivityGraphStatsResponse$Outbound; +} + +export function notificationsControllerGetActivityGraphStatsResponseToJSON( + notificationsControllerGetActivityGraphStatsResponse: + NotificationsControllerGetActivityGraphStatsResponse, +): string { + return JSON.stringify( + NotificationsControllerGetActivityGraphStatsResponse$outboundSchema.parse( + notificationsControllerGetActivityGraphStatsResponse, + ), + ); +} + +export function notificationsControllerGetActivityGraphStatsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetActivityGraphStatsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetActivityGraphStatsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetActivityGraphStatsResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollergetactivitystats.ts b/src/models/operations/notificationscontrollergetactivitystats.ts new file mode 100644 index 00000000..49af179c --- /dev/null +++ b/src/models/operations/notificationscontrollergetactivitystats.ts @@ -0,0 +1,96 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationsControllerGetActivityStatsResponse = { + headers: { [k: string]: Array }; + result: components.ActivityStatsResponseDto; +}; + +/** @internal */ +export const NotificationsControllerGetActivityStatsResponse$inboundSchema: + z.ZodType< + NotificationsControllerGetActivityStatsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivityStatsResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerGetActivityStatsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivityStatsResponseDto$Outbound; +}; + +/** @internal */ +export const NotificationsControllerGetActivityStatsResponse$outboundSchema: + z.ZodType< + NotificationsControllerGetActivityStatsResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerGetActivityStatsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivityStatsResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetActivityStatsResponse$ { + /** @deprecated use `NotificationsControllerGetActivityStatsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetActivityStatsResponse$inboundSchema; + /** @deprecated use `NotificationsControllerGetActivityStatsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetActivityStatsResponse$outboundSchema; + /** @deprecated use `NotificationsControllerGetActivityStatsResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerGetActivityStatsResponse$Outbound; +} + +export function notificationsControllerGetActivityStatsResponseToJSON( + notificationsControllerGetActivityStatsResponse: + NotificationsControllerGetActivityStatsResponse, +): string { + return JSON.stringify( + NotificationsControllerGetActivityStatsResponse$outboundSchema.parse( + notificationsControllerGetActivityStatsResponse, + ), + ); +} + +export function notificationsControllerGetActivityStatsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetActivityStatsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetActivityStatsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetActivityStatsResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollergetnotification.ts b/src/models/operations/notificationscontrollergetnotification.ts new file mode 100644 index 00000000..12ae293d --- /dev/null +++ b/src/models/operations/notificationscontrollergetnotification.ts @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type NotificationsControllerGetNotificationRequest = { + notificationId: string; +}; + +export type NotificationsControllerGetNotificationResponse = { + headers: { [k: string]: Array }; + result: components.ActivityNotificationResponseDto; +}; + +/** @internal */ +export const NotificationsControllerGetNotificationRequest$inboundSchema: + z.ZodType< + NotificationsControllerGetNotificationRequest, + z.ZodTypeDef, + unknown + > = z.object({ + notificationId: z.string(), + }); + +/** @internal */ +export type NotificationsControllerGetNotificationRequest$Outbound = { + notificationId: string; +}; + +/** @internal */ +export const NotificationsControllerGetNotificationRequest$outboundSchema: + z.ZodType< + NotificationsControllerGetNotificationRequest$Outbound, + z.ZodTypeDef, + NotificationsControllerGetNotificationRequest + > = z.object({ + notificationId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetNotificationRequest$ { + /** @deprecated use `NotificationsControllerGetNotificationRequest$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetNotificationRequest$inboundSchema; + /** @deprecated use `NotificationsControllerGetNotificationRequest$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetNotificationRequest$outboundSchema; + /** @deprecated use `NotificationsControllerGetNotificationRequest$Outbound` instead. */ + export type Outbound = NotificationsControllerGetNotificationRequest$Outbound; +} + +export function notificationsControllerGetNotificationRequestToJSON( + notificationsControllerGetNotificationRequest: + NotificationsControllerGetNotificationRequest, +): string { + return JSON.stringify( + NotificationsControllerGetNotificationRequest$outboundSchema.parse( + notificationsControllerGetNotificationRequest, + ), + ); +} + +export function notificationsControllerGetNotificationRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetNotificationRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetNotificationRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetNotificationRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationsControllerGetNotificationResponse$inboundSchema: + z.ZodType< + NotificationsControllerGetNotificationResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivityNotificationResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerGetNotificationResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivityNotificationResponseDto$Outbound; +}; + +/** @internal */ +export const NotificationsControllerGetNotificationResponse$outboundSchema: + z.ZodType< + NotificationsControllerGetNotificationResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerGetNotificationResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivityNotificationResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerGetNotificationResponse$ { + /** @deprecated use `NotificationsControllerGetNotificationResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerGetNotificationResponse$inboundSchema; + /** @deprecated use `NotificationsControllerGetNotificationResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerGetNotificationResponse$outboundSchema; + /** @deprecated use `NotificationsControllerGetNotificationResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerGetNotificationResponse$Outbound; +} + +export function notificationsControllerGetNotificationResponseToJSON( + notificationsControllerGetNotificationResponse: + NotificationsControllerGetNotificationResponse, +): string { + return JSON.stringify( + NotificationsControllerGetNotificationResponse$outboundSchema.parse( + notificationsControllerGetNotificationResponse, + ), + ); +} + +export function notificationsControllerGetNotificationResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerGetNotificationResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerGetNotificationResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerGetNotificationResponse' from JSON`, + ); +} diff --git a/src/models/operations/notificationscontrollerlistnotifications.ts b/src/models/operations/notificationscontrollerlistnotifications.ts new file mode 100644 index 00000000..3643a26d --- /dev/null +++ b/src/models/operations/notificationscontrollerlistnotifications.ts @@ -0,0 +1,224 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export const Channels = { + InApp: "in_app", + Email: "email", + Sms: "sms", + Chat: "chat", + Push: "push", +} as const; +export type Channels = ClosedEnum; + +export type NotificationsControllerListNotificationsRequest = { + channels: Array; + templates: Array; + emails: Array; + /** + * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. + */ + search: string; + subscriberIds: Array; + page?: number | undefined; + transactionId?: string | undefined; +}; + +export type NotificationsControllerListNotificationsResponse = { + headers: { [k: string]: Array }; + result: components.ActivitiesResponseDto; +}; + +/** @internal */ +export const Channels$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Channels); + +/** @internal */ +export const Channels$outboundSchema: z.ZodNativeEnum = + Channels$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Channels$ { + /** @deprecated use `Channels$inboundSchema` instead. */ + export const inboundSchema = Channels$inboundSchema; + /** @deprecated use `Channels$outboundSchema` instead. */ + export const outboundSchema = Channels$outboundSchema; +} + +/** @internal */ +export const NotificationsControllerListNotificationsRequest$inboundSchema: + z.ZodType< + NotificationsControllerListNotificationsRequest, + z.ZodTypeDef, + unknown + > = z.object({ + channels: z.array(Channels$inboundSchema), + templates: z.array(z.string()), + emails: z.array(z.string()), + search: z.string(), + subscriberIds: z.array(z.string()), + page: z.number().default(0), + transactionId: z.string().optional(), + }); + +/** @internal */ +export type NotificationsControllerListNotificationsRequest$Outbound = { + channels: Array; + templates: Array; + emails: Array; + search: string; + subscriberIds: Array; + page: number; + transactionId?: string | undefined; +}; + +/** @internal */ +export const NotificationsControllerListNotificationsRequest$outboundSchema: + z.ZodType< + NotificationsControllerListNotificationsRequest$Outbound, + z.ZodTypeDef, + NotificationsControllerListNotificationsRequest + > = z.object({ + channels: z.array(Channels$outboundSchema), + templates: z.array(z.string()), + emails: z.array(z.string()), + search: z.string(), + subscriberIds: z.array(z.string()), + page: z.number().default(0), + transactionId: z.string().optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerListNotificationsRequest$ { + /** @deprecated use `NotificationsControllerListNotificationsRequest$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerListNotificationsRequest$inboundSchema; + /** @deprecated use `NotificationsControllerListNotificationsRequest$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerListNotificationsRequest$outboundSchema; + /** @deprecated use `NotificationsControllerListNotificationsRequest$Outbound` instead. */ + export type Outbound = + NotificationsControllerListNotificationsRequest$Outbound; +} + +export function notificationsControllerListNotificationsRequestToJSON( + notificationsControllerListNotificationsRequest: + NotificationsControllerListNotificationsRequest, +): string { + return JSON.stringify( + NotificationsControllerListNotificationsRequest$outboundSchema.parse( + notificationsControllerListNotificationsRequest, + ), + ); +} + +export function notificationsControllerListNotificationsRequestFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerListNotificationsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerListNotificationsRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerListNotificationsRequest' from JSON`, + ); +} + +/** @internal */ +export const NotificationsControllerListNotificationsResponse$inboundSchema: + z.ZodType< + NotificationsControllerListNotificationsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.ActivitiesResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type NotificationsControllerListNotificationsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.ActivitiesResponseDto$Outbound; +}; + +/** @internal */ +export const NotificationsControllerListNotificationsResponse$outboundSchema: + z.ZodType< + NotificationsControllerListNotificationsResponse$Outbound, + z.ZodTypeDef, + NotificationsControllerListNotificationsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.ActivitiesResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace NotificationsControllerListNotificationsResponse$ { + /** @deprecated use `NotificationsControllerListNotificationsResponse$inboundSchema` instead. */ + export const inboundSchema = + NotificationsControllerListNotificationsResponse$inboundSchema; + /** @deprecated use `NotificationsControllerListNotificationsResponse$outboundSchema` instead. */ + export const outboundSchema = + NotificationsControllerListNotificationsResponse$outboundSchema; + /** @deprecated use `NotificationsControllerListNotificationsResponse$Outbound` instead. */ + export type Outbound = + NotificationsControllerListNotificationsResponse$Outbound; +} + +export function notificationsControllerListNotificationsResponseToJSON( + notificationsControllerListNotificationsResponse: + NotificationsControllerListNotificationsResponse, +): string { + return JSON.stringify( + NotificationsControllerListNotificationsResponse$outboundSchema.parse( + notificationsControllerListNotificationsResponse, + ), + ); +} + +export function notificationsControllerListNotificationsResponseFromJSON( + jsonString: string, +): SafeParseResult< + NotificationsControllerListNotificationsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + NotificationsControllerListNotificationsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'NotificationsControllerListNotificationsResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts b/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts new file mode 100644 index 00000000..bf66b66f --- /dev/null +++ b/src/models/operations/subscriberscontrollerbulkcreatesubscribers.ts @@ -0,0 +1,89 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerBulkCreateSubscribersResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerBulkCreateSubscribersResponse$inboundSchema: + z.ZodType< + SubscribersControllerBulkCreateSubscribersResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type SubscribersControllerBulkCreateSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerBulkCreateSubscribersResponse$outboundSchema: + z.ZodType< + SubscribersControllerBulkCreateSubscribersResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerBulkCreateSubscribersResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerBulkCreateSubscribersResponse$ { + /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerBulkCreateSubscribersResponse$inboundSchema; + /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerBulkCreateSubscribersResponse$outboundSchema; + /** @deprecated use `SubscribersControllerBulkCreateSubscribersResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerBulkCreateSubscribersResponse$Outbound; +} + +export function subscribersControllerBulkCreateSubscribersResponseToJSON( + subscribersControllerBulkCreateSubscribersResponse: + SubscribersControllerBulkCreateSubscribersResponse, +): string { + return JSON.stringify( + SubscribersControllerBulkCreateSubscribersResponse$outboundSchema.parse( + subscribersControllerBulkCreateSubscribersResponse, + ), + ); +} + +export function subscribersControllerBulkCreateSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerBulkCreateSubscribersResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerBulkCreateSubscribersResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerBulkCreateSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerchataccessoauth.ts b/src/models/operations/subscriberscontrollerchataccessoauth.ts new file mode 100644 index 00000000..384465b7 --- /dev/null +++ b/src/models/operations/subscriberscontrollerchataccessoauth.ts @@ -0,0 +1,175 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerChatAccessOauthRequest = { + subscriberId: string; + providerId?: any | undefined; + hmacHash: string; + environmentId: string; + integrationIdentifier?: string | undefined; +}; + +export type SubscribersControllerChatAccessOauthResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerChatAccessOauthRequest$inboundSchema: + z.ZodType< + SubscribersControllerChatAccessOauthRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + providerId: z.any().optional(), + hmacHash: z.string(), + environmentId: z.string(), + integrationIdentifier: z.string().optional(), + }); + +/** @internal */ +export type SubscribersControllerChatAccessOauthRequest$Outbound = { + subscriberId: string; + providerId?: any | undefined; + hmacHash: string; + environmentId: string; + integrationIdentifier?: string | undefined; +}; + +/** @internal */ +export const SubscribersControllerChatAccessOauthRequest$outboundSchema: + z.ZodType< + SubscribersControllerChatAccessOauthRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerChatAccessOauthRequest + > = z.object({ + subscriberId: z.string(), + providerId: z.any().optional(), + hmacHash: z.string(), + environmentId: z.string(), + integrationIdentifier: z.string().optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerChatAccessOauthRequest$ { + /** @deprecated use `SubscribersControllerChatAccessOauthRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerChatAccessOauthRequest$inboundSchema; + /** @deprecated use `SubscribersControllerChatAccessOauthRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerChatAccessOauthRequest$outboundSchema; + /** @deprecated use `SubscribersControllerChatAccessOauthRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerChatAccessOauthRequest$Outbound; +} + +export function subscribersControllerChatAccessOauthRequestToJSON( + subscribersControllerChatAccessOauthRequest: + SubscribersControllerChatAccessOauthRequest, +): string { + return JSON.stringify( + SubscribersControllerChatAccessOauthRequest$outboundSchema.parse( + subscribersControllerChatAccessOauthRequest, + ), + ); +} + +export function subscribersControllerChatAccessOauthRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatAccessOauthRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatAccessOauthRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatAccessOauthRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerChatAccessOauthResponse$inboundSchema: + z.ZodType< + SubscribersControllerChatAccessOauthResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type SubscribersControllerChatAccessOauthResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerChatAccessOauthResponse$outboundSchema: + z.ZodType< + SubscribersControllerChatAccessOauthResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerChatAccessOauthResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerChatAccessOauthResponse$ { + /** @deprecated use `SubscribersControllerChatAccessOauthResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerChatAccessOauthResponse$inboundSchema; + /** @deprecated use `SubscribersControllerChatAccessOauthResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerChatAccessOauthResponse$outboundSchema; + /** @deprecated use `SubscribersControllerChatAccessOauthResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerChatAccessOauthResponse$Outbound; +} + +export function subscribersControllerChatAccessOauthResponseToJSON( + subscribersControllerChatAccessOauthResponse: + SubscribersControllerChatAccessOauthResponse, +): string { + return JSON.stringify( + SubscribersControllerChatAccessOauthResponse$outboundSchema.parse( + subscribersControllerChatAccessOauthResponse, + ), + ); +} + +export function subscribersControllerChatAccessOauthResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatAccessOauthResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatAccessOauthResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatAccessOauthResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerchatoauthcallback.ts b/src/models/operations/subscriberscontrollerchatoauthcallback.ts new file mode 100644 index 00000000..8f1b742e --- /dev/null +++ b/src/models/operations/subscriberscontrollerchatoauthcallback.ts @@ -0,0 +1,254 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerChatOauthCallbackRequest = { + subscriberId: string; + providerId?: any | undefined; + code: string; + hmacHash: string; + environmentId: string; + integrationIdentifier?: string | undefined; +}; + +export type SubscribersControllerChatOauthCallbackResponseBody = {}; + +export type SubscribersControllerChatOauthCallbackResponse = { + headers: { [k: string]: Array }; + result: SubscribersControllerChatOauthCallbackResponseBody; +}; + +/** @internal */ +export const SubscribersControllerChatOauthCallbackRequest$inboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + providerId: z.any().optional(), + code: z.string(), + hmacHash: z.string(), + environmentId: z.string(), + integrationIdentifier: z.string().optional(), + }); + +/** @internal */ +export type SubscribersControllerChatOauthCallbackRequest$Outbound = { + subscriberId: string; + providerId?: any | undefined; + code: string; + hmacHash: string; + environmentId: string; + integrationIdentifier?: string | undefined; +}; + +/** @internal */ +export const SubscribersControllerChatOauthCallbackRequest$outboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerChatOauthCallbackRequest + > = z.object({ + subscriberId: z.string(), + providerId: z.any().optional(), + code: z.string(), + hmacHash: z.string(), + environmentId: z.string(), + integrationIdentifier: z.string().optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerChatOauthCallbackRequest$ { + /** @deprecated use `SubscribersControllerChatOauthCallbackRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerChatOauthCallbackRequest$inboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerChatOauthCallbackRequest$outboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerChatOauthCallbackRequest$Outbound; +} + +export function subscribersControllerChatOauthCallbackRequestToJSON( + subscribersControllerChatOauthCallbackRequest: + SubscribersControllerChatOauthCallbackRequest, +): string { + return JSON.stringify( + SubscribersControllerChatOauthCallbackRequest$outboundSchema.parse( + subscribersControllerChatOauthCallbackRequest, + ), + ); +} + +export function subscribersControllerChatOauthCallbackRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatOauthCallbackRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatOauthCallbackRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatOauthCallbackRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerChatOauthCallbackResponseBody$inboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackResponseBody, + z.ZodTypeDef, + unknown + > = z.object({}); + +/** @internal */ +export type SubscribersControllerChatOauthCallbackResponseBody$Outbound = {}; + +/** @internal */ +export const SubscribersControllerChatOauthCallbackResponseBody$outboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackResponseBody$Outbound, + z.ZodTypeDef, + SubscribersControllerChatOauthCallbackResponseBody + > = z.object({}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerChatOauthCallbackResponseBody$ { + /** @deprecated use `SubscribersControllerChatOauthCallbackResponseBody$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerChatOauthCallbackResponseBody$inboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackResponseBody$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerChatOauthCallbackResponseBody$outboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackResponseBody$Outbound` instead. */ + export type Outbound = + SubscribersControllerChatOauthCallbackResponseBody$Outbound; +} + +export function subscribersControllerChatOauthCallbackResponseBodyToJSON( + subscribersControllerChatOauthCallbackResponseBody: + SubscribersControllerChatOauthCallbackResponseBody, +): string { + return JSON.stringify( + SubscribersControllerChatOauthCallbackResponseBody$outboundSchema.parse( + subscribersControllerChatOauthCallbackResponseBody, + ), + ); +} + +export function subscribersControllerChatOauthCallbackResponseBodyFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatOauthCallbackResponseBody, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatOauthCallbackResponseBody$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatOauthCallbackResponseBody' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerChatOauthCallbackResponse$inboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.lazy(() => + SubscribersControllerChatOauthCallbackResponseBody$inboundSchema + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerChatOauthCallbackResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: SubscribersControllerChatOauthCallbackResponseBody$Outbound; +}; + +/** @internal */ +export const SubscribersControllerChatOauthCallbackResponse$outboundSchema: + z.ZodType< + SubscribersControllerChatOauthCallbackResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerChatOauthCallbackResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.lazy(() => + SubscribersControllerChatOauthCallbackResponseBody$outboundSchema + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerChatOauthCallbackResponse$ { + /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerChatOauthCallbackResponse$inboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerChatOauthCallbackResponse$outboundSchema; + /** @deprecated use `SubscribersControllerChatOauthCallbackResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerChatOauthCallbackResponse$Outbound; +} + +export function subscribersControllerChatOauthCallbackResponseToJSON( + subscribersControllerChatOauthCallbackResponse: + SubscribersControllerChatOauthCallbackResponse, +): string { + return JSON.stringify( + SubscribersControllerChatOauthCallbackResponse$outboundSchema.parse( + subscribersControllerChatOauthCallbackResponse, + ), + ); +} + +export function subscribersControllerChatOauthCallbackResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerChatOauthCallbackResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerChatOauthCallbackResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerChatOauthCallbackResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollercreatesubscriber.ts b/src/models/operations/subscriberscontrollercreatesubscriber.ts new file mode 100644 index 00000000..b2565f10 --- /dev/null +++ b/src/models/operations/subscriberscontrollercreatesubscriber.ts @@ -0,0 +1,95 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerCreateSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerCreateSubscriberResponse$inboundSchema: + z.ZodType< + SubscribersControllerCreateSubscriberResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerCreateSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerCreateSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerCreateSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerCreateSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerCreateSubscriberResponse$ { + /** @deprecated use `SubscribersControllerCreateSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerCreateSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerCreateSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerCreateSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerCreateSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerCreateSubscriberResponse$Outbound; +} + +export function subscribersControllerCreateSubscriberResponseToJSON( + subscribersControllerCreateSubscriberResponse: + SubscribersControllerCreateSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerCreateSubscriberResponse$outboundSchema.parse( + subscribersControllerCreateSubscriberResponse, + ), + ); +} + +export function subscribersControllerCreateSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerCreateSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerCreateSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerCreateSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts b/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts new file mode 100644 index 00000000..b8f06c77 --- /dev/null +++ b/src/models/operations/subscriberscontrollerdeletesubscribercredentials.ts @@ -0,0 +1,162 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerDeleteSubscriberCredentialsRequest = { + subscriberId: string; + providerId: string; +}; + +export type SubscribersControllerDeleteSubscriberCredentialsResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema: + z.ZodType< + SubscribersControllerDeleteSubscriberCredentialsRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + providerId: z.string(), + }); + +/** @internal */ +export type SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound = { + subscriberId: string; + providerId: string; +}; + +/** @internal */ +export const SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema: + z.ZodType< + SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerDeleteSubscriberCredentialsRequest + > = z.object({ + subscriberId: z.string(), + providerId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerDeleteSubscriberCredentialsRequest$ { + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema; + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema; + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerDeleteSubscriberCredentialsRequest$Outbound; +} + +export function subscribersControllerDeleteSubscriberCredentialsRequestToJSON( + subscribersControllerDeleteSubscriberCredentialsRequest: + SubscribersControllerDeleteSubscriberCredentialsRequest, +): string { + return JSON.stringify( + SubscribersControllerDeleteSubscriberCredentialsRequest$outboundSchema + .parse(subscribersControllerDeleteSubscriberCredentialsRequest), + ); +} + +export function subscribersControllerDeleteSubscriberCredentialsRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerDeleteSubscriberCredentialsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerDeleteSubscriberCredentialsRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerDeleteSubscriberCredentialsRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema: + z.ZodType< + SubscribersControllerDeleteSubscriberCredentialsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); + }); + +/** @internal */ +export type SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound = + { + Headers: { [k: string]: Array }; + }; + +/** @internal */ +export const SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema: + z.ZodType< + SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerDeleteSubscriberCredentialsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerDeleteSubscriberCredentialsResponse$ { + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema; + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema; + /** @deprecated use `SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerDeleteSubscriberCredentialsResponse$Outbound; +} + +export function subscribersControllerDeleteSubscriberCredentialsResponseToJSON( + subscribersControllerDeleteSubscriberCredentialsResponse: + SubscribersControllerDeleteSubscriberCredentialsResponse, +): string { + return JSON.stringify( + SubscribersControllerDeleteSubscriberCredentialsResponse$outboundSchema + .parse(subscribersControllerDeleteSubscriberCredentialsResponse), + ); +} + +export function subscribersControllerDeleteSubscriberCredentialsResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerDeleteSubscriberCredentialsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerDeleteSubscriberCredentialsResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerDeleteSubscriberCredentialsResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetnotificationsfeed.ts b/src/models/operations/subscriberscontrollergetnotificationsfeed.ts new file mode 100644 index 00000000..8775dc61 --- /dev/null +++ b/src/models/operations/subscriberscontrollergetnotificationsfeed.ts @@ -0,0 +1,288 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerGetNotificationsFeedRequest = { + subscriberId: string; + page?: number | undefined; + limit?: number | undefined; + read?: boolean | undefined; + seen?: boolean | undefined; + /** + * Base64 encoded string of the partial payload JSON object + */ + payload?: string | undefined; +}; + +export type SubscribersControllerGetNotificationsFeedResponseBody = { + /** + * The current page of the paginated response + */ + page: number; + /** + * Does the list have more items to fetch + */ + hasMore: boolean; + /** + * Number of items on each page + */ + pageSize: number; + data: Array; +}; + +export type SubscribersControllerGetNotificationsFeedResponse = { + headers: { [k: string]: Array }; + result: SubscribersControllerGetNotificationsFeedResponseBody; +}; + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedRequest$inboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + page: z.number().optional(), + limit: z.number().default(10), + read: z.boolean().optional(), + seen: z.boolean().optional(), + payload: z.string().optional(), + }); + +/** @internal */ +export type SubscribersControllerGetNotificationsFeedRequest$Outbound = { + subscriberId: string; + page?: number | undefined; + limit: number; + read?: boolean | undefined; + seen?: boolean | undefined; + payload?: string | undefined; +}; + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedRequest$outboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerGetNotificationsFeedRequest + > = z.object({ + subscriberId: z.string(), + page: z.number().optional(), + limit: z.number().default(10), + read: z.boolean().optional(), + seen: z.boolean().optional(), + payload: z.string().optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetNotificationsFeedRequest$ { + /** @deprecated use `SubscribersControllerGetNotificationsFeedRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetNotificationsFeedRequest$inboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetNotificationsFeedRequest$outboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerGetNotificationsFeedRequest$Outbound; +} + +export function subscribersControllerGetNotificationsFeedRequestToJSON( + subscribersControllerGetNotificationsFeedRequest: + SubscribersControllerGetNotificationsFeedRequest, +): string { + return JSON.stringify( + SubscribersControllerGetNotificationsFeedRequest$outboundSchema.parse( + subscribersControllerGetNotificationsFeedRequest, + ), + ); +} + +export function subscribersControllerGetNotificationsFeedRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetNotificationsFeedRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetNotificationsFeedRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetNotificationsFeedRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedResponseBody, + z.ZodTypeDef, + unknown + > = z.object({ + page: z.number(), + hasMore: z.boolean(), + pageSize: z.number(), + data: z.array(components.FeedResponseDto$inboundSchema), + }); + +/** @internal */ +export type SubscribersControllerGetNotificationsFeedResponseBody$Outbound = { + page: number; + hasMore: boolean; + pageSize: number; + data: Array; +}; + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedResponseBody$Outbound, + z.ZodTypeDef, + SubscribersControllerGetNotificationsFeedResponseBody + > = z.object({ + page: z.number(), + hasMore: z.boolean(), + pageSize: z.number(), + data: z.array(components.FeedResponseDto$outboundSchema), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetNotificationsFeedResponseBody$ { + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponseBody$Outbound` instead. */ + export type Outbound = + SubscribersControllerGetNotificationsFeedResponseBody$Outbound; +} + +export function subscribersControllerGetNotificationsFeedResponseBodyToJSON( + subscribersControllerGetNotificationsFeedResponseBody: + SubscribersControllerGetNotificationsFeedResponseBody, +): string { + return JSON.stringify( + SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema.parse( + subscribersControllerGetNotificationsFeedResponseBody, + ), + ); +} + +export function subscribersControllerGetNotificationsFeedResponseBodyFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetNotificationsFeedResponseBody, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetNotificationsFeedResponseBody' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedResponse$inboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.lazy(() => + SubscribersControllerGetNotificationsFeedResponseBody$inboundSchema + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetNotificationsFeedResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: SubscribersControllerGetNotificationsFeedResponseBody$Outbound; +}; + +/** @internal */ +export const SubscribersControllerGetNotificationsFeedResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetNotificationsFeedResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetNotificationsFeedResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.lazy(() => + SubscribersControllerGetNotificationsFeedResponseBody$outboundSchema + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetNotificationsFeedResponse$ { + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetNotificationsFeedResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetNotificationsFeedResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetNotificationsFeedResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerGetNotificationsFeedResponse$Outbound; +} + +export function subscribersControllerGetNotificationsFeedResponseToJSON( + subscribersControllerGetNotificationsFeedResponse: + SubscribersControllerGetNotificationsFeedResponse, +): string { + return JSON.stringify( + SubscribersControllerGetNotificationsFeedResponse$outboundSchema.parse( + subscribersControllerGetNotificationsFeedResponse, + ), + ); +} + +export function subscribersControllerGetNotificationsFeedResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetNotificationsFeedResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetNotificationsFeedResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetNotificationsFeedResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetsubscriber.ts b/src/models/operations/subscriberscontrollergetsubscriber.ts new file mode 100644 index 00000000..f82b76ad --- /dev/null +++ b/src/models/operations/subscriberscontrollergetsubscriber.ts @@ -0,0 +1,169 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerGetSubscriberRequest = { + subscriberId: string; + /** + * Includes the topics associated with the subscriber + */ + includeTopics?: string | undefined; +}; + +export type SubscribersControllerGetSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerGetSubscriberRequest$inboundSchema: z.ZodType< + SubscribersControllerGetSubscriberRequest, + z.ZodTypeDef, + unknown +> = z.object({ + subscriberId: z.string(), + includeTopics: z.string().optional(), +}); + +/** @internal */ +export type SubscribersControllerGetSubscriberRequest$Outbound = { + subscriberId: string; + includeTopics?: string | undefined; +}; + +/** @internal */ +export const SubscribersControllerGetSubscriberRequest$outboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerGetSubscriberRequest + > = z.object({ + subscriberId: z.string(), + includeTopics: z.string().optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetSubscriberRequest$ { + /** @deprecated use `SubscribersControllerGetSubscriberRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetSubscriberRequest$inboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetSubscriberRequest$outboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerGetSubscriberRequest$Outbound; +} + +export function subscribersControllerGetSubscriberRequestToJSON( + subscribersControllerGetSubscriberRequest: + SubscribersControllerGetSubscriberRequest, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberRequest$outboundSchema.parse( + subscribersControllerGetSubscriberRequest, + ), + ); +} + +export function subscribersControllerGetSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetSubscriberResponse$inboundSchema: + z.ZodType = + z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerGetSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetSubscriberResponse$ { + /** @deprecated use `SubscribersControllerGetSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerGetSubscriberResponse$Outbound; +} + +export function subscribersControllerGetSubscriberResponseToJSON( + subscribersControllerGetSubscriberResponse: + SubscribersControllerGetSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberResponse$outboundSchema.parse( + subscribersControllerGetSubscriberResponse, + ), + ); +} + +export function subscribersControllerGetSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts b/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts new file mode 100644 index 00000000..bb683d78 --- /dev/null +++ b/src/models/operations/subscriberscontrollergetsubscriberpreferencebylevel.ts @@ -0,0 +1,216 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * the preferences level to be retrieved (template / global) + */ +export const Parameter = { + Global: "global", + Template: "template", +} as const; +/** + * the preferences level to be retrieved (template / global) + */ +export type Parameter = ClosedEnum; + +export type SubscribersControllerGetSubscriberPreferenceByLevelRequest = { + /** + * A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + */ + includeInactiveChannels?: boolean | undefined; + /** + * the preferences level to be retrieved (template / global) + */ + parameter: Parameter; + subscriberId: string; +}; + +export type SubscribersControllerGetSubscriberPreferenceByLevelResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const Parameter$inboundSchema: z.ZodNativeEnum = z + .nativeEnum(Parameter); + +/** @internal */ +export const Parameter$outboundSchema: z.ZodNativeEnum = + Parameter$inboundSchema; + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace Parameter$ { + /** @deprecated use `Parameter$inboundSchema` instead. */ + export const inboundSchema = Parameter$inboundSchema; + /** @deprecated use `Parameter$outboundSchema` instead. */ + export const outboundSchema = Parameter$outboundSchema; +} + +/** @internal */ +export const SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberPreferenceByLevelRequest, + z.ZodTypeDef, + unknown + > = z.object({ + includeInactiveChannels: z.boolean().optional(), + parameter: Parameter$inboundSchema, + subscriberId: z.string(), + }); + +/** @internal */ +export type SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound = + { + includeInactiveChannels?: boolean | undefined; + parameter: string; + subscriberId: string; + }; + +/** @internal */ +export const SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerGetSubscriberPreferenceByLevelRequest + > = z.object({ + includeInactiveChannels: z.boolean().optional(), + parameter: Parameter$outboundSchema, + subscriberId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetSubscriberPreferenceByLevelRequest$ { + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerGetSubscriberPreferenceByLevelRequest$Outbound; +} + +export function subscribersControllerGetSubscriberPreferenceByLevelRequestToJSON( + subscribersControllerGetSubscriberPreferenceByLevelRequest: + SubscribersControllerGetSubscriberPreferenceByLevelRequest, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberPreferenceByLevelRequest$outboundSchema + .parse(subscribersControllerGetSubscriberPreferenceByLevelRequest), + ); +} + +export function subscribersControllerGetSubscriberPreferenceByLevelRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberPreferenceByLevelRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberPreferenceByLevelRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerGetSubscriberPreferenceByLevelRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberPreferenceByLevelResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array( + components.GetSubscriberPreferencesResponseDto$inboundSchema, + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: Array; + }; + +/** @internal */ +export const SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetSubscriberPreferenceByLevelResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array( + components.GetSubscriberPreferencesResponseDto$outboundSchema, + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetSubscriberPreferenceByLevelResponse$ { + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerGetSubscriberPreferenceByLevelResponse$Outbound; +} + +export function subscribersControllerGetSubscriberPreferenceByLevelResponseToJSON( + subscribersControllerGetSubscriberPreferenceByLevelResponse: + SubscribersControllerGetSubscriberPreferenceByLevelResponse, +): string { + return JSON.stringify( + SubscribersControllerGetSubscriberPreferenceByLevelResponse$outboundSchema + .parse(subscribersControllerGetSubscriberPreferenceByLevelResponse), + ); +} + +export function subscribersControllerGetSubscriberPreferenceByLevelResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetSubscriberPreferenceByLevelResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetSubscriberPreferenceByLevelResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerGetSubscriberPreferenceByLevelResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollergetunseencount.ts b/src/models/operations/subscriberscontrollergetunseencount.ts new file mode 100644 index 00000000..00f9dbd6 --- /dev/null +++ b/src/models/operations/subscriberscontrollergetunseencount.ts @@ -0,0 +1,171 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerGetUnseenCountRequest = { + seen: boolean; + subscriberId: string; + limit: number; +}; + +export type SubscribersControllerGetUnseenCountResponse = { + headers: { [k: string]: Array }; + result: components.UnseenCountResponse; +}; + +/** @internal */ +export const SubscribersControllerGetUnseenCountRequest$inboundSchema: + z.ZodType = + z.object({ + seen: z.boolean(), + subscriberId: z.string(), + limit: z.number(), + }); + +/** @internal */ +export type SubscribersControllerGetUnseenCountRequest$Outbound = { + seen: boolean; + subscriberId: string; + limit: number; +}; + +/** @internal */ +export const SubscribersControllerGetUnseenCountRequest$outboundSchema: + z.ZodType< + SubscribersControllerGetUnseenCountRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerGetUnseenCountRequest + > = z.object({ + seen: z.boolean(), + subscriberId: z.string(), + limit: z.number(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetUnseenCountRequest$ { + /** @deprecated use `SubscribersControllerGetUnseenCountRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetUnseenCountRequest$inboundSchema; + /** @deprecated use `SubscribersControllerGetUnseenCountRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetUnseenCountRequest$outboundSchema; + /** @deprecated use `SubscribersControllerGetUnseenCountRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerGetUnseenCountRequest$Outbound; +} + +export function subscribersControllerGetUnseenCountRequestToJSON( + subscribersControllerGetUnseenCountRequest: + SubscribersControllerGetUnseenCountRequest, +): string { + return JSON.stringify( + SubscribersControllerGetUnseenCountRequest$outboundSchema.parse( + subscribersControllerGetUnseenCountRequest, + ), + ); +} + +export function subscribersControllerGetUnseenCountRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetUnseenCountRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetUnseenCountRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetUnseenCountRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerGetUnseenCountResponse$inboundSchema: + z.ZodType< + SubscribersControllerGetUnseenCountResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.UnseenCountResponse$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerGetUnseenCountResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.UnseenCountResponse$Outbound; +}; + +/** @internal */ +export const SubscribersControllerGetUnseenCountResponse$outboundSchema: + z.ZodType< + SubscribersControllerGetUnseenCountResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerGetUnseenCountResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.UnseenCountResponse$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerGetUnseenCountResponse$ { + /** @deprecated use `SubscribersControllerGetUnseenCountResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerGetUnseenCountResponse$inboundSchema; + /** @deprecated use `SubscribersControllerGetUnseenCountResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerGetUnseenCountResponse$outboundSchema; + /** @deprecated use `SubscribersControllerGetUnseenCountResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerGetUnseenCountResponse$Outbound; +} + +export function subscribersControllerGetUnseenCountResponseToJSON( + subscribersControllerGetUnseenCountResponse: + SubscribersControllerGetUnseenCountResponse, +): string { + return JSON.stringify( + SubscribersControllerGetUnseenCountResponse$outboundSchema.parse( + subscribersControllerGetUnseenCountResponse, + ), + ); +} + +export function subscribersControllerGetUnseenCountResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerGetUnseenCountResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerGetUnseenCountResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerGetUnseenCountResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts b/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts new file mode 100644 index 00000000..b59385b5 --- /dev/null +++ b/src/models/operations/subscriberscontrollerlistsubscriberpreferences.ts @@ -0,0 +1,178 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerListSubscriberPreferencesRequest = { + subscriberId: string; + /** + * A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + */ + includeInactiveChannels?: boolean | undefined; +}; + +export type SubscribersControllerListSubscriberPreferencesResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const SubscribersControllerListSubscriberPreferencesRequest$inboundSchema: + z.ZodType< + SubscribersControllerListSubscriberPreferencesRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + includeInactiveChannels: z.boolean().optional(), + }); + +/** @internal */ +export type SubscribersControllerListSubscriberPreferencesRequest$Outbound = { + subscriberId: string; + includeInactiveChannels?: boolean | undefined; +}; + +/** @internal */ +export const SubscribersControllerListSubscriberPreferencesRequest$outboundSchema: + z.ZodType< + SubscribersControllerListSubscriberPreferencesRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerListSubscriberPreferencesRequest + > = z.object({ + subscriberId: z.string(), + includeInactiveChannels: z.boolean().optional(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerListSubscriberPreferencesRequest$ { + /** @deprecated use `SubscribersControllerListSubscriberPreferencesRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerListSubscriberPreferencesRequest$inboundSchema; + /** @deprecated use `SubscribersControllerListSubscriberPreferencesRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerListSubscriberPreferencesRequest$outboundSchema; + /** @deprecated use `SubscribersControllerListSubscriberPreferencesRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerListSubscriberPreferencesRequest$Outbound; +} + +export function subscribersControllerListSubscriberPreferencesRequestToJSON( + subscribersControllerListSubscriberPreferencesRequest: + SubscribersControllerListSubscriberPreferencesRequest, +): string { + return JSON.stringify( + SubscribersControllerListSubscriberPreferencesRequest$outboundSchema.parse( + subscribersControllerListSubscriberPreferencesRequest, + ), + ); +} + +export function subscribersControllerListSubscriberPreferencesRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscriberPreferencesRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscriberPreferencesRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscriberPreferencesRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerListSubscriberPreferencesResponse$inboundSchema: + z.ZodType< + SubscribersControllerListSubscriberPreferencesResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array( + components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerListSubscriberPreferencesResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const SubscribersControllerListSubscriberPreferencesResponse$outboundSchema: + z.ZodType< + SubscribersControllerListSubscriberPreferencesResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerListSubscriberPreferencesResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array( + components.UpdateSubscriberPreferenceResponseDto$outboundSchema, + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerListSubscriberPreferencesResponse$ { + /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerListSubscriberPreferencesResponse$inboundSchema; + /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerListSubscriberPreferencesResponse$outboundSchema; + /** @deprecated use `SubscribersControllerListSubscriberPreferencesResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerListSubscriberPreferencesResponse$Outbound; +} + +export function subscribersControllerListSubscriberPreferencesResponseToJSON( + subscribersControllerListSubscriberPreferencesResponse: + SubscribersControllerListSubscriberPreferencesResponse, +): string { + return JSON.stringify( + SubscribersControllerListSubscriberPreferencesResponse$outboundSchema.parse( + subscribersControllerListSubscriberPreferencesResponse, + ), + ); +} + +export function subscribersControllerListSubscriberPreferencesResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscriberPreferencesResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscriberPreferencesResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerListSubscriberPreferencesResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerlistsubscribers.ts b/src/models/operations/subscriberscontrollerlistsubscribers.ts new file mode 100644 index 00000000..0da6264b --- /dev/null +++ b/src/models/operations/subscriberscontrollerlistsubscribers.ts @@ -0,0 +1,267 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerListSubscribersRequest = { + page?: number | undefined; + limit?: number | undefined; +}; + +export type SubscribersControllerListSubscribersResponseBody = { + /** + * The current page of the paginated response + */ + page: number; + /** + * Does the list have more items to fetch + */ + hasMore: boolean; + /** + * Number of items on each page + */ + pageSize: number; + data: Array; +}; + +export type SubscribersControllerListSubscribersResponse = { + headers: { [k: string]: Array }; + result: SubscribersControllerListSubscribersResponseBody; +}; + +/** @internal */ +export const SubscribersControllerListSubscribersRequest$inboundSchema: + z.ZodType< + SubscribersControllerListSubscribersRequest, + z.ZodTypeDef, + unknown + > = z.object({ + page: z.number().optional(), + limit: z.number().default(10), + }); + +/** @internal */ +export type SubscribersControllerListSubscribersRequest$Outbound = { + page?: number | undefined; + limit: number; +}; + +/** @internal */ +export const SubscribersControllerListSubscribersRequest$outboundSchema: + z.ZodType< + SubscribersControllerListSubscribersRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerListSubscribersRequest + > = z.object({ + page: z.number().optional(), + limit: z.number().default(10), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerListSubscribersRequest$ { + /** @deprecated use `SubscribersControllerListSubscribersRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerListSubscribersRequest$inboundSchema; + /** @deprecated use `SubscribersControllerListSubscribersRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerListSubscribersRequest$outboundSchema; + /** @deprecated use `SubscribersControllerListSubscribersRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerListSubscribersRequest$Outbound; +} + +export function subscribersControllerListSubscribersRequestToJSON( + subscribersControllerListSubscribersRequest: + SubscribersControllerListSubscribersRequest, +): string { + return JSON.stringify( + SubscribersControllerListSubscribersRequest$outboundSchema.parse( + subscribersControllerListSubscribersRequest, + ), + ); +} + +export function subscribersControllerListSubscribersRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscribersRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscribersRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscribersRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerListSubscribersResponseBody$inboundSchema: + z.ZodType< + SubscribersControllerListSubscribersResponseBody, + z.ZodTypeDef, + unknown + > = z.object({ + page: z.number(), + hasMore: z.boolean(), + pageSize: z.number(), + data: z.array(components.SubscriberResponseDto$inboundSchema), + }); + +/** @internal */ +export type SubscribersControllerListSubscribersResponseBody$Outbound = { + page: number; + hasMore: boolean; + pageSize: number; + data: Array; +}; + +/** @internal */ +export const SubscribersControllerListSubscribersResponseBody$outboundSchema: + z.ZodType< + SubscribersControllerListSubscribersResponseBody$Outbound, + z.ZodTypeDef, + SubscribersControllerListSubscribersResponseBody + > = z.object({ + page: z.number(), + hasMore: z.boolean(), + pageSize: z.number(), + data: z.array(components.SubscriberResponseDto$outboundSchema), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerListSubscribersResponseBody$ { + /** @deprecated use `SubscribersControllerListSubscribersResponseBody$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerListSubscribersResponseBody$inboundSchema; + /** @deprecated use `SubscribersControllerListSubscribersResponseBody$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerListSubscribersResponseBody$outboundSchema; + /** @deprecated use `SubscribersControllerListSubscribersResponseBody$Outbound` instead. */ + export type Outbound = + SubscribersControllerListSubscribersResponseBody$Outbound; +} + +export function subscribersControllerListSubscribersResponseBodyToJSON( + subscribersControllerListSubscribersResponseBody: + SubscribersControllerListSubscribersResponseBody, +): string { + return JSON.stringify( + SubscribersControllerListSubscribersResponseBody$outboundSchema.parse( + subscribersControllerListSubscribersResponseBody, + ), + ); +} + +export function subscribersControllerListSubscribersResponseBodyFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscribersResponseBody, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscribersResponseBody$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscribersResponseBody' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerListSubscribersResponse$inboundSchema: + z.ZodType< + SubscribersControllerListSubscribersResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.lazy(() => + SubscribersControllerListSubscribersResponseBody$inboundSchema + ), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerListSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: SubscribersControllerListSubscribersResponseBody$Outbound; +}; + +/** @internal */ +export const SubscribersControllerListSubscribersResponse$outboundSchema: + z.ZodType< + SubscribersControllerListSubscribersResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerListSubscribersResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.lazy(() => + SubscribersControllerListSubscribersResponseBody$outboundSchema + ), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerListSubscribersResponse$ { + /** @deprecated use `SubscribersControllerListSubscribersResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerListSubscribersResponse$inboundSchema; + /** @deprecated use `SubscribersControllerListSubscribersResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerListSubscribersResponse$outboundSchema; + /** @deprecated use `SubscribersControllerListSubscribersResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerListSubscribersResponse$Outbound; +} + +export function subscribersControllerListSubscribersResponseToJSON( + subscribersControllerListSubscribersResponse: + SubscribersControllerListSubscribersResponse, +): string { + return JSON.stringify( + SubscribersControllerListSubscribersResponse$outboundSchema.parse( + subscribersControllerListSubscribersResponse, + ), + ); +} + +export function subscribersControllerListSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerListSubscribersResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerListSubscribersResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerListSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermarkactionasseen.ts b/src/models/operations/subscriberscontrollermarkactionasseen.ts new file mode 100644 index 00000000..92e6a715 --- /dev/null +++ b/src/models/operations/subscriberscontrollermarkactionasseen.ts @@ -0,0 +1,188 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerMarkActionAsSeenRequest = { + messageId: string; + type?: any | undefined; + subscriberId: string; + markMessageActionAsSeenDto: components.MarkMessageActionAsSeenDto; +}; + +export type SubscribersControllerMarkActionAsSeenResponse = { + headers: { [k: string]: Array }; + result: components.MessageResponseDto; +}; + +/** @internal */ +export const SubscribersControllerMarkActionAsSeenRequest$inboundSchema: + z.ZodType< + SubscribersControllerMarkActionAsSeenRequest, + z.ZodTypeDef, + unknown + > = z.object({ + messageId: z.string(), + type: z.any().optional(), + subscriberId: z.string(), + MarkMessageActionAsSeenDto: + components.MarkMessageActionAsSeenDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "MarkMessageActionAsSeenDto": "markMessageActionAsSeenDto", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkActionAsSeenRequest$Outbound = { + messageId: string; + type?: any | undefined; + subscriberId: string; + MarkMessageActionAsSeenDto: components.MarkMessageActionAsSeenDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerMarkActionAsSeenRequest$outboundSchema: + z.ZodType< + SubscribersControllerMarkActionAsSeenRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkActionAsSeenRequest + > = z.object({ + messageId: z.string(), + type: z.any().optional(), + subscriberId: z.string(), + markMessageActionAsSeenDto: + components.MarkMessageActionAsSeenDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + markMessageActionAsSeenDto: "MarkMessageActionAsSeenDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkActionAsSeenRequest$ { + /** @deprecated use `SubscribersControllerMarkActionAsSeenRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkActionAsSeenRequest$inboundSchema; + /** @deprecated use `SubscribersControllerMarkActionAsSeenRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkActionAsSeenRequest$outboundSchema; + /** @deprecated use `SubscribersControllerMarkActionAsSeenRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerMarkActionAsSeenRequest$Outbound; +} + +export function subscribersControllerMarkActionAsSeenRequestToJSON( + subscribersControllerMarkActionAsSeenRequest: + SubscribersControllerMarkActionAsSeenRequest, +): string { + return JSON.stringify( + SubscribersControllerMarkActionAsSeenRequest$outboundSchema.parse( + subscribersControllerMarkActionAsSeenRequest, + ), + ); +} + +export function subscribersControllerMarkActionAsSeenRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkActionAsSeenRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkActionAsSeenRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkActionAsSeenRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerMarkActionAsSeenResponse$inboundSchema: + z.ZodType< + SubscribersControllerMarkActionAsSeenResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.MessageResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkActionAsSeenResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.MessageResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerMarkActionAsSeenResponse$outboundSchema: + z.ZodType< + SubscribersControllerMarkActionAsSeenResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkActionAsSeenResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.MessageResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkActionAsSeenResponse$ { + /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkActionAsSeenResponse$inboundSchema; + /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkActionAsSeenResponse$outboundSchema; + /** @deprecated use `SubscribersControllerMarkActionAsSeenResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerMarkActionAsSeenResponse$Outbound; +} + +export function subscribersControllerMarkActionAsSeenResponseToJSON( + subscribersControllerMarkActionAsSeenResponse: + SubscribersControllerMarkActionAsSeenResponse, +): string { + return JSON.stringify( + SubscribersControllerMarkActionAsSeenResponse$outboundSchema.parse( + subscribersControllerMarkActionAsSeenResponse, + ), + ); +} + +export function subscribersControllerMarkActionAsSeenResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkActionAsSeenResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkActionAsSeenResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkActionAsSeenResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermarkallunreadasread.ts b/src/models/operations/subscriberscontrollermarkallunreadasread.ts new file mode 100644 index 00000000..8207c829 --- /dev/null +++ b/src/models/operations/subscriberscontrollermarkallunreadasread.ts @@ -0,0 +1,182 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerMarkAllUnreadAsReadRequest = { + subscriberId: string; + markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto; +}; + +export type SubscribersControllerMarkAllUnreadAsReadResponse = { + headers: { [k: string]: Array }; + result: number; +}; + +/** @internal */ +export const SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema: + z.ZodType< + SubscribersControllerMarkAllUnreadAsReadRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + MarkAllMessageAsRequestDto: + components.MarkAllMessageAsRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "MarkAllMessageAsRequestDto": "markAllMessageAsRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkAllUnreadAsReadRequest$Outbound = { + subscriberId: string; + MarkAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema: + z.ZodType< + SubscribersControllerMarkAllUnreadAsReadRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkAllUnreadAsReadRequest + > = z.object({ + subscriberId: z.string(), + markAllMessageAsRequestDto: + components.MarkAllMessageAsRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + markAllMessageAsRequestDto: "MarkAllMessageAsRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkAllUnreadAsReadRequest$ { + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema; + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema; + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerMarkAllUnreadAsReadRequest$Outbound; +} + +export function subscribersControllerMarkAllUnreadAsReadRequestToJSON( + subscribersControllerMarkAllUnreadAsReadRequest: + SubscribersControllerMarkAllUnreadAsReadRequest, +): string { + return JSON.stringify( + SubscribersControllerMarkAllUnreadAsReadRequest$outboundSchema.parse( + subscribersControllerMarkAllUnreadAsReadRequest, + ), + ); +} + +export function subscribersControllerMarkAllUnreadAsReadRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkAllUnreadAsReadRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkAllUnreadAsReadRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkAllUnreadAsReadRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema: + z.ZodType< + SubscribersControllerMarkAllUnreadAsReadResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.number(), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkAllUnreadAsReadResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: number; +}; + +/** @internal */ +export const SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema: + z.ZodType< + SubscribersControllerMarkAllUnreadAsReadResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkAllUnreadAsReadResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.number(), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkAllUnreadAsReadResponse$ { + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema; + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema; + /** @deprecated use `SubscribersControllerMarkAllUnreadAsReadResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerMarkAllUnreadAsReadResponse$Outbound; +} + +export function subscribersControllerMarkAllUnreadAsReadResponseToJSON( + subscribersControllerMarkAllUnreadAsReadResponse: + SubscribersControllerMarkAllUnreadAsReadResponse, +): string { + return JSON.stringify( + SubscribersControllerMarkAllUnreadAsReadResponse$outboundSchema.parse( + subscribersControllerMarkAllUnreadAsReadResponse, + ), + ); +} + +export function subscribersControllerMarkAllUnreadAsReadResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkAllUnreadAsReadResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkAllUnreadAsReadResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkAllUnreadAsReadResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermarkmessagesas.ts b/src/models/operations/subscriberscontrollermarkmessagesas.ts new file mode 100644 index 00000000..7b27932e --- /dev/null +++ b/src/models/operations/subscriberscontrollermarkmessagesas.ts @@ -0,0 +1,175 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerMarkMessagesAsRequest = { + subscriberId: string; + messageMarkAsRequestDto: components.MessageMarkAsRequestDto; +}; + +export type SubscribersControllerMarkMessagesAsResponse = { + headers: { [k: string]: Array }; + result: Array; +}; + +/** @internal */ +export const SubscribersControllerMarkMessagesAsRequest$inboundSchema: + z.ZodType = + z.object({ + subscriberId: z.string(), + MessageMarkAsRequestDto: components.MessageMarkAsRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "MessageMarkAsRequestDto": "messageMarkAsRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkMessagesAsRequest$Outbound = { + subscriberId: string; + MessageMarkAsRequestDto: components.MessageMarkAsRequestDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerMarkMessagesAsRequest$outboundSchema: + z.ZodType< + SubscribersControllerMarkMessagesAsRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkMessagesAsRequest + > = z.object({ + subscriberId: z.string(), + messageMarkAsRequestDto: components.MessageMarkAsRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + messageMarkAsRequestDto: "MessageMarkAsRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkMessagesAsRequest$ { + /** @deprecated use `SubscribersControllerMarkMessagesAsRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkMessagesAsRequest$inboundSchema; + /** @deprecated use `SubscribersControllerMarkMessagesAsRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkMessagesAsRequest$outboundSchema; + /** @deprecated use `SubscribersControllerMarkMessagesAsRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerMarkMessagesAsRequest$Outbound; +} + +export function subscribersControllerMarkMessagesAsRequestToJSON( + subscribersControllerMarkMessagesAsRequest: + SubscribersControllerMarkMessagesAsRequest, +): string { + return JSON.stringify( + SubscribersControllerMarkMessagesAsRequest$outboundSchema.parse( + subscribersControllerMarkMessagesAsRequest, + ), + ); +} + +export function subscribersControllerMarkMessagesAsRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkMessagesAsRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkMessagesAsRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkMessagesAsRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerMarkMessagesAsResponse$inboundSchema: + z.ZodType< + SubscribersControllerMarkMessagesAsResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: z.array(components.MessageEntity$inboundSchema), + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerMarkMessagesAsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: Array; +}; + +/** @internal */ +export const SubscribersControllerMarkMessagesAsResponse$outboundSchema: + z.ZodType< + SubscribersControllerMarkMessagesAsResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerMarkMessagesAsResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: z.array(components.MessageEntity$outboundSchema), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerMarkMessagesAsResponse$ { + /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerMarkMessagesAsResponse$inboundSchema; + /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerMarkMessagesAsResponse$outboundSchema; + /** @deprecated use `SubscribersControllerMarkMessagesAsResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerMarkMessagesAsResponse$Outbound; +} + +export function subscribersControllerMarkMessagesAsResponseToJSON( + subscribersControllerMarkMessagesAsResponse: + SubscribersControllerMarkMessagesAsResponse, +): string { + return JSON.stringify( + SubscribersControllerMarkMessagesAsResponse$outboundSchema.parse( + subscribersControllerMarkMessagesAsResponse, + ), + ); +} + +export function subscribersControllerMarkMessagesAsResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerMarkMessagesAsResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerMarkMessagesAsResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerMarkMessagesAsResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts b/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts new file mode 100644 index 00000000..86746e6a --- /dev/null +++ b/src/models/operations/subscriberscontrollermodifysubscriberchannel.ts @@ -0,0 +1,184 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerModifySubscriberChannelRequest = { + subscriberId: string; + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto; +}; + +export type SubscribersControllerModifySubscriberChannelResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerModifySubscriberChannelRequest$inboundSchema: + z.ZodType< + SubscribersControllerModifySubscriberChannelRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + UpdateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "UpdateSubscriberChannelRequestDto": "updateSubscriberChannelRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerModifySubscriberChannelRequest$Outbound = { + subscriberId: string; + UpdateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerModifySubscriberChannelRequest$outboundSchema: + z.ZodType< + SubscribersControllerModifySubscriberChannelRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerModifySubscriberChannelRequest + > = z.object({ + subscriberId: z.string(), + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + updateSubscriberChannelRequestDto: "UpdateSubscriberChannelRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerModifySubscriberChannelRequest$ { + /** @deprecated use `SubscribersControllerModifySubscriberChannelRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerModifySubscriberChannelRequest$inboundSchema; + /** @deprecated use `SubscribersControllerModifySubscriberChannelRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerModifySubscriberChannelRequest$outboundSchema; + /** @deprecated use `SubscribersControllerModifySubscriberChannelRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerModifySubscriberChannelRequest$Outbound; +} + +export function subscribersControllerModifySubscriberChannelRequestToJSON( + subscribersControllerModifySubscriberChannelRequest: + SubscribersControllerModifySubscriberChannelRequest, +): string { + return JSON.stringify( + SubscribersControllerModifySubscriberChannelRequest$outboundSchema.parse( + subscribersControllerModifySubscriberChannelRequest, + ), + ); +} + +export function subscribersControllerModifySubscriberChannelRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerModifySubscriberChannelRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerModifySubscriberChannelRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerModifySubscriberChannelRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerModifySubscriberChannelResponse$inboundSchema: + z.ZodType< + SubscribersControllerModifySubscriberChannelResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerModifySubscriberChannelResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerModifySubscriberChannelResponse$outboundSchema: + z.ZodType< + SubscribersControllerModifySubscriberChannelResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerModifySubscriberChannelResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerModifySubscriberChannelResponse$ { + /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerModifySubscriberChannelResponse$inboundSchema; + /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerModifySubscriberChannelResponse$outboundSchema; + /** @deprecated use `SubscribersControllerModifySubscriberChannelResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerModifySubscriberChannelResponse$Outbound; +} + +export function subscribersControllerModifySubscriberChannelResponseToJSON( + subscribersControllerModifySubscriberChannelResponse: + SubscribersControllerModifySubscriberChannelResponse, +): string { + return JSON.stringify( + SubscribersControllerModifySubscriberChannelResponse$outboundSchema.parse( + subscribersControllerModifySubscriberChannelResponse, + ), + ); +} + +export function subscribersControllerModifySubscriberChannelResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerModifySubscriberChannelResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerModifySubscriberChannelResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerModifySubscriberChannelResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerremovesubscriber.ts b/src/models/operations/subscriberscontrollerremovesubscriber.ts new file mode 100644 index 00000000..13a1fa1c --- /dev/null +++ b/src/models/operations/subscriberscontrollerremovesubscriber.ts @@ -0,0 +1,166 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerRemoveSubscriberRequest = { + subscriberId: string; +}; + +export type SubscribersControllerRemoveSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.DeleteSubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerRemoveSubscriberRequest$inboundSchema: + z.ZodType< + SubscribersControllerRemoveSubscriberRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + }); + +/** @internal */ +export type SubscribersControllerRemoveSubscriberRequest$Outbound = { + subscriberId: string; +}; + +/** @internal */ +export const SubscribersControllerRemoveSubscriberRequest$outboundSchema: + z.ZodType< + SubscribersControllerRemoveSubscriberRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerRemoveSubscriberRequest + > = z.object({ + subscriberId: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerRemoveSubscriberRequest$ { + /** @deprecated use `SubscribersControllerRemoveSubscriberRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerRemoveSubscriberRequest$inboundSchema; + /** @deprecated use `SubscribersControllerRemoveSubscriberRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerRemoveSubscriberRequest$outboundSchema; + /** @deprecated use `SubscribersControllerRemoveSubscriberRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerRemoveSubscriberRequest$Outbound; +} + +export function subscribersControllerRemoveSubscriberRequestToJSON( + subscribersControllerRemoveSubscriberRequest: + SubscribersControllerRemoveSubscriberRequest, +): string { + return JSON.stringify( + SubscribersControllerRemoveSubscriberRequest$outboundSchema.parse( + subscribersControllerRemoveSubscriberRequest, + ), + ); +} + +export function subscribersControllerRemoveSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerRemoveSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerRemoveSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerRemoveSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerRemoveSubscriberResponse$inboundSchema: + z.ZodType< + SubscribersControllerRemoveSubscriberResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.DeleteSubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerRemoveSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.DeleteSubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerRemoveSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerRemoveSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerRemoveSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.DeleteSubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerRemoveSubscriberResponse$ { + /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerRemoveSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerRemoveSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerRemoveSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerRemoveSubscriberResponse$Outbound; +} + +export function subscribersControllerRemoveSubscriberResponseToJSON( + subscribersControllerRemoveSubscriberResponse: + SubscribersControllerRemoveSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerRemoveSubscriberResponse$outboundSchema.parse( + subscribersControllerRemoveSubscriberResponse, + ), + ); +} + +export function subscribersControllerRemoveSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerRemoveSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerRemoveSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerRemoveSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriber.ts b/src/models/operations/subscriberscontrollerupdatesubscriber.ts new file mode 100644 index 00000000..204dc193 --- /dev/null +++ b/src/models/operations/subscriberscontrollerupdatesubscriber.ts @@ -0,0 +1,180 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerUpdateSubscriberRequest = { + subscriberId: string; + updateSubscriberRequestDto: components.UpdateSubscriberRequestDto; +}; + +export type SubscribersControllerUpdateSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberRequest$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + UpdateSubscriberRequestDto: + components.UpdateSubscriberRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "UpdateSubscriberRequestDto": "updateSubscriberRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberRequest$Outbound = { + subscriberId: string; + UpdateSubscriberRequestDto: components.UpdateSubscriberRequestDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberRequest$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberRequest + > = z.object({ + subscriberId: z.string(), + updateSubscriberRequestDto: + components.UpdateSubscriberRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + updateSubscriberRequestDto: "UpdateSubscriberRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberRequest$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberRequest$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberRequest$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberRequest$Outbound` instead. */ + export type Outbound = SubscribersControllerUpdateSubscriberRequest$Outbound; +} + +export function subscribersControllerUpdateSubscriberRequestToJSON( + subscribersControllerUpdateSubscriberRequest: + SubscribersControllerUpdateSubscriberRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberResponse$Outbound` instead. */ + export type Outbound = SubscribersControllerUpdateSubscriberResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberResponseToJSON( + subscribersControllerUpdateSubscriberResponse: + SubscribersControllerUpdateSubscriberResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberResponse$outboundSchema.parse( + subscribersControllerUpdateSubscriberResponse, + ), + ); +} + +export function subscribersControllerUpdateSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts b/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts new file mode 100644 index 00000000..df9e40d7 --- /dev/null +++ b/src/models/operations/subscriberscontrollerupdatesubscriberchannel.ts @@ -0,0 +1,184 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerUpdateSubscriberChannelRequest = { + subscriberId: string; + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto; +}; + +export type SubscribersControllerUpdateSubscriberChannelResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberChannelRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + UpdateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "UpdateSubscriberChannelRequestDto": "updateSubscriberChannelRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberChannelRequest$Outbound = { + subscriberId: string; + UpdateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberChannelRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberChannelRequest + > = z.object({ + subscriberId: z.string(), + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + updateSubscriberChannelRequestDto: "UpdateSubscriberChannelRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberChannelRequest$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberChannelRequest$Outbound; +} + +export function subscribersControllerUpdateSubscriberChannelRequestToJSON( + subscribersControllerUpdateSubscriberChannelRequest: + SubscribersControllerUpdateSubscriberChannelRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberChannelRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberChannelRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberChannelRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberChannelRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberChannelRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberChannelRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberChannelResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberChannelResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberChannelResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberChannelResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberChannelResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberChannelResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberChannelResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberChannelResponseToJSON( + subscribersControllerUpdateSubscriberChannelResponse: + SubscribersControllerUpdateSubscriberChannelResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberChannelResponse$outboundSchema.parse( + subscribersControllerUpdateSubscriberChannelResponse, + ), + ); +} + +export function subscribersControllerUpdateSubscriberChannelResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberChannelResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberChannelResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SubscribersControllerUpdateSubscriberChannelResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts b/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts new file mode 100644 index 00000000..7499d408 --- /dev/null +++ b/src/models/operations/subscriberscontrollerupdatesubscriberglobalpreferences.ts @@ -0,0 +1,184 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerUpdateSubscriberGlobalPreferencesRequest = { + subscriberId: string; + updateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto; +}; + +export type SubscribersControllerUpdateSubscriberGlobalPreferencesResponse = { + headers: { [k: string]: Array }; + result: components.UpdateSubscriberPreferenceResponseDto; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + UpdateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "UpdateSubscriberGlobalPreferencesRequestDto": + "updateSubscriberGlobalPreferencesRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound = + { + subscriberId: string; + UpdateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto$Outbound; + }; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest + > = z.object({ + subscriberId: z.string(), + updateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + updateSubscriberGlobalPreferencesRequestDto: + "UpdateSubscriberGlobalPreferencesRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$Outbound; +} + +export function subscribersControllerUpdateSubscriberGlobalPreferencesRequestToJSON( + subscribersControllerUpdateSubscriberGlobalPreferencesRequest: + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$outboundSchema + .parse(subscribersControllerUpdateSubscriberGlobalPreferencesRequest), + ); +} + +export function subscribersControllerUpdateSubscriberGlobalPreferencesRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberGlobalPreferencesRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberGlobalPreferencesRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound = + { + Headers: { [k: string]: Array }; + Result: components.UpdateSubscriberPreferenceResponseDto$Outbound; + }; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.UpdateSubscriberPreferenceResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberGlobalPreferencesResponseToJSON( + subscribersControllerUpdateSubscriberGlobalPreferencesResponse: + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$outboundSchema + .parse(subscribersControllerUpdateSubscriberGlobalPreferencesResponse), + ); +} + +export function subscribersControllerUpdateSubscriberGlobalPreferencesResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberGlobalPreferencesResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberGlobalPreferencesResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts b/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts new file mode 100644 index 00000000..fcd33653 --- /dev/null +++ b/src/models/operations/subscriberscontrollerupdatesubscriberonlineflag.ts @@ -0,0 +1,183 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerUpdateSubscriberOnlineFlagRequest = { + subscriberId: string; + updateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto; +}; + +export type SubscribersControllerUpdateSubscriberOnlineFlagResponse = { + headers: { [k: string]: Array }; + result: components.SubscriberResponseDto; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberOnlineFlagRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + UpdateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "UpdateSubscriberOnlineFlagRequestDto": + "updateSubscriberOnlineFlagRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound = { + subscriberId: string; + UpdateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberOnlineFlagRequest + > = z.object({ + subscriberId: z.string(), + updateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + updateSubscriberOnlineFlagRequestDto: + "UpdateSubscriberOnlineFlagRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberOnlineFlagRequest$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberOnlineFlagRequest$Outbound; +} + +export function subscribersControllerUpdateSubscriberOnlineFlagRequestToJSON( + subscribersControllerUpdateSubscriberOnlineFlagRequest: + SubscribersControllerUpdateSubscriberOnlineFlagRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberOnlineFlagRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberOnlineFlagRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberOnlineFlagRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberOnlineFlagRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberOnlineFlagRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberOnlineFlagRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberOnlineFlagResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.SubscriberResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.SubscriberResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberOnlineFlagResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.SubscriberResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberOnlineFlagResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberOnlineFlagResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberOnlineFlagResponseToJSON( + subscribersControllerUpdateSubscriberOnlineFlagResponse: + SubscribersControllerUpdateSubscriberOnlineFlagResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberOnlineFlagResponse$outboundSchema + .parse(subscribersControllerUpdateSubscriberOnlineFlagResponse), + ); +} + +export function subscribersControllerUpdateSubscriberOnlineFlagResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberOnlineFlagResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberOnlineFlagResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberOnlineFlagResponse' from JSON`, + ); +} diff --git a/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts b/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts new file mode 100644 index 00000000..8e1c86cf --- /dev/null +++ b/src/models/operations/subscriberscontrollerupdatesubscriberpreference.ts @@ -0,0 +1,187 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type SubscribersControllerUpdateSubscriberPreferenceRequest = { + subscriberId: string; + parameter: string; + updateSubscriberPreferenceRequestDto: + components.UpdateSubscriberPreferenceRequestDto; +}; + +export type SubscribersControllerUpdateSubscriberPreferenceResponse = { + headers: { [k: string]: Array }; + result: components.UpdateSubscriberPreferenceResponseDto; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberPreferenceRequest, + z.ZodTypeDef, + unknown + > = z.object({ + subscriberId: z.string(), + parameter: z.string(), + UpdateSubscriberPreferenceRequestDto: + components.UpdateSubscriberPreferenceRequestDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "UpdateSubscriberPreferenceRequestDto": + "updateSubscriberPreferenceRequestDto", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound = { + subscriberId: string; + parameter: string; + UpdateSubscriberPreferenceRequestDto: + components.UpdateSubscriberPreferenceRequestDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberPreferenceRequest + > = z.object({ + subscriberId: z.string(), + parameter: z.string(), + updateSubscriberPreferenceRequestDto: + components.UpdateSubscriberPreferenceRequestDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + updateSubscriberPreferenceRequestDto: + "UpdateSubscriberPreferenceRequestDto", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberPreferenceRequest$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberPreferenceRequest$Outbound; +} + +export function subscribersControllerUpdateSubscriberPreferenceRequestToJSON( + subscribersControllerUpdateSubscriberPreferenceRequest: + SubscribersControllerUpdateSubscriberPreferenceRequest, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberPreferenceRequest$outboundSchema.parse( + subscribersControllerUpdateSubscriberPreferenceRequest, + ), + ); +} + +export function subscribersControllerUpdateSubscriberPreferenceRequestFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberPreferenceRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberPreferenceRequest$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberPreferenceRequest' from JSON`, + ); +} + +/** @internal */ +export const SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberPreferenceResponse, + z.ZodTypeDef, + unknown + > = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.UpdateSubscriberPreferenceResponseDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.UpdateSubscriberPreferenceResponseDto$Outbound; +}; + +/** @internal */ +export const SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema: + z.ZodType< + SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound, + z.ZodTypeDef, + SubscribersControllerUpdateSubscriberPreferenceResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.UpdateSubscriberPreferenceResponseDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace SubscribersControllerUpdateSubscriberPreferenceResponse$ { + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema` instead. */ + export const inboundSchema = + SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema` instead. */ + export const outboundSchema = + SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema; + /** @deprecated use `SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound` instead. */ + export type Outbound = + SubscribersControllerUpdateSubscriberPreferenceResponse$Outbound; +} + +export function subscribersControllerUpdateSubscriberPreferenceResponseToJSON( + subscribersControllerUpdateSubscriberPreferenceResponse: + SubscribersControllerUpdateSubscriberPreferenceResponse, +): string { + return JSON.stringify( + SubscribersControllerUpdateSubscriberPreferenceResponse$outboundSchema + .parse(subscribersControllerUpdateSubscriberPreferenceResponse), + ); +} + +export function subscribersControllerUpdateSubscriberPreferenceResponseFromJSON( + jsonString: string, +): SafeParseResult< + SubscribersControllerUpdateSubscriberPreferenceResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SubscribersControllerUpdateSubscriberPreferenceResponse$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SubscribersControllerUpdateSubscriberPreferenceResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrolleraddsubscribers.ts b/src/models/operations/topicscontrolleraddsubscribers.ts new file mode 100644 index 00000000..080fc60a --- /dev/null +++ b/src/models/operations/topicscontrolleraddsubscribers.ts @@ -0,0 +1,160 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerAddSubscribersRequest = { + /** + * The topic key + */ + topicKey: string; + addSubscribersRequestDto: components.AddSubscribersRequestDto; +}; + +export type TopicsControllerAddSubscribersResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerAddSubscribersRequest$inboundSchema: z.ZodType< + TopicsControllerAddSubscribersRequest, + z.ZodTypeDef, + unknown +> = z.object({ + topicKey: z.string(), + AddSubscribersRequestDto: components.AddSubscribersRequestDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "AddSubscribersRequestDto": "addSubscribersRequestDto", + }); +}); + +/** @internal */ +export type TopicsControllerAddSubscribersRequest$Outbound = { + topicKey: string; + AddSubscribersRequestDto: components.AddSubscribersRequestDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerAddSubscribersRequest$outboundSchema: z.ZodType< + TopicsControllerAddSubscribersRequest$Outbound, + z.ZodTypeDef, + TopicsControllerAddSubscribersRequest +> = z.object({ + topicKey: z.string(), + addSubscribersRequestDto: components.AddSubscribersRequestDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + addSubscribersRequestDto: "AddSubscribersRequestDto", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerAddSubscribersRequest$ { + /** @deprecated use `TopicsControllerAddSubscribersRequest$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerAddSubscribersRequest$inboundSchema; + /** @deprecated use `TopicsControllerAddSubscribersRequest$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerAddSubscribersRequest$outboundSchema; + /** @deprecated use `TopicsControllerAddSubscribersRequest$Outbound` instead. */ + export type Outbound = TopicsControllerAddSubscribersRequest$Outbound; +} + +export function topicsControllerAddSubscribersRequestToJSON( + topicsControllerAddSubscribersRequest: TopicsControllerAddSubscribersRequest, +): string { + return JSON.stringify( + TopicsControllerAddSubscribersRequest$outboundSchema.parse( + topicsControllerAddSubscribersRequest, + ), + ); +} + +export function topicsControllerAddSubscribersRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerAddSubscribersRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerAddSubscribersRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerAddSubscribersResponse$inboundSchema: z.ZodType< + TopicsControllerAddSubscribersResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); +}); + +/** @internal */ +export type TopicsControllerAddSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerAddSubscribersResponse$outboundSchema: z.ZodType< + TopicsControllerAddSubscribersResponse$Outbound, + z.ZodTypeDef, + TopicsControllerAddSubscribersResponse +> = z.object({ + headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + headers: "Headers", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerAddSubscribersResponse$ { + /** @deprecated use `TopicsControllerAddSubscribersResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerAddSubscribersResponse$inboundSchema; + /** @deprecated use `TopicsControllerAddSubscribersResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerAddSubscribersResponse$outboundSchema; + /** @deprecated use `TopicsControllerAddSubscribersResponse$Outbound` instead. */ + export type Outbound = TopicsControllerAddSubscribersResponse$Outbound; +} + +export function topicsControllerAddSubscribersResponseToJSON( + topicsControllerAddSubscribersResponse: + TopicsControllerAddSubscribersResponse, +): string { + return JSON.stringify( + TopicsControllerAddSubscribersResponse$outboundSchema.parse( + topicsControllerAddSubscribersResponse, + ), + ); +} + +export function topicsControllerAddSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerAddSubscribersResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerAddSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollercreatetopic.ts b/src/models/operations/topicscontrollercreatetopic.ts new file mode 100644 index 00000000..e26599ab --- /dev/null +++ b/src/models/operations/topicscontrollercreatetopic.ts @@ -0,0 +1,87 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerCreateTopicResponse = { + headers: { [k: string]: Array }; + result: components.CreateTopicResponseDto; +}; + +/** @internal */ +export const TopicsControllerCreateTopicResponse$inboundSchema: z.ZodType< + TopicsControllerCreateTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.CreateTopicResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerCreateTopicResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.CreateTopicResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerCreateTopicResponse$outboundSchema: z.ZodType< + TopicsControllerCreateTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerCreateTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.CreateTopicResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerCreateTopicResponse$ { + /** @deprecated use `TopicsControllerCreateTopicResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerCreateTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerCreateTopicResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerCreateTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerCreateTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerCreateTopicResponse$Outbound; +} + +export function topicsControllerCreateTopicResponseToJSON( + topicsControllerCreateTopicResponse: TopicsControllerCreateTopicResponse, +): string { + return JSON.stringify( + TopicsControllerCreateTopicResponse$outboundSchema.parse( + topicsControllerCreateTopicResponse, + ), + ); +} + +export function topicsControllerCreateTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerCreateTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerCreateTopicResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerdeletetopic.ts b/src/models/operations/topicscontrollerdeletetopic.ts new file mode 100644 index 00000000..7e2f2e0a --- /dev/null +++ b/src/models/operations/topicscontrollerdeletetopic.ts @@ -0,0 +1,145 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerDeleteTopicRequest = { + /** + * The topic key + */ + topicKey: string; +}; + +export type TopicsControllerDeleteTopicResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerDeleteTopicRequest$inboundSchema: z.ZodType< + TopicsControllerDeleteTopicRequest, + z.ZodTypeDef, + unknown +> = z.object({ + topicKey: z.string(), +}); + +/** @internal */ +export type TopicsControllerDeleteTopicRequest$Outbound = { + topicKey: string; +}; + +/** @internal */ +export const TopicsControllerDeleteTopicRequest$outboundSchema: z.ZodType< + TopicsControllerDeleteTopicRequest$Outbound, + z.ZodTypeDef, + TopicsControllerDeleteTopicRequest +> = z.object({ + topicKey: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerDeleteTopicRequest$ { + /** @deprecated use `TopicsControllerDeleteTopicRequest$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerDeleteTopicRequest$inboundSchema; + /** @deprecated use `TopicsControllerDeleteTopicRequest$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerDeleteTopicRequest$outboundSchema; + /** @deprecated use `TopicsControllerDeleteTopicRequest$Outbound` instead. */ + export type Outbound = TopicsControllerDeleteTopicRequest$Outbound; +} + +export function topicsControllerDeleteTopicRequestToJSON( + topicsControllerDeleteTopicRequest: TopicsControllerDeleteTopicRequest, +): string { + return JSON.stringify( + TopicsControllerDeleteTopicRequest$outboundSchema.parse( + topicsControllerDeleteTopicRequest, + ), + ); +} + +export function topicsControllerDeleteTopicRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerDeleteTopicRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerDeleteTopicRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerDeleteTopicResponse$inboundSchema: z.ZodType< + TopicsControllerDeleteTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); +}); + +/** @internal */ +export type TopicsControllerDeleteTopicResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerDeleteTopicResponse$outboundSchema: z.ZodType< + TopicsControllerDeleteTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerDeleteTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + headers: "Headers", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerDeleteTopicResponse$ { + /** @deprecated use `TopicsControllerDeleteTopicResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerDeleteTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerDeleteTopicResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerDeleteTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerDeleteTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerDeleteTopicResponse$Outbound; +} + +export function topicsControllerDeleteTopicResponseToJSON( + topicsControllerDeleteTopicResponse: TopicsControllerDeleteTopicResponse, +): string { + return JSON.stringify( + TopicsControllerDeleteTopicResponse$outboundSchema.parse( + topicsControllerDeleteTopicResponse, + ), + ); +} + +export function topicsControllerDeleteTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerDeleteTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerDeleteTopicResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollergettopic.ts b/src/models/operations/topicscontrollergettopic.ts new file mode 100644 index 00000000..017b4120 --- /dev/null +++ b/src/models/operations/topicscontrollergettopic.ts @@ -0,0 +1,147 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerGetTopicRequest = { + /** + * The topic key + */ + topicKey: string; +}; + +export type TopicsControllerGetTopicResponse = { + headers: { [k: string]: Array }; + result: components.GetTopicResponseDto; +}; + +/** @internal */ +export const TopicsControllerGetTopicRequest$inboundSchema: z.ZodType< + TopicsControllerGetTopicRequest, + z.ZodTypeDef, + unknown +> = z.object({ + topicKey: z.string(), +}); + +/** @internal */ +export type TopicsControllerGetTopicRequest$Outbound = { + topicKey: string; +}; + +/** @internal */ +export const TopicsControllerGetTopicRequest$outboundSchema: z.ZodType< + TopicsControllerGetTopicRequest$Outbound, + z.ZodTypeDef, + TopicsControllerGetTopicRequest +> = z.object({ + topicKey: z.string(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerGetTopicRequest$ { + /** @deprecated use `TopicsControllerGetTopicRequest$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerGetTopicRequest$inboundSchema; + /** @deprecated use `TopicsControllerGetTopicRequest$outboundSchema` instead. */ + export const outboundSchema = TopicsControllerGetTopicRequest$outboundSchema; + /** @deprecated use `TopicsControllerGetTopicRequest$Outbound` instead. */ + export type Outbound = TopicsControllerGetTopicRequest$Outbound; +} + +export function topicsControllerGetTopicRequestToJSON( + topicsControllerGetTopicRequest: TopicsControllerGetTopicRequest, +): string { + return JSON.stringify( + TopicsControllerGetTopicRequest$outboundSchema.parse( + topicsControllerGetTopicRequest, + ), + ); +} + +export function topicsControllerGetTopicRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicsControllerGetTopicRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerGetTopicRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerGetTopicResponse$inboundSchema: z.ZodType< + TopicsControllerGetTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.GetTopicResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerGetTopicResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.GetTopicResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerGetTopicResponse$outboundSchema: z.ZodType< + TopicsControllerGetTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerGetTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.GetTopicResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerGetTopicResponse$ { + /** @deprecated use `TopicsControllerGetTopicResponse$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerGetTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerGetTopicResponse$outboundSchema` instead. */ + export const outboundSchema = TopicsControllerGetTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerGetTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerGetTopicResponse$Outbound; +} + +export function topicsControllerGetTopicResponseToJSON( + topicsControllerGetTopicResponse: TopicsControllerGetTopicResponse, +): string { + return JSON.stringify( + TopicsControllerGetTopicResponse$outboundSchema.parse( + topicsControllerGetTopicResponse, + ), + ); +} + +export function topicsControllerGetTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicsControllerGetTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerGetTopicResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollergettopicsubscriber.ts b/src/models/operations/topicscontrollergettopicsubscriber.ts new file mode 100644 index 00000000..d9fd3fac --- /dev/null +++ b/src/models/operations/topicscontrollergettopicsubscriber.ts @@ -0,0 +1,172 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerGetTopicSubscriberRequest = { + /** + * The external subscriber id + */ + externalSubscriberId: string; + /** + * The topic key + */ + topicKey: string; +}; + +export type TopicsControllerGetTopicSubscriberResponse = { + headers: { [k: string]: Array }; + result: components.TopicSubscriberDto; +}; + +/** @internal */ +export const TopicsControllerGetTopicSubscriberRequest$inboundSchema: z.ZodType< + TopicsControllerGetTopicSubscriberRequest, + z.ZodTypeDef, + unknown +> = z.object({ + externalSubscriberId: z.string(), + topicKey: z.string(), +}); + +/** @internal */ +export type TopicsControllerGetTopicSubscriberRequest$Outbound = { + externalSubscriberId: string; + topicKey: string; +}; + +/** @internal */ +export const TopicsControllerGetTopicSubscriberRequest$outboundSchema: + z.ZodType< + TopicsControllerGetTopicSubscriberRequest$Outbound, + z.ZodTypeDef, + TopicsControllerGetTopicSubscriberRequest + > = z.object({ + externalSubscriberId: z.string(), + topicKey: z.string(), + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerGetTopicSubscriberRequest$ { + /** @deprecated use `TopicsControllerGetTopicSubscriberRequest$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerGetTopicSubscriberRequest$inboundSchema; + /** @deprecated use `TopicsControllerGetTopicSubscriberRequest$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerGetTopicSubscriberRequest$outboundSchema; + /** @deprecated use `TopicsControllerGetTopicSubscriberRequest$Outbound` instead. */ + export type Outbound = TopicsControllerGetTopicSubscriberRequest$Outbound; +} + +export function topicsControllerGetTopicSubscriberRequestToJSON( + topicsControllerGetTopicSubscriberRequest: + TopicsControllerGetTopicSubscriberRequest, +): string { + return JSON.stringify( + TopicsControllerGetTopicSubscriberRequest$outboundSchema.parse( + topicsControllerGetTopicSubscriberRequest, + ), + ); +} + +export function topicsControllerGetTopicSubscriberRequestFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerGetTopicSubscriberRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerGetTopicSubscriberRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerGetTopicSubscriberRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerGetTopicSubscriberResponse$inboundSchema: + z.ZodType = + z.object({ + Headers: z.record(z.array(z.string())), + Result: components.TopicSubscriberDto$inboundSchema, + }).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); + }); + +/** @internal */ +export type TopicsControllerGetTopicSubscriberResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.TopicSubscriberDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerGetTopicSubscriberResponse$outboundSchema: + z.ZodType< + TopicsControllerGetTopicSubscriberResponse$Outbound, + z.ZodTypeDef, + TopicsControllerGetTopicSubscriberResponse + > = z.object({ + headers: z.record(z.array(z.string())), + result: components.TopicSubscriberDto$outboundSchema, + }).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerGetTopicSubscriberResponse$ { + /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerGetTopicSubscriberResponse$inboundSchema; + /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerGetTopicSubscriberResponse$outboundSchema; + /** @deprecated use `TopicsControllerGetTopicSubscriberResponse$Outbound` instead. */ + export type Outbound = TopicsControllerGetTopicSubscriberResponse$Outbound; +} + +export function topicsControllerGetTopicSubscriberResponseToJSON( + topicsControllerGetTopicSubscriberResponse: + TopicsControllerGetTopicSubscriberResponse, +): string { + return JSON.stringify( + TopicsControllerGetTopicSubscriberResponse$outboundSchema.parse( + topicsControllerGetTopicSubscriberResponse, + ), + ); +} + +export function topicsControllerGetTopicSubscriberResponseFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerGetTopicSubscriberResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerGetTopicSubscriberResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerGetTopicSubscriberResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerlisttopics.ts b/src/models/operations/topicscontrollerlisttopics.ts new file mode 100644 index 00000000..f98fe53f --- /dev/null +++ b/src/models/operations/topicscontrollerlisttopics.ts @@ -0,0 +1,164 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerListTopicsRequest = { + /** + * Number of page for the pagination + */ + page?: number | undefined; + /** + * Size of page for the pagination + */ + pageSize?: number | undefined; + /** + * Topic key + */ + key?: string | undefined; +}; + +export type TopicsControllerListTopicsResponse = { + headers: { [k: string]: Array }; + result: components.FilterTopicsResponseDto; +}; + +/** @internal */ +export const TopicsControllerListTopicsRequest$inboundSchema: z.ZodType< + TopicsControllerListTopicsRequest, + z.ZodTypeDef, + unknown +> = z.object({ + page: z.number().default(0), + pageSize: z.number().default(10), + key: z.string().optional(), +}); + +/** @internal */ +export type TopicsControllerListTopicsRequest$Outbound = { + page: number; + pageSize: number; + key?: string | undefined; +}; + +/** @internal */ +export const TopicsControllerListTopicsRequest$outboundSchema: z.ZodType< + TopicsControllerListTopicsRequest$Outbound, + z.ZodTypeDef, + TopicsControllerListTopicsRequest +> = z.object({ + page: z.number().default(0), + pageSize: z.number().default(10), + key: z.string().optional(), +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerListTopicsRequest$ { + /** @deprecated use `TopicsControllerListTopicsRequest$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerListTopicsRequest$inboundSchema; + /** @deprecated use `TopicsControllerListTopicsRequest$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerListTopicsRequest$outboundSchema; + /** @deprecated use `TopicsControllerListTopicsRequest$Outbound` instead. */ + export type Outbound = TopicsControllerListTopicsRequest$Outbound; +} + +export function topicsControllerListTopicsRequestToJSON( + topicsControllerListTopicsRequest: TopicsControllerListTopicsRequest, +): string { + return JSON.stringify( + TopicsControllerListTopicsRequest$outboundSchema.parse( + topicsControllerListTopicsRequest, + ), + ); +} + +export function topicsControllerListTopicsRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => TopicsControllerListTopicsRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerListTopicsRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerListTopicsResponse$inboundSchema: z.ZodType< + TopicsControllerListTopicsResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.FilterTopicsResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerListTopicsResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.FilterTopicsResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerListTopicsResponse$outboundSchema: z.ZodType< + TopicsControllerListTopicsResponse$Outbound, + z.ZodTypeDef, + TopicsControllerListTopicsResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.FilterTopicsResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerListTopicsResponse$ { + /** @deprecated use `TopicsControllerListTopicsResponse$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerListTopicsResponse$inboundSchema; + /** @deprecated use `TopicsControllerListTopicsResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerListTopicsResponse$outboundSchema; + /** @deprecated use `TopicsControllerListTopicsResponse$Outbound` instead. */ + export type Outbound = TopicsControllerListTopicsResponse$Outbound; +} + +export function topicsControllerListTopicsResponseToJSON( + topicsControllerListTopicsResponse: TopicsControllerListTopicsResponse, +): string { + return JSON.stringify( + TopicsControllerListTopicsResponse$outboundSchema.parse( + topicsControllerListTopicsResponse, + ), + ); +} + +export function topicsControllerListTopicsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerListTopicsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerListTopicsResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerremovesubscribers.ts b/src/models/operations/topicscontrollerremovesubscribers.ts new file mode 100644 index 00000000..8d84aadf --- /dev/null +++ b/src/models/operations/topicscontrollerremovesubscribers.ts @@ -0,0 +1,174 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerRemoveSubscribersRequest = { + /** + * The topic key + */ + topicKey: string; + removeSubscribersRequestDto: components.RemoveSubscribersRequestDto; +}; + +export type TopicsControllerRemoveSubscribersResponse = { + headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerRemoveSubscribersRequest$inboundSchema: z.ZodType< + TopicsControllerRemoveSubscribersRequest, + z.ZodTypeDef, + unknown +> = z.object({ + topicKey: z.string(), + RemoveSubscribersRequestDto: + components.RemoveSubscribersRequestDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "RemoveSubscribersRequestDto": "removeSubscribersRequestDto", + }); +}); + +/** @internal */ +export type TopicsControllerRemoveSubscribersRequest$Outbound = { + topicKey: string; + RemoveSubscribersRequestDto: components.RemoveSubscribersRequestDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerRemoveSubscribersRequest$outboundSchema: z.ZodType< + TopicsControllerRemoveSubscribersRequest$Outbound, + z.ZodTypeDef, + TopicsControllerRemoveSubscribersRequest +> = z.object({ + topicKey: z.string(), + removeSubscribersRequestDto: + components.RemoveSubscribersRequestDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + removeSubscribersRequestDto: "RemoveSubscribersRequestDto", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerRemoveSubscribersRequest$ { + /** @deprecated use `TopicsControllerRemoveSubscribersRequest$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerRemoveSubscribersRequest$inboundSchema; + /** @deprecated use `TopicsControllerRemoveSubscribersRequest$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerRemoveSubscribersRequest$outboundSchema; + /** @deprecated use `TopicsControllerRemoveSubscribersRequest$Outbound` instead. */ + export type Outbound = TopicsControllerRemoveSubscribersRequest$Outbound; +} + +export function topicsControllerRemoveSubscribersRequestToJSON( + topicsControllerRemoveSubscribersRequest: + TopicsControllerRemoveSubscribersRequest, +): string { + return JSON.stringify( + TopicsControllerRemoveSubscribersRequest$outboundSchema.parse( + topicsControllerRemoveSubscribersRequest, + ), + ); +} + +export function topicsControllerRemoveSubscribersRequestFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerRemoveSubscribersRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerRemoveSubscribersRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerRemoveSubscribersRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerRemoveSubscribersResponse$inboundSchema: z.ZodType< + TopicsControllerRemoveSubscribersResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + }); +}); + +/** @internal */ +export type TopicsControllerRemoveSubscribersResponse$Outbound = { + Headers: { [k: string]: Array }; +}; + +/** @internal */ +export const TopicsControllerRemoveSubscribersResponse$outboundSchema: + z.ZodType< + TopicsControllerRemoveSubscribersResponse$Outbound, + z.ZodTypeDef, + TopicsControllerRemoveSubscribersResponse + > = z.object({ + headers: z.record(z.array(z.string())), + }).transform((v) => { + return remap$(v, { + headers: "Headers", + }); + }); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerRemoveSubscribersResponse$ { + /** @deprecated use `TopicsControllerRemoveSubscribersResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerRemoveSubscribersResponse$inboundSchema; + /** @deprecated use `TopicsControllerRemoveSubscribersResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerRemoveSubscribersResponse$outboundSchema; + /** @deprecated use `TopicsControllerRemoveSubscribersResponse$Outbound` instead. */ + export type Outbound = TopicsControllerRemoveSubscribersResponse$Outbound; +} + +export function topicsControllerRemoveSubscribersResponseToJSON( + topicsControllerRemoveSubscribersResponse: + TopicsControllerRemoveSubscribersResponse, +): string { + return JSON.stringify( + TopicsControllerRemoveSubscribersResponse$outboundSchema.parse( + topicsControllerRemoveSubscribersResponse, + ), + ); +} + +export function topicsControllerRemoveSubscribersResponseFromJSON( + jsonString: string, +): SafeParseResult< + TopicsControllerRemoveSubscribersResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + TopicsControllerRemoveSubscribersResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'TopicsControllerRemoveSubscribersResponse' from JSON`, + ); +} diff --git a/src/models/operations/topicscontrollerrenametopic.ts b/src/models/operations/topicscontrollerrenametopic.ts new file mode 100644 index 00000000..3f033892 --- /dev/null +++ b/src/models/operations/topicscontrollerrenametopic.ts @@ -0,0 +1,164 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type TopicsControllerRenameTopicRequest = { + /** + * The topic key + */ + topicKey: string; + renameTopicRequestDto: components.RenameTopicRequestDto; +}; + +export type TopicsControllerRenameTopicResponse = { + headers: { [k: string]: Array }; + result: components.RenameTopicResponseDto; +}; + +/** @internal */ +export const TopicsControllerRenameTopicRequest$inboundSchema: z.ZodType< + TopicsControllerRenameTopicRequest, + z.ZodTypeDef, + unknown +> = z.object({ + topicKey: z.string(), + RenameTopicRequestDto: components.RenameTopicRequestDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "RenameTopicRequestDto": "renameTopicRequestDto", + }); +}); + +/** @internal */ +export type TopicsControllerRenameTopicRequest$Outbound = { + topicKey: string; + RenameTopicRequestDto: components.RenameTopicRequestDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerRenameTopicRequest$outboundSchema: z.ZodType< + TopicsControllerRenameTopicRequest$Outbound, + z.ZodTypeDef, + TopicsControllerRenameTopicRequest +> = z.object({ + topicKey: z.string(), + renameTopicRequestDto: components.RenameTopicRequestDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + renameTopicRequestDto: "RenameTopicRequestDto", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerRenameTopicRequest$ { + /** @deprecated use `TopicsControllerRenameTopicRequest$inboundSchema` instead. */ + export const inboundSchema = TopicsControllerRenameTopicRequest$inboundSchema; + /** @deprecated use `TopicsControllerRenameTopicRequest$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerRenameTopicRequest$outboundSchema; + /** @deprecated use `TopicsControllerRenameTopicRequest$Outbound` instead. */ + export type Outbound = TopicsControllerRenameTopicRequest$Outbound; +} + +export function topicsControllerRenameTopicRequestToJSON( + topicsControllerRenameTopicRequest: TopicsControllerRenameTopicRequest, +): string { + return JSON.stringify( + TopicsControllerRenameTopicRequest$outboundSchema.parse( + topicsControllerRenameTopicRequest, + ), + ); +} + +export function topicsControllerRenameTopicRequestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerRenameTopicRequest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerRenameTopicRequest' from JSON`, + ); +} + +/** @internal */ +export const TopicsControllerRenameTopicResponse$inboundSchema: z.ZodType< + TopicsControllerRenameTopicResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Headers: z.record(z.array(z.string())), + Result: components.RenameTopicResponseDto$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Headers": "headers", + "Result": "result", + }); +}); + +/** @internal */ +export type TopicsControllerRenameTopicResponse$Outbound = { + Headers: { [k: string]: Array }; + Result: components.RenameTopicResponseDto$Outbound; +}; + +/** @internal */ +export const TopicsControllerRenameTopicResponse$outboundSchema: z.ZodType< + TopicsControllerRenameTopicResponse$Outbound, + z.ZodTypeDef, + TopicsControllerRenameTopicResponse +> = z.object({ + headers: z.record(z.array(z.string())), + result: components.RenameTopicResponseDto$outboundSchema, +}).transform((v) => { + return remap$(v, { + headers: "Headers", + result: "Result", + }); +}); + +/** + * @internal + * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module. + */ +export namespace TopicsControllerRenameTopicResponse$ { + /** @deprecated use `TopicsControllerRenameTopicResponse$inboundSchema` instead. */ + export const inboundSchema = + TopicsControllerRenameTopicResponse$inboundSchema; + /** @deprecated use `TopicsControllerRenameTopicResponse$outboundSchema` instead. */ + export const outboundSchema = + TopicsControllerRenameTopicResponse$outboundSchema; + /** @deprecated use `TopicsControllerRenameTopicResponse$Outbound` instead. */ + export type Outbound = TopicsControllerRenameTopicResponse$Outbound; +} + +export function topicsControllerRenameTopicResponseToJSON( + topicsControllerRenameTopicResponse: TopicsControllerRenameTopicResponse, +): string { + return JSON.stringify( + TopicsControllerRenameTopicResponse$outboundSchema.parse( + topicsControllerRenameTopicResponse, + ), + ); +} + +export function topicsControllerRenameTopicResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + TopicsControllerRenameTopicResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'TopicsControllerRenameTopicResponse' from JSON`, + ); +} diff --git a/src/sdk/apikeys.ts b/src/sdk/apikeys.ts new file mode 100644 index 00000000..62daa88c --- /dev/null +++ b/src/sdk/apikeys.ts @@ -0,0 +1,24 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { environmentsApiKeysList } from "../funcs/environmentsApiKeysList.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class ApiKeys extends ClientSDK { + /** + * Get api keys + */ + async list( + options?: RequestOptions, + ): Promise< + operations.EnvironmentsControllerV1ListOrganizationApiKeysResponse + > { + return unwrapAsync(environmentsApiKeysList( + this, + options, + )); + } +} diff --git a/src/sdk/authentication.ts b/src/sdk/authentication.ts new file mode 100644 index 00000000..992a9625 --- /dev/null +++ b/src/sdk/authentication.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersAuthenticationChatAccessOauth } from "../funcs/subscribersAuthenticationChatAccessOauth.js"; +import { subscribersAuthenticationChatAccessOauthCallBack } from "../funcs/subscribersAuthenticationChatAccessOauthCallBack.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Authentication extends ClientSDK { + /** + * Handle providers oauth redirect + */ + async chatAccessOauthCallBack( + request: operations.SubscribersControllerChatOauthCallbackRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersAuthenticationChatAccessOauthCallBack( + this, + request, + options, + )); + } + + /** + * Handle chat oauth + */ + async chatAccessOauth( + request: operations.SubscribersControllerChatAccessOauthRequest, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerChatAccessOauthResponse | undefined + > { + return unwrapAsync(subscribersAuthenticationChatAccessOauth( + this, + request, + options, + )); + } +} diff --git a/src/sdk/credentials.ts b/src/sdk/credentials.ts new file mode 100644 index 00000000..2ac9307f --- /dev/null +++ b/src/sdk/credentials.ts @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersCredentialsAppend } from "../funcs/subscribersCredentialsAppend.js"; +import { subscribersCredentialsDelete } from "../funcs/subscribersCredentialsDelete.js"; +import { subscribersCredentialsUpdate } from "../funcs/subscribersCredentialsUpdate.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Credentials extends ClientSDK { + /** + * Update subscriber credentials + * + * @remarks + * Subscriber credentials associated to the delivery methods such as slack and push tokens. + */ + async update( + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersCredentialsUpdate( + this, + updateSubscriberChannelRequestDto, + subscriberId, + options, + )); + } + + /** + * Modify subscriber credentials + * + * @remarks + * Subscriber credentials associated to the delivery methods such as slack and push tokens. + * + * This endpoint appends provided credentials and deviceTokens to the existing ones. + */ + async append( + updateSubscriberChannelRequestDto: + components.UpdateSubscriberChannelRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersCredentialsAppend( + this, + updateSubscriberChannelRequestDto, + subscriberId, + options, + )); + } + + /** + * Delete subscriber credentials by providerId + * + * @remarks + * Delete subscriber credentials such as slack and expo tokens. + */ + async delete( + subscriberId: string, + providerId: string, + options?: RequestOptions, + ): Promise< + | operations.SubscribersControllerDeleteSubscriberCredentialsResponse + | undefined + > { + return unwrapAsync(subscribersCredentialsDelete( + this, + subscriberId, + providerId, + options, + )); + } +} diff --git a/src/sdk/environments.ts b/src/sdk/environments.ts new file mode 100644 index 00000000..ba0cf44f --- /dev/null +++ b/src/sdk/environments.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { environmentsList } from "../funcs/environmentsList.js"; +import { environmentsRetrieve } from "../funcs/environmentsRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; +import { ApiKeys } from "./apikeys.js"; + +export class Environments extends ClientSDK { + private _apiKeys?: ApiKeys; + get apiKeys(): ApiKeys { + return (this._apiKeys ??= new ApiKeys(this._options)); + } + + /** + * Get current environment + */ + async retrieve( + options?: RequestOptions, + ): Promise { + return unwrapAsync(environmentsRetrieve( + this, + options, + )); + } + + /** + * Get environments + */ + async list( + options?: RequestOptions, + ): Promise { + return unwrapAsync(environmentsList( + this, + options, + )); + } +} diff --git a/src/sdk/executiondetails.ts b/src/sdk/executiondetails.ts new file mode 100644 index 00000000..ab136faa --- /dev/null +++ b/src/sdk/executiondetails.ts @@ -0,0 +1,28 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { executionDetailsRetrieve } from "../funcs/executionDetailsRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class ExecutionDetails extends ClientSDK { + /** + * Get execution details + */ + async retrieve( + notificationId: string, + subscriberId: string, + options?: RequestOptions, + ): Promise< + operations.ExecutionDetailsControllerGetExecutionDetailsForNotificationResponse + > { + return unwrapAsync(executionDetailsRetrieve( + this, + notificationId, + subscriberId, + options, + )); + } +} diff --git a/src/sdk/index.ts b/src/sdk/index.ts new file mode 100644 index 00000000..ecac2264 --- /dev/null +++ b/src/sdk/index.ts @@ -0,0 +1,5 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export * from "./sdk.js"; diff --git a/src/sdk/integrations.ts b/src/sdk/integrations.ts new file mode 100644 index 00000000..11dfece3 --- /dev/null +++ b/src/sdk/integrations.ts @@ -0,0 +1,113 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { integrationsCreate } from "../funcs/integrationsCreate.js"; +import { integrationsDelete } from "../funcs/integrationsDelete.js"; +import { integrationsList } from "../funcs/integrationsList.js"; +import { integrationsListActive } from "../funcs/integrationsListActive.js"; +import { integrationsSetAsPrimary } from "../funcs/integrationsSetAsPrimary.js"; +import { integrationsUpdate } from "../funcs/integrationsUpdate.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; +import { Webhooks } from "./webhooks.js"; + +export class Integrations extends ClientSDK { + private _webhooks?: Webhooks; + get webhooks(): Webhooks { + return (this._webhooks ??= new Webhooks(this._options)); + } + + /** + * Get integrations + * + * @remarks + * Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + */ + async list( + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsList( + this, + options, + )); + } + + /** + * Create integration + * + * @remarks + * Create an integration for the current environment the user is based on the API key provided + */ + async create( + request: components.CreateIntegrationRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsCreate( + this, + request, + options, + )); + } + + /** + * Get active integrations + * + * @remarks + * Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + */ + async listActive( + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsListActive( + this, + options, + )); + } + + /** + * Update integration + */ + async update( + updateIntegrationRequestDto: components.UpdateIntegrationRequestDto, + integrationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsUpdate( + this, + updateIntegrationRequestDto, + integrationId, + options, + )); + } + + /** + * Delete integration + */ + async delete( + integrationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsDelete( + this, + integrationId, + options, + )); + } + + /** + * Set integration as primary + */ + async setAsPrimary( + integrationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsSetAsPrimary( + this, + integrationId, + options, + )); + } +} diff --git a/src/sdk/messages.ts b/src/sdk/messages.ts new file mode 100644 index 00000000..bc23e83e --- /dev/null +++ b/src/sdk/messages.ts @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { messagesDelete } from "../funcs/messagesDelete.js"; +import { messagesDeleteByTransactionId } from "../funcs/messagesDeleteByTransactionId.js"; +import { messagesRetrieve } from "../funcs/messagesRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Messages extends ClientSDK { + /** + * Get messages + * + * @remarks + * Returns a list of messages, could paginate using the `page` query parameter + */ + async retrieve( + request: operations.MessagesControllerGetMessagesRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(messagesRetrieve( + this, + request, + options, + )); + } + + /** + * Delete message + * + * @remarks + * Deletes a message entity from the Novu platform + */ + async delete( + messageId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(messagesDelete( + this, + messageId, + options, + )); + } + + /** + * Delete messages by transactionId + * + * @remarks + * Deletes messages entity from the Novu platform using TransactionId of message + */ + async deleteByTransactionId( + transactionId: string, + channel?: operations.QueryParamChannel | undefined, + options?: RequestOptions, + ): Promise< + | operations.MessagesControllerDeleteMessagesByTransactionIdResponse + | undefined + > { + return unwrapAsync(messagesDeleteByTransactionId( + this, + transactionId, + channel, + options, + )); + } +} diff --git a/src/sdk/notifications.ts b/src/sdk/notifications.ts new file mode 100644 index 00000000..bbfe0d85 --- /dev/null +++ b/src/sdk/notifications.ts @@ -0,0 +1,45 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { notificationsList } from "../funcs/notificationsList.js"; +import { notificationsRetrieve } from "../funcs/notificationsRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; +import { Stats } from "./stats.js"; + +export class Notifications extends ClientSDK { + private _stats?: Stats; + get stats(): Stats { + return (this._stats ??= new Stats(this._options)); + } + + /** + * Get notifications + */ + async list( + request: operations.NotificationsControllerListNotificationsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsList( + this, + request, + options, + )); + } + + /** + * Get notification + */ + async retrieve( + notificationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsRetrieve( + this, + notificationId, + options, + )); + } +} diff --git a/src/sdk/novumessages.ts b/src/sdk/novumessages.ts new file mode 100644 index 00000000..b8eb5333 --- /dev/null +++ b/src/sdk/novumessages.ts @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersMessagesMarkAll } from "../funcs/subscribersMessagesMarkAll.js"; +import { subscribersMessagesMarkAllAs } from "../funcs/subscribersMessagesMarkAllAs.js"; +import { subscribersMessagesUpdateAsSeen } from "../funcs/subscribersMessagesUpdateAsSeen.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class NovuMessages extends ClientSDK { + /** + * Mark a subscriber messages as seen, read, unseen or unread + */ + async markAllAs( + messageMarkAsRequestDto: components.MessageMarkAsRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersMessagesMarkAllAs( + this, + messageMarkAsRequestDto, + subscriberId, + options, + )); + } + + /** + * Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + */ + async markAll( + markAllMessageAsRequestDto: components.MarkAllMessageAsRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersMessagesMarkAll( + this, + markAllMessageAsRequestDto, + subscriberId, + options, + )); + } + + /** + * Mark message action as seen + */ + async updateAsSeen( + request: operations.SubscribersControllerMarkActionAsSeenRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersMessagesUpdateAsSeen( + this, + request, + options, + )); + } +} diff --git a/src/sdk/novunotifications.ts b/src/sdk/novunotifications.ts new file mode 100644 index 00000000..32e3be09 --- /dev/null +++ b/src/sdk/novunotifications.ts @@ -0,0 +1,39 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersNotificationsRetrieve } from "../funcs/subscribersNotificationsRetrieve.js"; +import { subscribersNotificationsUnseenCount } from "../funcs/subscribersNotificationsUnseenCount.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class NovuNotifications extends ClientSDK { + /** + * Get in-app notification feed for a particular subscriber + */ + async retrieve( + request: operations.SubscribersControllerGetNotificationsFeedRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersNotificationsRetrieve( + this, + request, + options, + )); + } + + /** + * Get the unseen in-app notifications count for subscribers feed + */ + async unseenCount( + request: operations.SubscribersControllerGetUnseenCountRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersNotificationsUnseenCount( + this, + request, + options, + )); + } +} diff --git a/src/sdk/novusubscribers.ts b/src/sdk/novusubscribers.ts new file mode 100644 index 00000000..b78fb169 --- /dev/null +++ b/src/sdk/novusubscribers.ts @@ -0,0 +1,70 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { topicsSubscribersAssign } from "../funcs/topicsSubscribersAssign.js"; +import { topicsSubscribersDelete } from "../funcs/topicsSubscribersDelete.js"; +import { topicsSubscribersRetrieve } from "../funcs/topicsSubscribersRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class NovuSubscribers extends ClientSDK { + /** + * Subscribers addition + * + * @remarks + * Add subscribers to a topic by key + */ + async assign( + addSubscribersRequestDto: components.AddSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsSubscribersAssign( + this, + addSubscribersRequestDto, + topicKey, + options, + )); + } + + /** + * Check topic subscriber + * + * @remarks + * Check if a subscriber belongs to a certain topic + */ + async retrieve( + externalSubscriberId: string, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsSubscribersRetrieve( + this, + externalSubscriberId, + topicKey, + options, + )); + } + + /** + * Subscribers removal + * + * @remarks + * Remove subscribers from a topic + */ + async delete( + removeSubscribersRequestDto: components.RemoveSubscribersRequestDto, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsSubscribersDelete( + this, + removeSubscribersRequestDto, + topicKey, + options, + )); + } +} diff --git a/src/sdk/preferences.ts b/src/sdk/preferences.ts new file mode 100644 index 00000000..1b089387 --- /dev/null +++ b/src/sdk/preferences.ts @@ -0,0 +1,84 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersPreferencesList } from "../funcs/subscribersPreferencesList.js"; +import { subscribersPreferencesRetrieveByLevel } from "../funcs/subscribersPreferencesRetrieveByLevel.js"; +import { subscribersPreferencesUpdate } from "../funcs/subscribersPreferencesUpdate.js"; +import { subscribersPreferencesUpdateGlobal } from "../funcs/subscribersPreferencesUpdateGlobal.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Preferences extends ClientSDK { + /** + * Get subscriber preferences + */ + async list( + subscriberId: string, + includeInactiveChannels?: boolean | undefined, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerListSubscriberPreferencesResponse + > { + return unwrapAsync(subscribersPreferencesList( + this, + subscriberId, + includeInactiveChannels, + options, + )); + } + + /** + * Update subscriber global preferences + */ + async updateGlobal( + updateSubscriberGlobalPreferencesRequestDto: + components.UpdateSubscriberGlobalPreferencesRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerUpdateSubscriberGlobalPreferencesResponse + > { + return unwrapAsync(subscribersPreferencesUpdateGlobal( + this, + updateSubscriberGlobalPreferencesRequestDto, + subscriberId, + options, + )); + } + + /** + * Get subscriber preferences by level + */ + async retrieveByLevel( + request: + operations.SubscribersControllerGetSubscriberPreferenceByLevelRequest, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerGetSubscriberPreferenceByLevelResponse + > { + return unwrapAsync(subscribersPreferencesRetrieveByLevel( + this, + request, + options, + )); + } + + /** + * Update subscriber preference + */ + async update( + request: operations.SubscribersControllerUpdateSubscriberPreferenceRequest, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerUpdateSubscriberPreferenceResponse + > { + return unwrapAsync(subscribersPreferencesUpdate( + this, + request, + options, + )); + } +} diff --git a/src/sdk/properties.ts b/src/sdk/properties.ts new file mode 100644 index 00000000..f2e4bed0 --- /dev/null +++ b/src/sdk/properties.ts @@ -0,0 +1,33 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersPropertiesUpdateOnlineFlag } from "../funcs/subscribersPropertiesUpdateOnlineFlag.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Properties extends ClientSDK { + /** + * Update subscriber online status + * + * @remarks + * Used to update the subscriber isOnline flag. + */ + async updateOnlineFlag( + updateSubscriberOnlineFlagRequestDto: + components.UpdateSubscriberOnlineFlagRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerUpdateSubscriberOnlineFlagResponse + > { + return unwrapAsync(subscribersPropertiesUpdateOnlineFlag( + this, + updateSubscriberOnlineFlagRequestDto, + subscriberId, + options, + )); + } +} diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts new file mode 100644 index 00000000..91eb14be --- /dev/null +++ b/src/sdk/sdk.ts @@ -0,0 +1,139 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { cancelByTransactionId } from "../funcs/cancelByTransactionId.js"; +import { trigger } from "../funcs/trigger.js"; +import { triggerBroadcast } from "../funcs/triggerBroadcast.js"; +import { triggerBulk } from "../funcs/triggerBulk.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; +import { Environments } from "./environments.js"; +import { ExecutionDetails } from "./executiondetails.js"; +import { Integrations } from "./integrations.js"; +import { Messages } from "./messages.js"; +import { Notifications } from "./notifications.js"; +import { Subscribers } from "./subscribers.js"; +import { Topics } from "./topics.js"; +import { WorkflowGroups } from "./workflowgroups.js"; + +export class Novu extends ClientSDK { + private _environments?: Environments; + get environments(): Environments { + return (this._environments ??= new Environments(this._options)); + } + + private _executionDetails?: ExecutionDetails; + get executionDetails(): ExecutionDetails { + return (this._executionDetails ??= new ExecutionDetails(this._options)); + } + + private _notifications?: Notifications; + get notifications(): Notifications { + return (this._notifications ??= new Notifications(this._options)); + } + + private _workflowGroups?: WorkflowGroups; + get workflowGroups(): WorkflowGroups { + return (this._workflowGroups ??= new WorkflowGroups(this._options)); + } + + private _integrations?: Integrations; + get integrations(): Integrations { + return (this._integrations ??= new Integrations(this._options)); + } + + private _subscribers?: Subscribers; + get subscribers(): Subscribers { + return (this._subscribers ??= new Subscribers(this._options)); + } + + private _messages?: Messages; + get messages(): Messages { + return (this._messages ??= new Messages(this._options)); + } + + private _topics?: Topics; + get topics(): Topics { + return (this._topics ??= new Topics(this._options)); + } + + /** + * Trigger event + * + * @remarks + * + * Trigger event is the main (and only) way to send notifications to subscribers. + * The trigger identifier is used to match the particular workflow associated with it. + * Additional information can be passed according the body interface below. + */ + async trigger( + request: components.TriggerEventRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(trigger( + this, + request, + options, + )); + } + + /** + * Bulk trigger event + * + * @remarks + * + * Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + * The bulk API is limited to 100 events per request. + */ + async triggerBulk( + request: components.BulkTriggerEventDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggerBulk( + this, + request, + options, + )); + } + + /** + * Broadcast event to all + * + * @remarks + * Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + * + * In the future could be used to trigger events to a subset of subscribers based on defined filters. + */ + async triggerBroadcast( + request: components.TriggerEventToAllRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggerBroadcast( + this, + request, + options, + )); + } + + /** + * Cancel triggered event + * + * @remarks + * + * Using a previously generated transactionId during the event trigger, + * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + */ + async cancelByTransactionId( + transactionId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(cancelByTransactionId( + this, + transactionId, + options, + )); + } +} diff --git a/src/sdk/stats.ts b/src/sdk/stats.ts new file mode 100644 index 00000000..dd2e3d8e --- /dev/null +++ b/src/sdk/stats.ts @@ -0,0 +1,37 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { notificationsStatsGraph } from "../funcs/notificationsStatsGraph.js"; +import { notificationsStatsRetrieve } from "../funcs/notificationsStatsRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Stats extends ClientSDK { + /** + * Get notification statistics + */ + async retrieve( + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsStatsRetrieve( + this, + options, + )); + } + + /** + * Get notification graph statistics + */ + async graph( + days?: number | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(notificationsStatsGraph( + this, + days, + options, + )); + } +} diff --git a/src/sdk/subscribers.ts b/src/sdk/subscribers.ts new file mode 100644 index 00000000..c0865190 --- /dev/null +++ b/src/sdk/subscribers.ts @@ -0,0 +1,167 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { subscribersCreate } from "../funcs/subscribersCreate.js"; +import { subscribersCreateBulk } from "../funcs/subscribersCreateBulk.js"; +import { subscribersDelete } from "../funcs/subscribersDelete.js"; +import { subscribersList } from "../funcs/subscribersList.js"; +import { subscribersRetrieve } from "../funcs/subscribersRetrieve.js"; +import { subscribersUpdate } from "../funcs/subscribersUpdate.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; +import { PageIterator, unwrapResultIterator } from "../types/operations.js"; +import { Authentication } from "./authentication.js"; +import { Credentials } from "./credentials.js"; +import { NovuMessages } from "./novumessages.js"; +import { NovuNotifications } from "./novunotifications.js"; +import { Preferences } from "./preferences.js"; +import { Properties } from "./properties.js"; + +export class Subscribers extends ClientSDK { + private _credentials?: Credentials; + get credentials(): Credentials { + return (this._credentials ??= new Credentials(this._options)); + } + + private _properties?: Properties; + get properties(): Properties { + return (this._properties ??= new Properties(this._options)); + } + + private _preferences?: Preferences; + get preferences(): Preferences { + return (this._preferences ??= new Preferences(this._options)); + } + + private _notifications?: NovuNotifications; + get notifications(): NovuNotifications { + return (this._notifications ??= new NovuNotifications(this._options)); + } + + private _messages?: NovuMessages; + get messages(): NovuMessages { + return (this._messages ??= new NovuMessages(this._options)); + } + + private _authentication?: Authentication; + get authentication(): Authentication { + return (this._authentication ??= new Authentication(this._options)); + } + + /** + * Get subscribers + * + * @remarks + * Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + */ + async list( + page?: number | undefined, + limit?: number | undefined, + options?: RequestOptions, + ): Promise< + PageIterator + > { + return unwrapResultIterator(subscribersList( + this, + page, + limit, + options, + )); + } + + /** + * Create subscriber + * + * @remarks + * Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + */ + async create( + request: components.CreateSubscriberRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersCreate( + this, + request, + options, + )); + } + + /** + * Get subscriber + * + * @remarks + * Get subscriber by your internal id used to identify the subscriber + */ + async retrieve( + subscriberId: string, + includeTopics?: string | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersRetrieve( + this, + subscriberId, + includeTopics, + options, + )); + } + + /** + * Update subscriber + * + * @remarks + * Used to update the subscriber entity with new information + */ + async update( + updateSubscriberRequestDto: components.UpdateSubscriberRequestDto, + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersUpdate( + this, + updateSubscriberRequestDto, + subscriberId, + options, + )); + } + + /** + * Delete subscriber + * + * @remarks + * Deletes a subscriber entity from the Novu platform + */ + async delete( + subscriberId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(subscribersDelete( + this, + subscriberId, + options, + )); + } + + /** + * Bulk create subscribers + * + * @remarks + * + * Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + * The bulk API is limited to 500 subscribers per request. + */ + async createBulk( + request: components.BulkSubscriberCreateDto, + options?: RequestOptions, + ): Promise< + operations.SubscribersControllerBulkCreateSubscribersResponse | undefined + > { + return unwrapAsync(subscribersCreateBulk( + this, + request, + options, + )); + } +} diff --git a/src/sdk/topics.ts b/src/sdk/topics.ts new file mode 100644 index 00000000..1c6c17c3 --- /dev/null +++ b/src/sdk/topics.ts @@ -0,0 +1,108 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { topicsCreate } from "../funcs/topicsCreate.js"; +import { topicsDelete } from "../funcs/topicsDelete.js"; +import { topicsList } from "../funcs/topicsList.js"; +import { topicsRename } from "../funcs/topicsRename.js"; +import { topicsRetrieve } from "../funcs/topicsRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; +import { NovuSubscribers } from "./novusubscribers.js"; + +export class Topics extends ClientSDK { + private _subscribers?: NovuSubscribers; + get subscribers(): NovuSubscribers { + return (this._subscribers ??= new NovuSubscribers(this._options)); + } + + /** + * Topic creation + * + * @remarks + * Create a topic + */ + async create( + request: components.CreateTopicRequestDto, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsCreate( + this, + request, + options, + )); + } + + /** + * Filter topics + * + * @remarks + * Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + */ + async list( + request: operations.TopicsControllerListTopicsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsList( + this, + request, + options, + )); + } + + /** + * Delete topic + * + * @remarks + * Delete a topic by its topic key if it has no subscribers + */ + async delete( + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsDelete( + this, + topicKey, + options, + )); + } + + /** + * Get topic + * + * @remarks + * Get a topic by its topic key + */ + async retrieve( + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsRetrieve( + this, + topicKey, + options, + )); + } + + /** + * Rename a topic + * + * @remarks + * Rename a topic by providing a new name + */ + async rename( + renameTopicRequestDto: components.RenameTopicRequestDto, + topicKey: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(topicsRename( + this, + renameTopicRequestDto, + topicKey, + options, + )); + } +} diff --git a/src/sdk/webhooks.ts b/src/sdk/webhooks.ts new file mode 100644 index 00000000..563aae20 --- /dev/null +++ b/src/sdk/webhooks.ts @@ -0,0 +1,27 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { integrationsWebhooksRetrieve } from "../funcs/integrationsWebhooksRetrieve.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Webhooks extends ClientSDK { + /** + * Get webhook support status for provider + * + * @remarks + * Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + */ + async retrieve( + providerOrIntegrationId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(integrationsWebhooksRetrieve( + this, + providerOrIntegrationId, + options, + )); + } +} diff --git a/src/sdk/workflowgroups.ts b/src/sdk/workflowgroups.ts new file mode 100644 index 00000000..6bb5d9c1 --- /dev/null +++ b/src/sdk/workflowgroups.ts @@ -0,0 +1,111 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { workflowGroupsCreate } from "../funcs/workflowGroupsCreate.js"; +import { workflowGroupsDelete } from "../funcs/workflowGroupsDelete.js"; +import { workflowGroupsList } from "../funcs/workflowGroupsList.js"; +import { workflowGroupsRetrieve } from "../funcs/workflowGroupsRetrieve.js"; +import { workflowGroupsUpdate } from "../funcs/workflowGroupsUpdate.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class WorkflowGroups extends ClientSDK { + /** + * Create workflow group + * + * @remarks + * workflow group was previously named notification group + */ + async create( + request: components.CreateNotificationGroupRequestDto, + options?: RequestOptions, + ): Promise< + operations.NotificationGroupsControllerCreateNotificationGroupResponse + > { + return unwrapAsync(workflowGroupsCreate( + this, + request, + options, + )); + } + + /** + * Get workflow groups + * + * @remarks + * workflow group was previously named notification group + */ + async list( + options?: RequestOptions, + ): Promise< + operations.NotificationGroupsControllerListNotificationGroupsResponse + > { + return unwrapAsync(workflowGroupsList( + this, + options, + )); + } + + /** + * Get workflow group + * + * @remarks + * workflow group was previously named notification group + */ + async retrieve( + id: string, + options?: RequestOptions, + ): Promise< + operations.NotificationGroupsControllerGetNotificationGroupResponse + > { + return unwrapAsync(workflowGroupsRetrieve( + this, + id, + options, + )); + } + + /** + * Update workflow group + * + * @remarks + * workflow group was previously named notification group + */ + async update( + createNotificationGroupRequestDto: + components.CreateNotificationGroupRequestDto, + id: string, + options?: RequestOptions, + ): Promise< + operations.NotificationGroupsControllerUpdateNotificationGroupResponse + > { + return unwrapAsync(workflowGroupsUpdate( + this, + createNotificationGroupRequestDto, + id, + options, + )); + } + + /** + * Delete workflow group + * + * @remarks + * workflow group was previously named notification group + */ + async delete( + id: string, + options?: RequestOptions, + ): Promise< + operations.NotificationGroupsControllerDeleteNotificationGroupResponse + > { + return unwrapAsync(workflowGroupsDelete( + this, + id, + options, + )); + } +} diff --git a/src/types/blobs.ts b/src/types/blobs.ts new file mode 100644 index 00000000..4ce84602 --- /dev/null +++ b/src/types/blobs.ts @@ -0,0 +1,31 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; + +export const blobLikeSchema: z.ZodType = + z.custom(isBlobLike, { + message: "expected a Blob, File or Blob-like object", + fatal: true, + }); + +export function isBlobLike(val: unknown): val is Blob { + if (val instanceof Blob) { + return true; + } + + if (typeof val !== "object" || val == null || !(Symbol.toStringTag in val)) { + return false; + } + + const name = val[Symbol.toStringTag]; + if (typeof name !== "string") { + return false; + } + if (name !== "Blob" && name !== "File") { + return false; + } + + return "stream" in val && typeof val.stream === "function"; +} diff --git a/src/types/constdatetime.ts b/src/types/constdatetime.ts new file mode 100644 index 00000000..c0a4409c --- /dev/null +++ b/src/types/constdatetime.ts @@ -0,0 +1,15 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod"; + +export function constDateTime( + val: string, +): z.ZodType { + return z.custom((v) => { + return ( + typeof v === "string" && new Date(v).getTime() === new Date(val).getTime() + ); + }, `Value must be equivelant to ${val}`); +} diff --git a/src/types/enums.ts b/src/types/enums.ts new file mode 100644 index 00000000..6fb6d910 --- /dev/null +++ b/src/types/enums.ts @@ -0,0 +1,16 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +declare const __brand: unique symbol; +export type Unrecognized = T & { [__brand]: "unrecognized" }; + +export function catchUnrecognizedEnum(value: T): Unrecognized { + return value as Unrecognized; +} + +type Prettify = { [K in keyof T]: T[K] } & {}; +export type ClosedEnum = T[keyof T]; +export type OpenEnum = + | Prettify + | Unrecognized; diff --git a/src/types/fp.ts b/src/types/fp.ts new file mode 100644 index 00000000..ccbe51ea --- /dev/null +++ b/src/types/fp.ts @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +/** + * A monad that captures the result of a function call or an error if it was not + * successful. Railway programming, enabled by this type, can be a nicer + * alternative to traditional exception throwing because it allows functions to + * declare all _known_ errors with static types and then check for them + * exhaustively in application code. Thrown exception have a type of `unknown` + * and break out of regular control flow of programs making them harder to + * inspect and more verbose work with due to try-catch blocks. + */ +export type Result = + | { ok: true; value: T; error?: never } + | { ok: false; value?: never; error: E }; + +export function OK(value: V): Result { + return { ok: true, value }; +} + +export function ERR(error: E): Result { + return { ok: false, error }; +} + +/** + * unwrap is a convenience function for extracting a value from a result or + * throwing if there was an error. + */ +export function unwrap(r: Result): T { + if (!r.ok) { + throw r.error; + } + return r.value; +} + +/** + * unwrapAsync is a convenience function for resolving a value from a Promise + * of a result or rejecting if an error occurred. + */ +export async function unwrapAsync( + pr: Promise>, +): Promise { + const r = await pr; + if (!r.ok) { + throw r.error; + } + + return r.value; +} diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 00000000..e124e817 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,11 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export { blobLikeSchema, isBlobLike } from "./blobs.js"; +export { catchUnrecognizedEnum } from "./enums.js"; +export type { ClosedEnum, OpenEnum, Unrecognized } from "./enums.js"; +export type { Result } from "./fp.js"; +export type { PageIterator, Paginator } from "./operations.js"; +export { createPageIterator } from "./operations.js"; +export { RFCDate } from "./rfcdate.js"; diff --git a/src/types/operations.ts b/src/types/operations.ts new file mode 100644 index 00000000..0952f6f4 --- /dev/null +++ b/src/types/operations.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { Result } from "./fp.js"; + +export type Paginator = () => Promise }> | null; + +export type PageIterator = V & { + next: Paginator; + [Symbol.asyncIterator]: () => AsyncIterableIterator; +}; + +export function createPageIterator( + page: V & { next: Paginator }, + halt: (v: V) => boolean, +): { + [Symbol.asyncIterator]: () => AsyncIterableIterator; +} { + return { + [Symbol.asyncIterator]: async function* paginator() { + yield page; + if (halt(page)) { + return; + } + + let p: typeof page | null = page; + for (p = await p.next(); p != null; p = await p.next()) { + yield p; + if (halt(p)) { + return; + } + } + }, + }; +} + +/** + * This utility create a special iterator that yields a single value and + * terminates. It is useful in paginated SDK functions that have early return + * paths when things go wrong. + */ +export function haltIterator(v: V): PageIterator { + return { + ...v, + next: () => null, + [Symbol.asyncIterator]: async function* paginator() { + yield v; + }, + }; +} + +/** + * Converts an async iterator of `Result` into an async iterator of `V`. + * When error results occur, the underlying error value is thrown. + */ +export async function unwrapResultIterator( + iteratorPromise: Promise>>, +): Promise> { + const resultIter = await iteratorPromise; + + if (!resultIter.ok) { + throw resultIter.error; + } + + return { + ...resultIter.value, + next: unwrapPaginator(resultIter.next), + [Symbol.asyncIterator]: async function* paginator() { + for await (const page of resultIter) { + if (!page.ok) { + throw page.error; + } + yield page.value; + } + }, + }; +} + +function unwrapPaginator( + paginator: Paginator>, +): Paginator { + return () => { + const nextResult = paginator(); + if (nextResult == null) { + return null; + } + return nextResult.then((res) => { + if (!res.ok) { + throw res.error; + } + const out = { + ...res.value, + next: unwrapPaginator(res.next), + }; + return out; + }); + }; +} diff --git a/src/types/rfcdate.ts b/src/types/rfcdate.ts new file mode 100644 index 00000000..c79b3f53 --- /dev/null +++ b/src/types/rfcdate.ts @@ -0,0 +1,54 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +const dateRE = /^\d{4}-\d{2}-\d{2}$/; + +export class RFCDate { + private serialized: string; + + /** + * Creates a new RFCDate instance using today's date. + */ + static today(): RFCDate { + return new RFCDate(new Date()); + } + + /** + * Creates a new RFCDate instance using the provided input. + * If a string is used then in must be in the format YYYY-MM-DD. + * + * @param date A Date object or a date string in YYYY-MM-DD format + * @example + * new RFCDate("2022-01-01") + * @example + * new RFCDate(new Date()) + */ + constructor(date: Date | string) { + if (typeof date === "string" && !dateRE.test(date)) { + throw new RangeError( + "RFCDate: date strings must be in the format YYYY-MM-DD: " + date, + ); + } + + const value = new Date(date); + if (isNaN(+value)) { + throw new RangeError("RFCDate: invalid date provided: " + date); + } + + this.serialized = value.toISOString().slice(0, "YYYY-MM-DD".length); + if (!dateRE.test(this.serialized)) { + throw new TypeError( + `RFCDate: failed to build valid date with given value: ${date} serialized to ${this.serialized}`, + ); + } + } + + toJSON(): string { + return this.toString(); + } + + toString(): string { + return this.serialized; + } +} diff --git a/src/types/streams.ts b/src/types/streams.ts new file mode 100644 index 00000000..a0163e7a --- /dev/null +++ b/src/types/streams.ts @@ -0,0 +1,21 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +export function isReadableStream( + val: unknown, +): val is ReadableStream { + if (typeof val !== "object" || val === null) { + return false; + } + + // Check for the presence of methods specific to ReadableStream + const stream = val as ReadableStream; + + // ReadableStream has methods like getReader, cancel, and tee + return ( + typeof stream.getReader === "function" && + typeof stream.cancel === "function" && + typeof stream.tee === "function" + ); +} From fdee6cdb40f02cd252d91cc925d9157eb5eb76d4 Mon Sep 17 00:00:00 2001 From: GalT <39020298+tatarco@users.noreply.github.com> Date: Tue, 26 Nov 2024 08:35:19 +0100 Subject: [PATCH 12/12] relaunch --- .gitignore | 7 - .speakeasy/gen.lock | 16 +- .speakeasy/gen.yaml | 2 +- .../speakeasy-modifications-overlay.yaml | 335 +- .../temp/a32d33/openapi/bundle/openapi.json | 1 + .speakeasy/temp/applied_hdbdDBZBfI.yaml | 8807 ++++++++++++ .speakeasy/temp/downloaded_HKVFJyjOtH.yaml | 9166 ++++++++++++ .speakeasy/temp/overlay_kQfMvHVybU.yaml | 8807 ++++++++++++ .speakeasy/workflow.lock | 12 +- FUNCTIONS.md | 2 - README.md | 27 +- USAGE.md | 11 +- docs/sdks/novu/README.md | 28 +- jsr.json | 2 +- package-lock.json | 4 +- package.json | 2 +- sources/code-samples.yaml | 8 +- sources/json-development.json | 2 +- sources/openapi.sdk.json | 11866 ++++------------ .../{cancelByTransactionId.ts => cancel.ts} | 2 +- src/lib/config.ts | 6 +- src/sdk/sdk.ts | 6 +- 22 files changed, 29378 insertions(+), 9741 deletions(-) create mode 100644 .speakeasy/temp/a32d33/openapi/bundle/openapi.json create mode 100644 .speakeasy/temp/applied_hdbdDBZBfI.yaml create mode 100644 .speakeasy/temp/downloaded_HKVFJyjOtH.yaml create mode 100644 .speakeasy/temp/overlay_kQfMvHVybU.yaml rename src/funcs/{cancelByTransactionId.ts => cancel.ts} (98%) diff --git a/.gitignore b/.gitignore index da4f0964..09c4b62a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,10 @@ -<<<<<<< Updated upstream /__tests__ -======= ->>>>>>> Stashed changes /funcs /core.* /esm /dist /.tshy /.tshy-* -<<<<<<< Updated upstream -======= -/__tests__ ->>>>>>> Stashed changes /models /models/errors /types diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 55f1c65a..e4a9c9a2 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,18 +1,18 @@ lockVersion: 2.0.0 id: 6bff3a53-3f0b-40b4-942f-ff70dc583ae5 management: - docChecksum: 94d6ad7aa34a4727c08897680b358b24 + docChecksum: 10932993b99f723bb4dec08261897258 docVersion: "1.0" - speakeasyVersion: 1.445.2 - generationVersion: 2.461.4 - releaseVersion: 0.0.1-alpha.21 - configChecksum: fabf13d55adfbfa964856669a7e51924 + speakeasyVersion: 1.446.1 + generationVersion: 2.462.1 + releaseVersion: 0.0.1-alpha.25 + configChecksum: 3e76faf756c7c8551645e6079f12b9af published: true features: typescript: additionalDependencies: 0.1.0 constsAndDefaults: 0.1.11 - core: 3.18.6 + core: 3.18.7 defaultEnabledRetries: 0.1.0 deprecations: 2.81.1 enumUnions: 0.1.0 @@ -30,7 +30,6 @@ features: responseFormat: 0.2.3 retries: 2.83.0 sdkHooks: 0.2.0 - tests: 0.7.0 unions: 2.85.8 generatedFiles: - .eslintrc.cjs @@ -321,7 +320,7 @@ generatedFiles: - jsr.json - package.json - src/core.ts - - src/funcs/cancelByTransactionId.ts + - src/funcs/cancel.ts - src/funcs/environmentsApiKeysList.ts - src/funcs/environmentsList.ts - src/funcs/environmentsRetrieve.ts @@ -998,3 +997,4 @@ examples: topicKey: "" requestBody: application/json: {"subscribers": ["", ""]} +generatedTests: {} diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 2f8511a1..fff16e97 100755 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -13,7 +13,7 @@ generation: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false typescript: - version: 0.0.1-alpha.21 + version: 0.0.1-alpha.25 additionalDependencies: dependencies: {} devDependencies: {} diff --git a/.speakeasy/speakeasy-modifications-overlay.yaml b/.speakeasy/speakeasy-modifications-overlay.yaml index b9e34a58..46aeb830 100644 --- a/.speakeasy/speakeasy-modifications-overlay.yaml +++ b/.speakeasy/speakeasy-modifications-overlay.yaml @@ -1,73 +1,73 @@ overlay: 1.0.0 info: title: Speakeasy Modifications - version: 0.0.5 + version: 0.0.6 x-speakeasy-metadata: after: "" before: "" type: speakeasy-modifications actions: - - target: $["paths"]["/v1/subscribers/{subscriberId}"]["delete"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_removeSubscriber() - after: sdk.subscribers.delete() + before: sdk.Subscribers.Preferences.updateGlobal() + after: sdk.subscribersPreferences.updateGlobal() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/notification-groups/{id}"]["get"] + - target: $["paths"]["/v1/notification-groups/{id}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_getNotificationGroup() - after: sdk.workflowGroups.get() + before: sdk.Workflow groups.NotificationGroupsController_deleteNotificationGroup() + after: sdk.workflowGroups.delete() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/notifications"]["get"] + - target: $["paths"]["/v1/events/trigger/{transactionId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Notifications.NotificationsController_listNotifications() - after: sdk.notifications.list() - reviewed_at: 1732386050400 - created_at: 1732385969423 + before: sdk.Events.cancel() + after: sdk.events.cancelByTransactionId() + reviewed_at: 1732563929240 + created_at: 1732563888541 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["patch"] + - target: $["paths"]["/v1/integrations/webhook/provider/{providerOrIntegrationId}/status"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Credentials.append() - after: sdk.subscribers.credentials.append() + before: sdk.Integrations.Webhooks.IntegrationsController_getWebhookSupportStatus() + after: sdk.integrationsWebhooks.getStatus() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/topics"]["get"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_listTopics() - after: sdk.topics.getAll() + before: sdk.Subscribers.Authentication.chatAccessOauth() + after: sdk.subscribers.authentication.handleOauth() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}"]["put"] + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/{externalSubscriberId}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_updateSubscriber() - after: sdk.subscribers.update() + before: sdk.Topics.Subscribers.TopicsController_getTopicSubscriber() + after: sdk.topics.subscribers.check() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/integrations/{integrationId}"]["delete"] + - target: $["paths"]["/v1/topics/{topicKey}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_removeIntegration() - after: sdk.integrations.delete() + before: sdk.Topics.TopicsController_deleteTopic() + after: sdk.topics.delete() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/notifications/graph/stats"]["get"] + - target: $["paths"]["/v1/notifications/stats"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Notifications.Stats.graph() - after: sdk.notificationsStats.get() + before: sdk.Notifications.Stats.NotificationsController_getActivityStats() + after: sdk.notifications.stats.get() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true @@ -79,107 +79,99 @@ actions: reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-all"]["post"] - x-speakeasy-metadata: - type: method-name - before: sdk.Subscribers.Messages.markAll() - after: sdk.subscribersMessages.markAll() - reviewed_at: 1732386050400 - created_at: 1732385969424 - disabled: true - - target: $["paths"]["/v1/environments"]["get"] + - target: $["paths"]["/v1/integrations"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Environments.EnvironmentsControllerV1_listMyEnvironments() - after: sdk.environments.getAll() + before: sdk.Integrations.IntegrationsController_listIntegrations() + after: sdk.integrations.list() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/topics/{topicKey}"]["delete"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_deleteTopic() - after: sdk.topics.delete() + before: sdk.Subscribers.Preferences.retrieveByLevel() + after: sdk.subscribers.preferences.getByLevel() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/topics"]["post"] + - target: $["paths"]["/v1/environments/me"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_createTopic() - after: sdk.topics.create() + before: sdk.Environments.EnvironmentsControllerV1_getCurrentEnvironment() + after: sdk.environments.getCurrent() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/notifications/stats"]["get"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/feed"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Notifications.Stats.NotificationsController_getActivityStats() - after: sdk.notifications.stats.get() + before: sdk.Subscribers.Notifications.SubscribersController_getNotificationsFeed() + after: sdk.subscribers.notifications.getFeed() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}"]["get"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_getSubscriber() - after: sdk.subscribers.get() + before: sdk.Subscribers.Preferences.SubscribersController_updateSubscriberPreference() + after: sdk.subscribers.preferences.update() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/integrations"]["post"] + - target: $["paths"]["/v1/notification-groups/{id}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_createIntegration() - after: sdk.integrations.create() + before: sdk.Workflow groups.NotificationGroupsController_getNotificationGroup() + after: sdk.workflowGroups.get() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["patch"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.updateGlobal() - after: sdk.subscribersPreferences.updateGlobal() + before: sdk.Subscribers.Credentials.append() + after: sdk.subscribers.credentials.append() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/environments/api-keys"]["get"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Environments.ApiKeys.EnvironmentsControllerV1_listOrganizationApiKeys() - after: sdk.environments.apiKeys.list() + before: sdk.Subscribers.Preferences.SubscribersController_listSubscriberPreferences() + after: sdk.subscribers.preferences.get() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/execution-details"]["get"] + - target: $["paths"]["/v1/integrations/{integrationId}"]["put"] x-speakeasy-metadata: type: method-name - before: sdk.Execution Details.ExecutionDetailsController_getExecutionDetailsForNotification() - after: sdk.executionDetails.get() + before: sdk.Integrations.IntegrationsController_updateIntegrationById() + after: sdk.integrations.update() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/topics/{topicKey}"]["get"] + - target: $["paths"]["/v1/notification-groups/{id}"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.TopicsController_getTopic() - after: sdk.topics.get() + before: sdk.Workflow groups.NotificationGroupsController_updateNotificationGroup() + after: sdk.workflowGroups.update() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/notification-groups"]["post"] + - target: $["paths"]["/v1/environments"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_createNotificationGroup() - after: sdk.workflowGroups.create() + before: sdk.Environments.EnvironmentsControllerV1_listMyEnvironments() + after: sdk.environments.getAll() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}"]["delete"] + - target: $["paths"]["/v1/notification-groups"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Credentials.SubscribersController_deleteSubscriberCredentials() - after: sdk.subscribers.credentials.delete() + before: sdk.Workflow groups.NotificationGroupsController_createNotificationGroup() + after: sdk.workflowGroups.create() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true @@ -191,78 +183,93 @@ actions: reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/integrations/{integrationId}"]["put"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["put"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_updateIntegrationById() - after: sdk.integrations.update() + before: sdk.Subscribers.Credentials.SubscribersController_updateSubscriberChannel() + after: sdk.subscribers.credentials.update() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/notification-groups"]["get"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-as"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_listNotificationGroups() - after: sdk.workflowGroups.list() + before: sdk.Subscribers.Messages.markAllAs() + after: sdk.subscribers.messages.mark() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/online-status"]["patch"] + - target: $["paths"]["/v1/integrations/{integrationId}/set-primary"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.properties.updateOnlineFlag() - after: sdk.subscribers.properties.updateOnlineStatus() + before: sdk.Integrations.setAsPrimary() + after: sdk.integrations.setPrimary() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback"]["get"] + - target: $["paths"]["/v1/notifications"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Authentication.chatAccessOauthCallBack() - after: sdk.subscribers.authentication.handleOauthCallback() + before: sdk.Notifications.NotificationsController_listNotifications() + after: sdk.notifications.list() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/integrations"]["get"] + - target: $["paths"]["/v1/notifications/graph/stats"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.IntegrationsController_listIntegrations() - after: sdk.integrations.list() + before: sdk.Notifications.Stats.graph() + after: sdk.notificationsStats.get() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/notification-groups/{id}"]["delete"] + - target: $["paths"]["/v1/notifications/{notificationId}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_deleteNotificationGroup() - after: sdk.workflowGroups.delete() + before: sdk.Notifications.NotificationsController_getNotification() + after: sdk.notifications.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/topics/{topicKey}/subscribers/removal"]["post"] + x-speakeasy-metadata: + type: method-name + before: sdk.Topics.Subscribers.TopicsController_removeSubscribers() + after: sdk.topics.subscribers.remove() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/notification-groups/{id}"]["patch"] + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Workflow groups.NotificationGroupsController_updateNotificationGroup() - after: sdk.workflowGroups.update() + before: sdk.Subscribers.SubscribersController_getSubscriber() + after: sdk.subscribers.get() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/events/trigger/{transactionId}"]["delete"] - update: - x-speakeasy-name-override: cancelByTransactionId + - target: $["paths"]["/v1/topics/{topicKey}"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Events.cancel() - after: sdk.events.cancelByTransactionId() - reviewed_at: 1732563929240 - created_at: 1732563888541 - - target: $["paths"]["/v1/integrations/webhook/provider/{providerOrIntegrationId}/status"]["get"] + before: sdk.Topics.TopicsController_getTopic() + after: sdk.topics.get() + reviewed_at: 1732386050400 + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.Webhooks.IntegrationsController_getWebhookSupportStatus() - after: sdk.integrationsWebhooks.getStatus() + before: sdk.Subscribers.Credentials.SubscribersController_deleteSubscriberCredentials() + after: sdk.subscribers.credentials.delete() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 + disabled: true + - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback"]["get"] + x-speakeasy-metadata: + type: method-name + before: sdk.Subscribers.Authentication.chatAccessOauthCallBack() + after: sdk.subscribers.authentication.handleOauthCallback() + reviewed_at: 1732386050400 + created_at: 1732385969423 disabled: true - target: $["paths"]["/v1/subscribers"]["get"] x-speakeasy-metadata: @@ -272,35 +279,35 @@ actions: reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth"]["get"] + - target: $["paths"]["/v1/topics"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Authentication.chatAccessOauth() - after: sdk.subscribers.authentication.handleOauth() + before: sdk.Topics.TopicsController_listTopics() + after: sdk.topics.getAll() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers"]["post"] + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["put"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.SubscribersController_createSubscriber() - after: sdk.subscribers.create() + before: sdk.Subscribers.SubscribersController_updateSubscriber() + after: sdk.subscribers.update() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["get"] + - target: $["paths"]["/v1/environments/api-keys"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.retrieveByLevel() - after: sdk.subscribers.preferences.getByLevel() + before: sdk.Environments.ApiKeys.EnvironmentsControllerV1_listOrganizationApiKeys() + after: sdk.environments.apiKeys.list() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/credentials"]["put"] + - target: $["paths"]["/v1/notification-groups"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Credentials.SubscribersController_updateSubscriberChannel() - after: sdk.subscribers.credentials.update() + before: sdk.Workflow groups.NotificationGroupsController_listNotificationGroups() + after: sdk.workflowGroups.list() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true @@ -312,91 +319,83 @@ actions: reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences"]["get"] + - target: $["paths"]["/v1/messages/{messageId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.SubscribersController_listSubscriberPreferences() - after: sdk.subscribers.preferences.get() + before: sdk.Messages.MessagesController_deleteMessage() + after: sdk.messages.delete() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}"]["post"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-all"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Messages.updateAsSeen() - after: sdk.subscribersMessages.updateAsSeen() + before: sdk.Subscribers.Messages.markAll() + after: sdk.subscribersMessages.markAll() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/topics/{topicKey}/subscribers/{externalSubscriberId}"]["get"] + - target: $["paths"]["/v1/topics"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Topics.Subscribers.TopicsController_getTopicSubscriber() - after: sdk.topics.subscribers.check() + before: sdk.Topics.TopicsController_createTopic() + after: sdk.topics.create() reviewed_at: 1732386050400 - created_at: 1732385969424 + created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/environments/me"]["get"] + - target: $["paths"]["/v1/execution-details"]["get"] x-speakeasy-metadata: type: method-name - before: sdk.Environments.EnvironmentsControllerV1_getCurrentEnvironment() - after: sdk.environments.getCurrent() + before: sdk.Execution Details.ExecutionDetailsController_getExecutionDetailsForNotification() + after: sdk.executionDetails.get() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/mark-as"]["post"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/online-status"]["patch"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Messages.markAllAs() - after: sdk.subscribers.messages.mark() + before: sdk.Subscribers.properties.updateOnlineFlag() + after: sdk.subscribers.properties.updateOnlineStatus() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/integrations/{integrationId}/set-primary"]["post"] + - target: $["paths"]["/v1/subscribers/{subscriberId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Integrations.setAsPrimary() - after: sdk.integrations.setPrimary() + before: sdk.Subscribers.SubscribersController_removeSubscriber() + after: sdk.subscribers.delete() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/notifications/feed"]["get"] + - target: $["paths"]["/v1/integrations"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Notifications.SubscribersController_getNotificationsFeed() - after: sdk.subscribers.notifications.getFeed() + before: sdk.Integrations.IntegrationsController_createIntegration() + after: sdk.integrations.create() reviewed_at: 1732386050400 created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/notifications/{notificationId}"]["get"] + - target: $["paths"]["/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Notifications.NotificationsController_getNotification() - after: sdk.notifications.get() + before: sdk.Subscribers.Messages.updateAsSeen() + after: sdk.subscribersMessages.updateAsSeen() reviewed_at: 1732386050400 - created_at: 1732385969423 + created_at: 1732385969424 disabled: true - - target: $["paths"]["/v1/messages/{messageId}"]["delete"] + - target: $["paths"]["/v1/integrations/{integrationId}"]["delete"] x-speakeasy-metadata: type: method-name - before: sdk.Messages.MessagesController_deleteMessage() - after: sdk.messages.delete() + before: sdk.Integrations.IntegrationsController_removeIntegration() + after: sdk.integrations.delete() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true - - target: $["paths"]["/v1/topics/{topicKey}/subscribers/removal"]["post"] - x-speakeasy-metadata: - type: method-name - before: sdk.Topics.Subscribers.TopicsController_removeSubscribers() - after: sdk.topics.subscribers.remove() - reviewed_at: 1732386050400 - created_at: 1732385969424 - disabled: true - - target: $["paths"]["/v1/subscribers/{subscriberId}/preferences/{parameter}"]["patch"] + - target: $["paths"]["/v1/subscribers"]["post"] x-speakeasy-metadata: type: method-name - before: sdk.Subscribers.Preferences.SubscribersController_updateSubscriberPreference() - after: sdk.subscribers.preferences.update() + before: sdk.Subscribers.SubscribersController_createSubscriber() + after: sdk.subscribers.create() reviewed_at: 1732386050400 created_at: 1732385969423 disabled: true diff --git a/.speakeasy/temp/a32d33/openapi/bundle/openapi.json b/.speakeasy/temp/a32d33/openapi/bundle/openapi.json new file mode 100644 index 00000000..079d0850 --- /dev/null +++ b/.speakeasy/temp/a32d33/openapi/bundle/openapi.json @@ -0,0 +1 @@ +{"openapi": "3.0.0", "paths": {"/v1/environments/me": {"get": {"operationId": "EnvironmentsControllerV1_getCurrentEnvironment", "summary": "Get current environment", "parameters": [], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EnvironmentResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Environments"], "security": [{"api-key": []}]}}, "/v1/environments": {"get": {"operationId": "EnvironmentsControllerV1_listMyEnvironments", "summary": "Get environments", "parameters": [], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/EnvironmentResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Environments"], "security": [{"api-key": []}]}}, "/v1/environments/api-keys": {"get": {"operationId": "EnvironmentsControllerV1_listOrganizationApiKeys", "x-speakeasy-group": "Environments.ApiKeys", "summary": "Get api keys", "parameters": [], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ApiKey"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Environments"], "security": [{"api-key": []}]}}, "/v1/execution-details": {"get": {"operationId": "ExecutionDetailsController_getExecutionDetailsForNotification", "summary": "Get execution details", "parameters": [{"name": "notificationId", "required": true, "in": "query", "schema": {"type": "string"}}, {"name": "subscriberId", "required": true, "in": "query", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ExecutionDetailsResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Execution Details"], "security": [{"api-key": []}]}}, "/v1/events/trigger": {"post": {"operationId": "EventsController_trigger", "x-speakeasy-group": "", "x-speakeasy-usage-example": {"title": "Trigger Notification Event"}, "x-speakeasy-name-override": "trigger", "summary": "Trigger event", "description": "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n ", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerEventRequestDto"}}}}, "responses": {"201": {"description": "Created", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerEventResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Events"], "security": [{"api-key": []}]}}, "/v1/events/trigger/bulk": {"post": {"operationId": "EventsController_triggerBulk", "x-speakeasy-group": "", "x-speakeasy-usage-example": {"title": "Trigger Notification Events in Bulk"}, "x-speakeasy-name-override": "triggerBulk", "summary": "Bulk trigger event", "description": "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n ", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkTriggerEventDto"}}}}, "responses": {"201": {"description": "Created", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/TriggerEventResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Events"], "security": [{"api-key": []}]}}, "/v1/events/trigger/broadcast": {"post": {"operationId": "EventsController_broadcastEventToAll", "x-speakeasy-group": "", "x-speakeasy-usage-example": {"title": "Broadcast Event to All"}, "x-speakeasy-name-override": "triggerBroadcast", "summary": "Broadcast event to all", "description": "Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.\n\n In the future could be used to trigger events to a subset of subscribers based on defined filters.", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerEventToAllRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerEventResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Events"], "security": [{"api-key": []}]}}, "/v1/events/trigger/{transactionId}": {"delete": {"operationId": "EventsController_cancel", "x-speakeasy-group": "", "x-speakeasy-usage-example": {"title": "Cancel Triggered Event"}, "x-speakeasy-name-override": "cancelByTransactionId", "summary": "Cancel triggered event", "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ", "parameters": [{"name": "transactionId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DataBooleanDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Events"], "security": [{"api-key": []}]}}, "/v1/notifications": {"get": {"operationId": "NotificationsController_listNotifications", "summary": "Get notifications", "parameters": [{"name": "channels", "required": true, "in": "query", "schema": {"type": "array", "items": {"type": "string", "enum": ["in_app", "email", "sms", "chat", "push"]}}}, {"name": "templates", "required": true, "in": "query", "schema": {"type": "array", "items": {"type": "string"}}}, {"name": "emails", "required": true, "in": "query", "schema": {"type": "array", "items": {"type": "string"}}}, {"name": "search", "required": true, "in": "query", "deprecated": true, "schema": {"type": "string"}}, {"name": "subscriberIds", "required": true, "in": "query", "schema": {"type": "array", "items": {"type": "string"}}}, {"name": "page", "required": false, "in": "query", "schema": {"default": 0, "type": "number"}}, {"name": "transactionId", "required": false, "in": "query", "schema": {"type": "string"}}], "responses": {"200": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ActivitiesResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Notifications"], "security": [{"api-key": []}]}}, "/v1/notifications/stats": {"get": {"operationId": "NotificationsController_getActivityStats", "x-speakeasy-group": "Notifications.Stats", "summary": "Get notification statistics", "parameters": [], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ActivityStatsResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Notifications"], "security": [{"api-key": []}]}}, "/v1/notifications/graph/stats": {"get": {"operationId": "NotificationsController_getActivityGraphStats", "x-speakeasy-name-override": "graph", "x-speakeasy-group": "Notifications.Stats", "summary": "Get notification graph statistics", "parameters": [{"name": "days", "required": false, "in": "query", "schema": {"type": "number"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/ActivityGraphStatesResponse"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Notifications"], "security": [{"api-key": []}]}}, "/v1/notifications/{notificationId}": {"get": {"operationId": "NotificationsController_getNotification", "summary": "Get notification", "parameters": [{"name": "notificationId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ActivityNotificationResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Notifications"], "security": [{"api-key": []}]}}, "/v1/notification-groups": {"post": {"operationId": "NotificationGroupsController_createNotificationGroup", "summary": "Create workflow group", "description": "workflow group was previously named notification group", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateNotificationGroupRequestDto"}}}}, "responses": {"201": {"description": "Created", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotificationGroupResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Workflow groups"], "security": [{"api-key": []}]}, "get": {"operationId": "NotificationGroupsController_listNotificationGroups", "summary": "Get workflow groups", "description": "workflow group was previously named notification group", "parameters": [], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/NotificationGroupResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Workflow groups"], "security": [{"api-key": []}]}}, "/v1/notification-groups/{id}": {"get": {"operationId": "NotificationGroupsController_getNotificationGroup", "summary": "Get workflow group", "description": "workflow group was previously named notification group", "parameters": [{"name": "id", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotificationGroupResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Workflow groups"], "security": [{"api-key": []}]}, "patch": {"operationId": "NotificationGroupsController_updateNotificationGroup", "summary": "Update workflow group", "description": "workflow group was previously named notification group", "parameters": [{"name": "id", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateNotificationGroupRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NotificationGroupResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Workflow groups"], "security": [{"api-key": []}]}, "delete": {"operationId": "NotificationGroupsController_deleteNotificationGroup", "summary": "Delete workflow group", "description": "workflow group was previously named notification group", "parameters": [{"name": "id", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteNotificationGroupResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Workflow groups"], "security": [{"api-key": []}]}}, "/v1/integrations": {"get": {"operationId": "IntegrationsController_listIntegrations", "summary": "Get integrations", "description": "Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", "parameters": [], "responses": {"200": {"description": "The list of integrations belonging to the organization that are successfully returned.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/IntegrationResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Integrations"], "security": [{"api-key": []}]}, "post": {"operationId": "IntegrationsController_createIntegration", "summary": "Create integration", "description": "Create an integration for the current environment the user is based on the API key provided", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateIntegrationRequestDto"}}}}, "responses": {"201": {"description": "Created", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IntegrationResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Integrations"], "security": [{"api-key": []}]}}, "/v1/integrations/active": {"get": {"operationId": "IntegrationsController_getActiveIntegrations", "x-speakeasy-name-override": "listActive", "summary": "Get active integrations", "description": "Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", "parameters": [], "responses": {"200": {"description": "The list of active integrations belonging to the organization that are successfully returned.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/IntegrationResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Integrations"], "security": [{"api-key": []}]}}, "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": {"get": {"operationId": "IntegrationsController_getWebhookSupportStatus", "x-speakeasy-group": "Integrations.Webhooks", "summary": "Get webhook support status for provider", "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value", "parameters": [{"name": "providerOrIntegrationId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "The status of the webhook for the provider requested", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "boolean"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Integrations"], "security": [{"api-key": []}]}}, "/v1/integrations/{integrationId}": {"put": {"operationId": "IntegrationsController_updateIntegrationById", "summary": "Update integration", "parameters": [{"name": "integrationId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateIntegrationRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IntegrationResponseDto"}}}}, "404": {"description": "The integration with the integrationId provided does not exist in the database.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Integrations"], "security": [{"api-key": []}]}, "delete": {"operationId": "IntegrationsController_removeIntegration", "summary": "Delete integration", "parameters": [{"name": "integrationId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/IntegrationResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Integrations"], "security": [{"api-key": []}]}}, "/v1/integrations/{integrationId}/set-primary": {"post": {"operationId": "IntegrationsController_setIntegrationAsPrimary", "x-speakeasy-name-override": "setAsPrimary", "summary": "Set integration as primary", "parameters": [{"name": "integrationId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IntegrationResponseDto"}}}}, "404": {"description": "The integration with the integrationId provided does not exist in the database.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Integrations"], "security": [{"api-key": []}]}}, "/v1/subscribers": {"get": {"operationId": "SubscribersController_listSubscribers", "x-speakeasy-pagination": {"type": "offsetLimit", "inputs": [{"name": "page", "in": "parameters", "type": "page"}, {"name": "limit", "in": "parameters", "type": "limit"}], "outputs": {"results": "$.data.resultArray"}}, "summary": "Get subscribers", "description": "Returns a list of subscribers, could paginated using the `page` and `limit` query parameter", "parameters": [{"name": "page", "required": false, "in": "query", "schema": {"type": "number"}}, {"name": "limit", "required": false, "in": "query", "schema": {"maximum": 100, "default": 10, "type": "number"}}], "responses": {"200": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": "", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/PaginatedResponseDto"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/SubscriberResponseDto"}}}}]}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}, "post": {"operationId": "SubscribersController_createSubscriber", "summary": "Create subscriber", "description": "Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity.", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateSubscriberRequestDto"}}}}, "responses": {"201": {"description": "Created", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscriberResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}": {"get": {"operationId": "SubscribersController_getSubscriber", "summary": "Get subscriber", "description": "Get subscriber by your internal id used to identify the subscriber", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "includeTopics", "required": false, "in": "query", "description": "Includes the topics associated with the subscriber", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscriberResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}, "put": {"operationId": "SubscribersController_updateSubscriber", "summary": "Update subscriber", "description": "Used to update the subscriber entity with new information", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscriberResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}, "delete": {"operationId": "SubscribersController_removeSubscriber", "summary": "Delete subscriber", "description": "Deletes a subscriber entity from the Novu platform", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteSubscriberResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/bulk": {"post": {"operationId": "SubscribersController_bulkCreateSubscribers", "x-speakeasy-name-override": "createBulk", "summary": "Bulk create subscribers", "description": "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n ", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkSubscriberCreateDto"}}}}, "responses": {"201": {"description": ""}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/credentials": {"put": {"operationId": "SubscribersController_updateSubscriberChannel", "x-speakeasy-group": "Subscribers.Credentials", "summary": "Update subscriber credentials", "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscriberResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}, "patch": {"operationId": "SubscribersController_modifySubscriberChannel", "x-speakeasy-name-override": "append", "x-speakeasy-group": "Subscribers.Credentials", "summary": "Modify subscriber credentials", "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n\n This endpoint appends provided credentials and deviceTokens to the existing ones.", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscriberResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/credentials/{providerId}": {"delete": {"operationId": "SubscribersController_deleteSubscriberCredentials", "x-speakeasy-group": "Subscribers.Credentials", "summary": "Delete subscriber credentials by providerId", "description": "Delete subscriber credentials such as slack and expo tokens.", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "providerId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"204": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": ""}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/online-status": {"patch": {"operationId": "SubscribersController_updateSubscriberOnlineFlag", "x-speakeasy-name-override": "updateOnlineFlag", "x-speakeasy-group": "Subscribers.properties", "summary": "Update subscriber online status", "description": "Used to update the subscriber isOnline flag.", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberOnlineFlagRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SubscriberResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/preferences": {"get": {"operationId": "SubscribersController_listSubscriberPreferences", "x-speakeasy-group": "Subscribers.Preferences", "summary": "Get subscriber preferences", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "includeInactiveChannels", "required": false, "in": "query", "description": "A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true", "schema": {"type": "boolean"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}, "patch": {"operationId": "SubscribersController_updateSubscriberGlobalPreferences", "x-speakeasy-name-override": "updateGlobal", "x-speakeasy-group": "Subscribers.Preferences", "summary": "Update subscriber global preferences", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/preferences/{parameter}": {"get": {"operationId": "SubscribersController_getSubscriberPreferenceByLevel", "x-speakeasy-name-override": "retrieveByLevel", "x-speakeasy-group": "Subscribers.Preferences", "summary": "Get subscriber preferences by level", "parameters": [{"name": "includeInactiveChannels", "required": false, "in": "query", "description": "A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true", "schema": {"type": "boolean"}}, {"name": "parameter", "required": true, "in": "path", "description": "the preferences level to be retrieved (template / global) ", "schema": {"enum": ["global", "template"], "type": "string"}}, {"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/GetSubscriberPreferencesResponseDto"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}, "patch": {"operationId": "SubscribersController_updateSubscriberPreference", "x-speakeasy-group": "Subscribers.Preferences", "summary": "Update subscriber preference", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "parameter", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberPreferenceRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/notifications/feed": {"get": {"operationId": "SubscribersController_getNotificationsFeed", "x-speakeasy-group": "Subscribers.Notifications", "summary": "Get in-app notification feed for a particular subscriber", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "page", "required": false, "in": "query", "schema": {"type": "number"}}, {"name": "limit", "required": false, "in": "query", "schema": {"maximum": 100, "default": 10, "type": "number"}}, {"name": "read", "required": false, "in": "query", "schema": {"type": "boolean"}}, {"name": "seen", "required": false, "in": "query", "schema": {"type": "boolean"}}, {"name": "payload", "required": false, "in": "query", "description": "Base64 encoded string of the partial payload JSON object", "example": "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", "schema": {"type": "string"}}], "responses": {"200": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": "", "content": {"application/json": {"schema": {"allOf": [{"$ref": "#/components/schemas/PaginatedResponseDto"}, {"properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/FeedResponseDto"}}}}]}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/notifications/unseen": {"get": {"operationId": "SubscribersController_getUnseenCount", "x-speakeasy-name-override": "unseenCount", "x-speakeasy-group": "Subscribers.Notifications", "summary": "Get the unseen in-app notifications count for subscribers feed", "parameters": [{"name": "seen", "required": true, "in": "query", "schema": {"type": "boolean"}}, {"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "limit", "required": true, "in": "query", "schema": {"type": "number"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnseenCountResponse"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/messages/mark-as": {"post": {"operationId": "SubscribersController_markMessagesAs", "x-speakeasy-name-override": "markAllAs", "x-speakeasy-group": "Subscribers.Messages", "summary": "Mark a subscriber messages as seen, read, unseen or unread", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageMarkAsRequestDto"}}}}, "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"type": "array", "items": {"$ref": "#/components/schemas/MessageEntity"}}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/messages/mark-all": {"post": {"operationId": "SubscribersController_markAllUnreadAsRead", "x-speakeasy-name-override": "markAll", "x-speakeasy-group": "Subscribers.Messages", "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MarkAllMessageAsRequestDto"}}}}, "responses": {"201": {"description": "", "content": {"application/json": {"schema": {"type": "number"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}": {"post": {"operationId": "SubscribersController_markActionAsSeen", "x-speakeasy-name-override": "updateAsSeen", "x-speakeasy-group": "Subscribers.Messages", "summary": "Mark message action as seen", "parameters": [{"name": "messageId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "type", "required": true, "in": "path", "schema": {}}, {"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MarkMessageActionAsSeenDto"}}}}, "responses": {"201": {"description": "Created", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": {"get": {"operationId": "SubscribersController_chatOauthCallback", "x-speakeasy-name-override": "chatAccessOauthCallBack", "x-speakeasy-group": "Subscribers.Authentication", "summary": "Handle providers oauth redirect", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "providerId", "required": true, "in": "path", "schema": {}}, {"name": "code", "required": true, "in": "query", "schema": {"type": "string"}}, {"name": "hmacHash", "required": true, "in": "query", "schema": {"type": "string"}}, {"name": "environmentId", "required": true, "in": "query", "schema": {"type": "string"}}, {"name": "integrationIdentifier", "required": false, "in": "query", "schema": {"type": "string"}}], "responses": {"200": {"description": "", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": {"get": {"operationId": "SubscribersController_chatAccessOauth", "x-speakeasy-name-override": "chatAccessOauth", "x-speakeasy-group": "Subscribers.Authentication", "summary": "Handle chat oauth", "parameters": [{"name": "subscriberId", "required": true, "in": "path", "schema": {"type": "string"}}, {"name": "providerId", "required": true, "in": "path", "schema": {}}, {"name": "hmacHash", "required": true, "in": "query", "schema": {"type": "string"}}, {"name": "environmentId", "required": true, "in": "query", "schema": {"type": "string"}}, {"name": "integrationIdentifier", "required": false, "in": "query", "schema": {"type": "string"}}], "responses": {"200": {"description": ""}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Subscribers"], "security": [{"api-key": []}]}}, "/v1/messages": {"get": {"operationId": "MessagesController_getMessages", "summary": "Get messages", "description": "Returns a list of messages, could paginate using the `page` query parameter", "parameters": [{"name": "channel", "required": false, "in": "query", "schema": {"enum": ["in_app", "email", "sms", "chat", "push"], "type": "string"}}, {"name": "subscriberId", "required": false, "in": "query", "schema": {"type": "string"}}, {"name": "transactionId", "required": false, "in": "query", "schema": {"type": "array", "items": {"type": "string"}}}, {"name": "page", "required": false, "in": "query", "schema": {"default": 0, "type": "number"}}, {"name": "limit", "required": false, "in": "query", "schema": {"default": 10, "type": "number"}}], "responses": {"200": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ActivitiesResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Messages"], "security": [{"api-key": []}]}}, "/v1/messages/{messageId}": {"delete": {"operationId": "MessagesController_deleteMessage", "summary": "Delete message", "description": "Deletes a message entity from the Novu platform", "parameters": [{"name": "messageId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteMessageResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Messages"], "security": [{"api-key": []}]}}, "/v1/messages/transaction/{transactionId}": {"delete": {"operationId": "MessagesController_deleteMessagesByTransactionId", "x-speakeasy-name-override": "deleteByTransactionId", "summary": "Delete messages by transactionId", "description": "Deletes messages entity from the Novu platform using TransactionId of message", "parameters": [{"name": "channel", "required": false, "in": "query", "description": "The channel of the message to be deleted", "schema": {"enum": ["in_app", "email", "sms", "chat", "push"], "type": "string"}}, {"name": "transactionId", "required": true, "in": "path", "schema": {"type": "string"}}], "responses": {"204": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": ""}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Messages"], "security": [{"api-key": []}]}}, "/v1/topics": {"post": {"operationId": "TopicsController_createTopic", "summary": "Topic creation", "description": "Create a topic", "parameters": [], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateTopicRequestDto"}}}}, "responses": {"201": {"description": "Created", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateTopicResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}, "get": {"operationId": "TopicsController_listTopics", "summary": "Filter topics", "description": "Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter", "parameters": [{"name": "page", "required": false, "in": "query", "description": "Number of page for the pagination", "schema": {"minimum": 0, "default": 0, "type": "number"}}, {"name": "pageSize", "required": false, "in": "query", "description": "Size of page for the pagination", "schema": {"minimum": 0, "default": 10, "type": "number"}}, {"name": "key", "required": false, "in": "query", "description": "Topic key", "schema": {"type": "string"}}], "responses": {"200": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FilterTopicsResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}}, "/v1/topics/{topicKey}/subscribers": {"post": {"operationId": "TopicsController_addSubscribers", "x-speakeasy-name-override": "assign", "x-speakeasy-group": "Topics.Subscribers", "summary": "Subscribers addition", "description": "Add subscribers to a topic by key", "parameters": [{"name": "topicKey", "required": true, "in": "path", "description": "The topic key", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AddSubscribersRequestDto"}}}}, "responses": {"204": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": ""}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}}, "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": {"get": {"operationId": "TopicsController_getTopicSubscriber", "x-speakeasy-group": "Topics.Subscribers", "summary": "Check topic subscriber", "description": "Check if a subscriber belongs to a certain topic", "parameters": [{"name": "externalSubscriberId", "required": true, "in": "path", "description": "The external subscriber id", "schema": {"type": "string"}}, {"name": "topicKey", "required": true, "in": "path", "description": "The topic key", "schema": {"type": "string"}}], "responses": {"200": {"description": "", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TopicSubscriberDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}}, "/v1/topics/{topicKey}/subscribers/removal": {"post": {"operationId": "TopicsController_removeSubscribers", "x-speakeasy-group": "Topics.Subscribers", "summary": "Subscribers removal", "description": "Remove subscribers from a topic", "parameters": [{"name": "topicKey", "required": true, "in": "path", "description": "The topic key", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RemoveSubscribersRequestDto"}}}}, "responses": {"204": {"headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "description": ""}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}}, "/v1/topics/{topicKey}": {"delete": {"operationId": "TopicsController_deleteTopic", "summary": "Delete topic", "description": "Delete a topic by its topic key if it has no subscribers", "parameters": [{"name": "topicKey", "required": true, "in": "path", "description": "The topic key", "schema": {"type": "string"}}], "responses": {"204": {"description": "The topic has been deleted correctly", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}}, "404": {"description": "The topic with the key provided does not exist in the database so it can not be deleted.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}}, "409": {"description": "The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}, "get": {"operationId": "TopicsController_getTopic", "summary": "Get topic", "description": "Get a topic by its topic key", "parameters": [{"name": "topicKey", "required": true, "in": "path", "description": "The topic key", "schema": {"type": "string"}}], "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetTopicResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}, "patch": {"operationId": "TopicsController_renameTopic", "x-speakeasy-name-override": "rename", "summary": "Rename a topic", "description": "Rename a topic by providing a new name", "parameters": [{"name": "topicKey", "required": true, "in": "path", "description": "The topic key", "schema": {"type": "string"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RenameTopicRequestDto"}}}}, "responses": {"200": {"description": "Ok", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}}, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RenameTopicResponseDto"}}}}, "409": {"description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}, "Link": {"$ref": "#/components/headers/Link"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second"}}}}, "429": {"description": "The client has sent too many requests in a given amount of time. ", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "API rate limit exceeded"}}}}, "503": {"description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", "headers": {"Content-Type": {"$ref": "#/components/headers/Content-Type"}, "RateLimit-Limit": {"$ref": "#/components/headers/RateLimit-Limit"}, "RateLimit-Remaining": {"$ref": "#/components/headers/RateLimit-Remaining"}, "RateLimit-Reset": {"$ref": "#/components/headers/RateLimit-Reset"}, "RateLimit-Policy": {"$ref": "#/components/headers/RateLimit-Policy"}, "Idempotency-Key": {"$ref": "#/components/headers/Idempotency-Key"}, "Idempotency-Replay": {"$ref": "#/components/headers/Idempotency-Replay"}, "Retry-After": {"$ref": "#/components/headers/Retry-After"}}, "content": {"application/json": {"schema": {"type": "string", "example": "Please wait some time, then try again."}}}}}, "tags": ["Topics"], "security": [{"api-key": []}]}}}, "info": {"title": "Novu API", "description": "Novu REST API. Please see https://docs.novu.co/api-reference for more details.", "version": "1.0", "contact": {"name": "Novu Support", "url": "https://discord.gg/novu", "email": "support@novu.co"}, "termsOfService": "https://novu.co/terms", "license": {"name": "MIT", "url": "https://opensource.org/license/mit"}}, "tags": [{"name": "Events", "description": "Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions.", "externalDocs": {"url": "https://docs.novu.co/workflows"}}, {"name": "Subscribers", "description": "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.", "externalDocs": {"url": "https://docs.novu.co/subscribers/subscribers"}}, {"name": "Topics", "description": "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.", "externalDocs": {"url": "https://docs.novu.co/subscribers/topics"}}, {"name": "Notification", "description": "A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness.", "externalDocs": {"url": "https://docs.novu.co/getting-started/introduction"}}, {"name": "Integrations", "description": "With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers.", "externalDocs": {"url": "https://docs.novu.co/channels-and-providers/integration-store"}}, {"name": "Layouts", "description": "Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform.", "externalDocs": {"url": "https://docs.novu.co/content-creation-design/layouts"}}, {"name": "Workflows", "description": "All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system.", "externalDocs": {"url": "https://docs.novu.co/workflows"}}, {"name": "Notification Templates", "description": "Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name."}, {"name": "Workflow groups", "description": "Workflow groups are used to organize workflows into logical groups."}, {"name": "Changes", "description": "Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready.", "externalDocs": {"url": "https://docs.novu.co/platform/environments#promoting-pending-changes-to-production"}}, {"name": "Environments", "description": "Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another.", "externalDocs": {"url": "https://docs.novu.co/platform/environments"}}, {"name": "Inbound Parse", "description": "Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format.", "externalDocs": {"url": "https://docs.novu.co/platform/inbound-parse-webhook"}}, {"name": "Feeds", "description": "Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type.", "externalDocs": {"url": "https://docs.novu.co/activity-feed"}}, {"name": "Tenants", "description": "A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations.", "externalDocs": {"url": "https://docs.novu.co/tenants"}}, {"name": "Messages", "description": "A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages.", "externalDocs": {"url": "https://docs.novu.co/workflows/messages"}}, {"name": "Organizations", "description": "An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account.", "externalDocs": {"url": "https://docs.novu.co/platform/organizations"}}, {"name": "Execution Details", "description": "Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution.", "externalDocs": {"url": "https://docs.novu.co/activity-feed"}}], "servers": [{"url": "https://api.novu.co"}, {"url": "https://eu.api.novu.co"}], "components": {"securitySchemes": {"api-key": {"type": "apiKey", "in": "header", "name": "Authorization", "description": "API key authentication. Allowed headers-- \"Authorization: ApiKey \"."}}, "schemas": {"DataWrapperDto": {"type": "object", "properties": {"data": {"type": "object"}}, "required": ["data"]}, "EnvironmentResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "name": {"type": "string"}, "_organizationId": {"type": "string"}, "identifier": {"type": "string"}, "apiKeys": {"type": "array", "items": {"type": "string"}}, "_parentId": {"type": "string"}, "slug": {"type": "string"}}, "required": ["name", "_organizationId", "identifier", "_parentId"]}, "ApiKey": {"type": "object", "properties": {"key": {"type": "string"}, "_userId": {"type": "string"}}, "required": ["key", "_userId"]}, "ExecutionDetailsResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "_organizationId": {"type": "string"}, "_jobId": {"type": "string"}, "_environmentId": {"type": "string"}, "_notificationId": {"type": "string"}, "_notificationTemplateId": {"type": "string"}, "_subscriberId": {"type": "string"}, "_messageId": {"type": "string"}, "providerId": {"type": "string"}, "transactionId": {"type": "string"}, "channel": {"type": "string", "enum": ["in_app", "email", "sms", "chat", "push", "digest", "trigger", "delay", "custom"]}, "detail": {"type": "string"}, "source": {"type": "string", "enum": ["Credentials", "Internal", "Payload", "Webhook"]}, "status": {"type": "string", "enum": ["Success", "Warning", "Failed", "Pending", "Queued", "ReadConfirmation"]}, "isTest": {"type": "boolean"}, "isRetry": {"type": "boolean"}, "createdAt": {"type": "string"}}, "required": ["_organizationId", "_jobId", "_environmentId", "_notificationId", "_notificationTemplateId", "_subscriberId", "transactionId", "channel", "detail", "source", "status", "isTest", "isRetry"]}, "TriggerEventResponseDto": {"type": "object", "properties": {"acknowledged": {"type": "boolean", "description": "If trigger was acknowledged or not"}, "status": {"enum": ["error", "trigger_not_active", "no_workflow_active_steps_defined", "no_workflow_steps_defined", "processed", "subscriber_id_missing", "no_tenant_found"], "type": "string", "description": "Status for trigger"}, "error": {"description": "In case of an error, this field will contain the error message", "type": "array", "items": {"type": "string"}}, "transactionId": {"type": "string", "description": "Transaction id for trigger"}}, "required": ["acknowledged", "status"]}, "TopicPayloadDto": {"type": "object", "properties": {"topicKey": {"type": "string"}, "type": {"enum": ["Subscriber", "Topic"], "type": "string", "example": "Topic"}}, "required": ["topicKey", "type"]}, "TenantPayloadDto": {"type": "object", "properties": {"identifier": {"type": "string"}, "name": {"type": "string"}, "data": {"type": "object"}}}, "SubscriberPayloadDto": {"type": "object", "properties": {"subscriberId": {"type": "string", "description": "The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems"}, "email": {"type": "string"}, "firstName": {"type": "string"}, "lastName": {"type": "string"}, "phone": {"type": "string"}, "avatar": {"type": "string", "description": "An http url to the profile image of your subscriber"}, "locale": {"type": "string"}, "data": {"type": "object"}, "channels": {"type": "array", "items": {"type": "string"}}}, "required": ["subscriberId"]}, "TriggerEventRequestDto": {"type": "object", "properties": {"name": {"type": "string", "description": "The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page.", "example": "workflow_identifier"}, "payload": {"type": "object", "description": "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI.", "example": {"comment_id": "string", "post": {"text": "string"}}}, "overrides": {"type": "object", "description": "This could be used to override provider specific configurations", "example": {"fcm": {"data": {"key": "value"}}}}, "to": {"type": "array", "description": "The recipients list of people who will receive the notification.", "items": {"oneOf": [{"$ref": "#/components/schemas/SubscriberPayloadDto"}, {"type": "string", "description": "Unique identifier of a subscriber in your systems", "example": "SUBSCRIBER_ID"}, {"$ref": "#/components/schemas/TopicPayloadDto"}]}}, "transactionId": {"type": "string", "description": "A unique identifier for this transaction, we will generated a UUID if not provided."}, "actor": {"description": "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n ", "oneOf": [{"type": "string", "description": "Unique identifier of a subscriber in your systems"}, {"$ref": "#/components/schemas/SubscriberPayloadDto"}]}, "tenant": {"description": "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n ", "oneOf": [{"type": "string", "description": "Unique identifier of a tenant in your system"}, {"$ref": "#/components/schemas/TenantPayloadDto"}]}, "bridgeUrl": {"type": "string"}, "controls": {"type": "object"}}, "required": ["name", "to"]}, "BulkTriggerEventDto": {"type": "object", "properties": {"events": {"type": "array", "items": {"$ref": "#/components/schemas/TriggerEventRequestDto"}}}, "required": ["events"]}, "TriggerEventToAllRequestDto": {"type": "object", "properties": {"name": {"type": "string", "description": "The trigger identifier associated for the template you wish to send. This identifier can be found on the template page."}, "payload": {"type": "object", "description": "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI.", "example": {"comment_id": "string", "post": {"text": "string"}}}, "overrides": {"type": "object", "description": "This could be used to override provider specific configurations", "example": {"fcm": {"data": {"key": "value"}}}}, "transactionId": {"type": "string", "description": "A unique identifier for this transaction, we will generated a UUID if not provided."}, "actor": {"description": "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n ", "oneOf": [{"type": "string", "description": "Unique identifier of a subscriber in your systems"}, {"$ref": "#/components/schemas/SubscriberPayloadDto"}]}, "tenant": {"description": "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n ", "oneOf": [{"type": "string", "description": "Unique identifier of a tenant in your system"}, {"$ref": "#/components/schemas/TenantPayloadDto"}]}}, "required": ["name", "payload"]}, "DataBooleanDto": {"type": "object", "properties": {"data": {"type": "boolean"}}, "required": ["data"]}, "ActivitiesResponseDto": {"type": "object", "properties": {"hasMore": {"type": "boolean"}, "data": {"type": "array", "items": {"type": "string"}}, "pageSize": {"type": "number"}, "page": {"type": "number"}}, "required": ["hasMore", "data", "pageSize", "page"]}, "ActivityStatsResponseDto": {"type": "object", "properties": {"weeklySent": {"type": "number"}, "monthlySent": {"type": "number"}}, "required": ["weeklySent", "monthlySent"]}, "ActivityGraphStatesResponse": {"type": "object", "properties": {"_id": {"type": "string"}, "count": {"type": "number"}, "templates": {"type": "array", "items": {"type": "string"}}, "channels": {"type": "array", "items": {"type": "string", "enum": ["in_app", "email", "sms", "chat", "push"]}}}, "required": ["_id", "count", "templates", "channels"]}, "ActivityNotificationSubscriberResponseDto": {"type": "object", "properties": {"firstName": {"type": "string"}, "_id": {"type": "string"}, "lastName": {"type": "string"}, "email": {"type": "string"}, "phone": {"type": "string"}}, "required": ["_id"]}, "ActivityNotificationTemplateResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "name": {"type": "string"}, "triggers": {"type": "array", "items": {"type": "string"}}}, "required": ["name", "triggers"]}, "ActivityNotificationResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "_environmentId": {"type": "string"}, "_organizationId": {"type": "string"}, "transactionId": {"type": "string"}, "createdAt": {"type": "string"}, "channels": {"type": "string", "items": {"type": "string", "enum": ["in_app", "email", "sms", "chat", "push", "digest", "trigger", "delay", "custom"]}, "enum": ["in_app", "email", "sms", "chat", "push", "digest", "trigger", "delay", "custom"]}, "subscriber": {"$ref": "#/components/schemas/ActivityNotificationSubscriberResponseDto"}, "template": {"$ref": "#/components/schemas/ActivityNotificationTemplateResponseDto"}, "jobs": {"type": "array", "items": {"type": "string"}}}, "required": ["_environmentId", "_organizationId", "transactionId"]}, "NotificationGroupResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "name": {"type": "string"}, "_environmentId": {"type": "string"}, "_organizationId": {"type": "string"}, "_parentId": {"type": "string"}}, "required": ["name", "_environmentId", "_organizationId"]}, "CreateNotificationGroupRequestDto": {"type": "object", "properties": {"name": {"type": "string"}}, "required": ["name"]}, "DeleteNotificationGroupResponseDto": {"type": "object", "properties": {"acknowledged": {"type": "boolean", "description": "A boolean stating the success of the action"}, "status": {"type": "string", "description": "The status enum for the performed action", "enum": ["deleted"]}}, "required": ["acknowledged", "status"]}, "CredentialsDto": {"type": "object", "properties": {"apiKey": {"type": "string"}, "user": {"type": "string"}, "secretKey": {"type": "string"}, "domain": {"type": "string"}, "password": {"type": "string"}, "host": {"type": "string"}, "port": {"type": "string"}, "secure": {"type": "boolean"}, "region": {"type": "string"}, "accountSid": {"type": "string"}, "messageProfileId": {"type": "string"}, "token": {"type": "string"}, "from": {"type": "string"}, "senderName": {"type": "string"}, "projectName": {"type": "string"}, "applicationId": {"type": "string"}, "clientId": {"type": "string"}, "requireTls": {"type": "boolean"}, "ignoreTls": {"type": "boolean"}, "tlsOptions": {"type": "object"}, "baseUrl": {"type": "string"}, "webhookUrl": {"type": "string"}, "redirectUrl": {"type": "string"}, "hmac": {"type": "boolean"}, "serviceAccount": {"type": "string"}, "ipPoolName": {"type": "string"}, "apiKeyRequestHeader": {"type": "string"}, "secretKeyRequestHeader": {"type": "string"}, "idPath": {"type": "string"}, "datePath": {"type": "string"}, "apiToken": {"type": "string"}, "authenticateByToken": {"type": "boolean"}, "authenticationTokenKey": {"type": "string"}, "instanceId": {"type": "string"}, "alertUid": {"type": "string"}, "title": {"type": "string"}, "imageUrl": {"type": "string"}, "state": {"type": "string"}, "externalLink": {"type": "string"}, "channelId": {"type": "string"}, "phoneNumberIdentification": {"type": "string"}, "accessKey": {"type": "string"}}}, "FieldFilterPart": {"type": "object", "properties": {"field": {"type": "string"}, "value": {"type": "string"}, "operator": {"type": "string", "enum": ["LARGER", "SMALLER", "LARGER_EQUAL", "SMALLER_EQUAL", "EQUAL", "NOT_EQUAL", "ALL_IN", "ANY_IN", "NOT_IN", "BETWEEN", "NOT_BETWEEN", "LIKE", "NOT_LIKE", "IN"]}, "on": {"type": "string", "enum": ["subscriber", "payload"]}}, "required": ["field", "value", "operator", "on"]}, "StepFilter": {"type": "object", "properties": {"isNegated": {"type": "boolean"}, "type": {"type": "string", "enum": ["BOOLEAN", "TEXT", "DATE", "NUMBER", "STATEMENT", "LIST", "MULTI_LIST", "GROUP"]}, "value": {"type": "string", "enum": ["AND", "OR"]}, "children": {"type": "array", "items": {"$ref": "#/components/schemas/FieldFilterPart"}}}, "required": ["isNegated", "type", "value", "children"]}, "IntegrationResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "_environmentId": {"type": "string"}, "_organizationId": {"type": "string"}, "name": {"type": "string"}, "identifier": {"type": "string"}, "providerId": {"type": "string"}, "channel": {"enum": ["in_app", "email", "sms", "chat", "push"], "type": "string"}, "credentials": {"$ref": "#/components/schemas/CredentialsDto"}, "active": {"type": "boolean"}, "deleted": {"type": "boolean"}, "deletedAt": {"type": "string"}, "deletedBy": {"type": "string"}, "primary": {"type": "boolean"}, "conditions": {"type": "array", "items": {"$ref": "#/components/schemas/StepFilter"}}}, "required": ["_environmentId", "_organizationId", "name", "identifier", "providerId", "channel", "credentials", "active", "deleted", "deletedAt", "deletedBy", "primary"]}, "CreateIntegrationRequestDto": {"type": "object", "properties": {"name": {"type": "string"}, "identifier": {"type": "string"}, "_environmentId": {"type": "string"}, "providerId": {"type": "string"}, "channel": {"enum": ["in_app", "email", "sms", "chat", "push"], "type": "string"}, "credentials": {"$ref": "#/components/schemas/CredentialsDto"}, "active": {"type": "boolean", "description": "If the integration is active the validation on the credentials field will run"}, "check": {"type": "boolean"}, "conditions": {"type": "array", "items": {"$ref": "#/components/schemas/StepFilter"}}}, "required": ["providerId", "channel"]}, "UpdateIntegrationRequestDto": {"type": "object", "properties": {"name": {"type": "string"}, "identifier": {"type": "string"}, "_environmentId": {"type": "string"}, "active": {"type": "boolean", "description": "If the integration is active the validation on the credentials field will run"}, "credentials": {"$ref": "#/components/schemas/CredentialsDto"}, "removeNovuBranding": {"type": "boolean", "description": "If true, the Novu branding will be removed from the Inbox component"}, "check": {"type": "boolean"}, "conditions": {"type": "array", "items": {"$ref": "#/components/schemas/StepFilter"}}}}, "PaginatedResponseDto": {"type": "object", "properties": {"page": {"type": "number", "description": "The current page of the paginated response"}, "hasMore": {"type": "boolean", "description": "Does the list have more items to fetch"}, "pageSize": {"type": "number", "description": "Number of items on each page"}, "data": {"description": "The list of items matching the query", "type": "array", "items": {"type": "object"}}}, "required": ["page", "hasMore", "pageSize", "data"]}, "ChannelCredentials": {"type": "object", "properties": {"webhookUrl": {"type": "string", "description": "Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider."}, "channel": {"type": "string", "description": "Channel specification for Mattermost chat notifications"}, "deviceTokens": {"description": "Contains an array of the subscriber device tokens for a given provider. Used on Push integrations", "type": "array", "items": {"type": "string"}}, "alertUid": {"type": "string", "description": "alert_uid for grafana on-call webhook payload"}, "title": {"type": "string", "description": "title to be used with grafana on call webhook"}, "imageUrl": {"type": "string", "description": "image_url property fo grafana on call webhook"}, "state": {"type": "string", "description": "state property fo grafana on call webhook"}, "externalUrl": {"type": "string", "description": "link_to_upstream_details property fo grafana on call webhook"}}, "required": ["webhookUrl"]}, "ChannelSettings": {"type": "object", "properties": {"providerId": {"type": "string", "enum": ["slack", "discord", "msteams", "mattermost", "ryver", "zulip", "grafana-on-call", "getstream", "rocket-chat", "whatsapp-business", "fcm", "apns", "expo", "one-signal", "pushpad", "push-webhook", "pusher-beams"], "description": "The provider identifier for the credentials"}, "integrationIdentifier": {"type": "string", "description": "The integration identifier"}, "credentials": {"description": "Credentials payload for the specified provider", "allOf": [{"$ref": "#/components/schemas/ChannelCredentials"}]}, "_integrationId": {"type": "string", "description": "Id of the integration that is used for this channel"}}, "required": ["providerId", "credentials", "_integrationId"]}, "SubscriberResponseDto": {"type": "object", "properties": {"_id": {"type": "string", "description": "The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that"}, "firstName": {"type": "string"}, "lastName": {"type": "string"}, "email": {"type": "string"}, "phone": {"type": "string"}, "avatar": {"type": "string"}, "locale": {"type": "string"}, "subscriberId": {"type": "string", "description": "The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems"}, "channels": {"description": "Channels settings for subscriber", "type": "array", "items": {"$ref": "#/components/schemas/ChannelSettings"}}, "topics": {"description": "Topics that subscriber belongs to", "type": "array", "items": {"type": "string"}}, "isOnline": {"type": "boolean"}, "lastOnlineAt": {"type": "string"}, "_organizationId": {"type": "string"}, "_environmentId": {"type": "string"}, "deleted": {"type": "boolean"}, "createdAt": {"type": "string"}, "updatedAt": {"type": "string"}, "__v": {"type": "number"}}, "required": ["subscriberId", "_organizationId", "_environmentId", "deleted", "createdAt", "updatedAt"]}, "CreateSubscriberRequestDto": {"type": "object", "properties": {"subscriberId": {"type": "string", "description": "The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems"}, "email": {"type": "string"}, "firstName": {"type": "string"}, "lastName": {"type": "string"}, "phone": {"type": "string"}, "avatar": {"type": "string", "description": "An http url to the profile image of your subscriber"}, "locale": {"type": "string"}, "data": {"type": "object"}, "channels": {"type": "array", "items": {"type": "string"}}}, "required": ["subscriberId"]}, "BulkSubscriberCreateDto": {"type": "object", "properties": {"subscribers": {"type": "array", "items": {"type": "string"}}}, "required": ["subscribers"]}, "UpdateSubscriberRequestDto": {"type": "object", "properties": {"email": {"type": "string"}, "firstName": {"type": "string"}, "lastName": {"type": "string"}, "phone": {"type": "string"}, "avatar": {"type": "string"}, "locale": {"type": "string"}, "data": {"type": "object"}, "channels": {"type": "array", "items": {"type": "string"}}}}, "UpdateSubscriberChannelRequestDto": {"type": "object", "properties": {"providerId": {"type": "string", "enum": ["slack", "discord", "msteams", "mattermost", "ryver", "zulip", "grafana-on-call", "getstream", "rocket-chat", "whatsapp-business", "fcm", "apns", "expo", "one-signal", "pushpad", "push-webhook", "pusher-beams"], "description": "The provider identifier for the credentials"}, "integrationIdentifier": {"type": "string", "description": "The integration identifier"}, "credentials": {"description": "Credentials payload for the specified provider", "allOf": [{"$ref": "#/components/schemas/ChannelCredentials"}]}}, "required": ["providerId", "credentials"]}, "UpdateSubscriberOnlineFlagRequestDto": {"type": "object", "properties": {"isOnline": {"type": "boolean"}}, "required": ["isOnline"]}, "DeleteSubscriberResponseDto": {"type": "object", "properties": {"acknowledged": {"type": "boolean", "description": "A boolean stating the success of the action"}, "status": {"type": "string", "description": "The status enum for the performed action", "enum": ["deleted"]}}, "required": ["acknowledged", "status"]}, "TemplateResponse": {"type": "object", "properties": {"_id": {"type": "string", "description": "Unique identifier of the workflow"}, "name": {"type": "string", "description": "Name of the workflow"}, "critical": {"type": "boolean", "description": "Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen"}, "triggers": {"description": "Triggers are the events that will trigger the workflow.", "type": "array", "items": {"type": "string"}}}, "required": ["_id", "name", "critical", "triggers"]}, "PreferenceChannels": {"type": "object", "properties": {"email": {"type": "boolean"}, "sms": {"type": "boolean"}, "in_app": {"type": "boolean"}, "chat": {"type": "boolean"}, "push": {"type": "boolean"}}}, "Preference": {"type": "object", "properties": {"enabled": {"type": "boolean", "description": "Sets if the workflow is fully enabled for all channels or not for the subscriber."}, "channels": {"description": "Subscriber preferences for the different channels regarding this workflow", "allOf": [{"$ref": "#/components/schemas/PreferenceChannels"}]}}, "required": ["enabled", "channels"]}, "UpdateSubscriberPreferenceResponseDto": {"type": "object", "properties": {"template": {"description": "The workflow information and if it is critical or not", "allOf": [{"$ref": "#/components/schemas/TemplateResponse"}]}, "preference": {"description": "The preferences of the subscriber regarding the related workflow", "allOf": [{"$ref": "#/components/schemas/Preference"}]}}, "required": ["template", "preference"]}, "GetSubscriberPreferencesResponseDto": {"type": "object", "properties": {"template": {"description": "The workflow information and if it is critical or not", "allOf": [{"$ref": "#/components/schemas/TemplateResponse"}]}, "preference": {"description": "The preferences of the subscriber regarding the related workflow", "allOf": [{"$ref": "#/components/schemas/Preference"}]}}, "required": ["preference"]}, "ChannelPreference": {"type": "object", "properties": {"type": {"type": "string", "enum": ["in_app", "email", "sms", "chat", "push"], "description": "The type of channel that is enabled or not"}, "enabled": {"type": "boolean", "description": "If channel is enabled or not"}}, "required": ["type", "enabled"]}, "UpdateSubscriberPreferenceRequestDto": {"type": "object", "properties": {"channel": {"description": "The subscriber preferences for every ChannelTypeEnum for the workflow assigned.", "allOf": [{"$ref": "#/components/schemas/ChannelPreference"}]}, "enabled": {"type": "boolean", "description": "Sets if the workflow is fully enabled for all channels or not for the subscriber."}}}, "UpdateSubscriberGlobalPreferencesRequestDto": {"type": "object", "properties": {"enabled": {"type": "boolean", "description": "Enable or disable the subscriber global preferences."}, "preferences": {"description": "The subscriber global preferences for every ChannelTypeEnum.", "type": "array", "items": {"$ref": "#/components/schemas/ChannelPreference"}}}}, "FeedResponseDto": {"type": "object", "properties": {"totalCount": {"type": "number"}, "hasMore": {"type": "boolean"}, "data": {"type": "array", "items": {"type": "string"}}, "pageSize": {"type": "number"}, "page": {"type": "number"}}, "required": ["hasMore", "data", "pageSize", "page"]}, "UnseenCountResponse": {"type": "object", "properties": {"count": {"type": "number"}}, "required": ["count"]}, "MessageMarkAsRequestDto": {"type": "object", "properties": {"messageId": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"type": "string"}}]}, "markAs": {"enum": ["read", "seen", "unread", "unseen"], "type": "string"}}, "required": ["messageId", "markAs"]}, "MessageEntity": {"type": "object", "properties": {}}, "MarkAllMessageAsRequestDto": {"type": "object", "properties": {"feedIdentifier": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"type": "string"}}], "description": "Optional feed identifier or array of feed identifiers"}, "markAs": {"enum": ["read", "seen", "unread", "unseen"], "type": "string", "description": "Mark all subscriber messages as read, unread, seen or unseen"}}, "required": ["markAs"]}, "EmailBlockStyles": {"type": "object", "properties": {"textAlign": {"type": "string", "enum": ["center", "left", "right"]}}, "required": ["textAlign"]}, "EmailBlock": {"type": "object", "properties": {"type": {"enum": ["button", "text"], "type": "string"}, "content": {"type": "string"}, "url": {"type": "string"}, "styles": {"$ref": "#/components/schemas/EmailBlockStyles"}}, "required": ["type", "content"]}, "MessageCTAData": {"type": "object", "properties": {"url": {"type": "string"}}}, "MessageButton": {"type": "object", "properties": {"type": {"type": "string", "enum": ["primary", "secondary"]}, "content": {"type": "string"}, "resultContent": {"type": "string"}}, "required": ["type", "content"]}, "MessageActionResult": {"type": "object", "properties": {"payload": {"type": "object"}, "type": {"type": "string", "enum": ["primary", "secondary"]}}}, "MessageAction": {"type": "object", "properties": {"status": {"type": "string", "enum": ["pending", "done"]}, "buttons": {"type": "array", "items": {"$ref": "#/components/schemas/MessageButton"}}, "result": {"$ref": "#/components/schemas/MessageActionResult"}}}, "MessageCTA": {"type": "object", "properties": {"type": {"type": "string", "enum": ["redirect"]}, "data": {"$ref": "#/components/schemas/MessageCTAData"}, "action": {"$ref": "#/components/schemas/MessageAction"}}, "required": ["data"]}, "NotificationGroup": {"type": "object", "properties": {"_id": {"type": "string"}, "name": {"type": "string"}, "_environmentId": {"type": "string"}, "_organizationId": {"type": "string"}, "_parentId": {"type": "string"}}, "required": ["name", "_environmentId", "_organizationId"]}, "DigestRegularMetadata": {"type": "object", "properties": {"amount": {"type": "number"}, "unit": {"type": "string", "enum": ["seconds", "minutes", "hours", "days", "weeks", "months"]}, "digestKey": {"type": "string"}, "type": {"type": "string", "enum": ["regular", "backoff"]}, "backoff": {"type": "boolean"}, "backoffAmount": {"type": "number"}, "backoffUnit": {"type": "string", "enum": ["seconds", "minutes", "hours", "days", "weeks", "months"]}, "updateMode": {"type": "boolean"}}, "required": ["type"]}, "TimedConfig": {"type": "object", "properties": {"atTime": {"type": "string"}, "weekDays": {"type": "array", "items": {"type": "string", "enum": ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]}}, "monthDays": {"type": "array", "items": {"type": "string"}}, "ordinal": {"type": "string", "enum": ["1", "2", "3", "4", "5", "last"]}, "ordinalValue": {"type": "string", "enum": ["day", "weekday", "weekend", "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"]}, "monthlyType": {"type": "string", "enum": ["each", "on"]}}}, "DigestTimedMetadata": {"type": "object", "properties": {"amount": {"type": "number"}, "unit": {"type": "string", "enum": ["seconds", "minutes", "hours", "days", "weeks", "months"]}, "digestKey": {"type": "string"}, "type": {"type": "string", "enum": ["timed"]}, "timed": {"$ref": "#/components/schemas/TimedConfig"}}, "required": ["type"]}, "DelayRegularMetadata": {"type": "object", "properties": {"amount": {"type": "number"}, "unit": {"type": "string", "enum": ["seconds", "minutes", "hours", "days", "weeks", "months"]}, "type": {"type": "string", "enum": ["regular"]}}, "required": ["type"]}, "DelayScheduledMetadata": {"type": "object", "properties": {"type": {"type": "string", "enum": ["scheduled"]}, "delayPath": {"type": "string"}}, "required": ["type", "delayPath"]}, "MessageTemplate": {"type": "object", "properties": {}}, "NotificationStepVariant": {"type": "object", "properties": {"_id": {"type": "string"}, "uuid": {"type": "string"}, "name": {"type": "string"}, "_templateId": {"type": "string"}, "active": {"type": "boolean"}, "shouldStopOnFail": {"type": "boolean"}, "template": {"$ref": "#/components/schemas/MessageTemplate"}, "filters": {"type": "array", "items": {"$ref": "#/components/schemas/StepFilter"}}, "_parentId": {"type": "object"}, "metadata": {"oneOf": [{"$ref": "#/components/schemas/DigestRegularMetadata"}, {"$ref": "#/components/schemas/DigestTimedMetadata"}, {"$ref": "#/components/schemas/DelayRegularMetadata"}, {"$ref": "#/components/schemas/DelayScheduledMetadata"}]}, "replyCallback": {"type": "object"}}}, "NotificationStep": {"type": "object", "properties": {"_id": {"type": "string"}, "uuid": {"type": "string"}, "name": {"type": "string"}, "_templateId": {"type": "string"}, "active": {"type": "boolean"}, "shouldStopOnFail": {"type": "boolean"}, "template": {"$ref": "#/components/schemas/MessageTemplate"}, "filters": {"type": "array", "items": {"$ref": "#/components/schemas/StepFilter"}}, "_parentId": {"type": "object"}, "metadata": {"oneOf": [{"$ref": "#/components/schemas/DigestRegularMetadata"}, {"$ref": "#/components/schemas/DigestTimedMetadata"}, {"$ref": "#/components/schemas/DelayRegularMetadata"}, {"$ref": "#/components/schemas/DelayScheduledMetadata"}]}, "replyCallback": {"type": "object"}, "variants": {"$ref": "#/components/schemas/NotificationStepVariant"}}}, "NotificationTriggerVariable": {"type": "object", "properties": {"name": {"type": "string"}}, "required": ["name"]}, "NotificationTrigger": {"type": "object", "properties": {"type": {"type": "string", "enum": ["event"]}, "identifier": {"type": "string"}, "variables": {"type": "array", "items": {"$ref": "#/components/schemas/NotificationTriggerVariable"}}, "subscriberVariables": {"type": "array", "items": {"$ref": "#/components/schemas/NotificationTriggerVariable"}}}, "required": ["type", "identifier", "variables"]}, "WorkflowResponse": {"type": "object", "properties": {"_id": {"type": "string"}, "name": {"type": "string"}, "description": {"type": "string"}, "active": {"type": "boolean"}, "draft": {"type": "boolean"}, "preferenceSettings": {"$ref": "#/components/schemas/PreferenceChannels"}, "critical": {"type": "boolean"}, "tags": {"type": "array", "items": {"type": "string"}}, "steps": {"type": "array", "items": {"$ref": "#/components/schemas/NotificationStep"}}, "_organizationId": {"type": "string"}, "_creatorId": {"type": "string"}, "_environmentId": {"type": "string"}, "triggers": {"type": "array", "items": {"$ref": "#/components/schemas/NotificationTrigger"}}, "_notificationGroupId": {"type": "string"}, "_parentId": {"type": "string"}, "deleted": {"type": "boolean"}, "deletedAt": {"type": "string"}, "deletedBy": {"type": "string"}, "notificationGroup": {"$ref": "#/components/schemas/NotificationGroup"}, "data": {"type": "object"}, "workflowIntegrationStatus": {"type": "object"}}, "required": ["name", "description", "active", "draft", "preferenceSettings", "critical", "tags", "steps", "_organizationId", "_creatorId", "_environmentId", "triggers", "_notificationGroupId", "deleted", "deletedAt", "deletedBy"]}, "MessageResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "_templateId": {"type": "string"}, "_environmentId": {"type": "string"}, "_messageTemplateId": {"type": "string"}, "_organizationId": {"type": "string"}, "_notificationId": {"type": "string"}, "_subscriberId": {"type": "string"}, "subscriber": {"$ref": "#/components/schemas/SubscriberResponseDto"}, "template": {"$ref": "#/components/schemas/WorkflowResponse"}, "templateIdentifier": {"type": "string"}, "createdAt": {"type": "string"}, "lastSeenDate": {"type": "string"}, "lastReadDate": {"type": "string"}, "content": {"oneOf": [{"$ref": "#/components/schemas/EmailBlock"}, {"type": "string"}]}, "transactionId": {"type": "string"}, "subject": {"type": "string"}, "channel": {"enum": ["in_app", "email", "sms", "chat", "push"], "type": "string"}, "read": {"type": "boolean"}, "seen": {"type": "boolean"}, "email": {"type": "string"}, "phone": {"type": "string"}, "directWebhookUrl": {"type": "string"}, "providerId": {"type": "string"}, "deviceTokens": {"type": "array", "items": {"type": "string"}}, "title": {"type": "string"}, "cta": {"$ref": "#/components/schemas/MessageCTA"}, "_feedId": {"type": "object", "nullable": true}, "status": {"type": "string", "enum": ["sent", "error", "warning"]}, "errorId": {"type": "string"}, "errorText": {"type": "string"}, "payload": {"type": "object", "description": "The payload that was used to send the notification trigger"}, "overrides": {"type": "object", "description": "Provider specific overrides used when triggering the notification"}}, "required": ["_templateId", "_environmentId", "_messageTemplateId", "_organizationId", "_notificationId", "_subscriberId", "createdAt", "content", "transactionId", "channel", "read", "seen", "cta", "status", "errorId", "errorText", "payload", "overrides"]}, "MarkMessageActionAsSeenDto": {"type": "object", "properties": {"status": {"enum": ["pending", "done"], "type": "string", "description": "Message action status"}, "payload": {"type": "object", "description": "Message action payload"}}, "required": ["status"]}, "DeleteMessageResponseDto": {"type": "object", "properties": {"acknowledged": {"type": "boolean", "description": "A boolean stating the success of the action"}, "status": {"type": "string", "description": "The status enum for the performed action", "enum": ["deleted"]}}, "required": ["acknowledged", "status"]}, "CreateTopicResponseDto": {"type": "object", "properties": {"_id": {"type": "string", "description": "The unique identifier for the Topic created."}, "key": {"type": "string", "description": "User defined custom key and provided by the user that will be an unique identifier for the Topic created."}}, "required": ["key"]}, "CreateTopicRequestDto": {"type": "object", "properties": {"key": {"type": "string", "description": "User defined custom key and provided by the user that will be an unique identifier for the Topic created."}, "name": {"type": "string", "description": "User defined custom name and provided by the user that will name the Topic created."}}, "required": ["key", "name"]}, "AddSubscribersRequestDto": {"type": "object", "properties": {"subscribers": {"description": "List of subscriber identifiers that will be associated to the topic", "type": "array", "items": {"type": "string"}}}, "required": ["subscribers"]}, "TopicSubscriberDto": {"type": "object", "properties": {"_organizationId": {"type": "string"}, "_environmentId": {"type": "string"}, "_subscriberId": {"type": "string"}, "_topicId": {"type": "string"}, "topicKey": {"type": "string"}, "externalSubscriberId": {"type": "string"}}, "required": ["_organizationId", "_environmentId", "_subscriberId", "_topicId", "topicKey", "externalSubscriberId"]}, "RemoveSubscribersRequestDto": {"type": "object", "properties": {"subscribers": {"description": "List of subscriber identifiers that will be removed to the topic", "type": "array", "items": {"type": "string"}}}, "required": ["subscribers"]}, "TopicDto": {"type": "object", "properties": {"_id": {"type": "string"}, "_organizationId": {"type": "string"}, "_environmentId": {"type": "string"}, "key": {"type": "string"}, "name": {"type": "string"}, "subscribers": {"type": "array", "items": {"type": "string"}}}, "required": ["_organizationId", "_environmentId", "key", "name", "subscribers"]}, "FilterTopicsResponseDto": {"type": "object", "properties": {"data": {"type": "array", "items": {"$ref": "#/components/schemas/TopicDto"}}, "page": {"type": "number"}, "pageSize": {"type": "number"}, "totalCount": {"type": "number"}}, "required": ["data", "page", "pageSize", "totalCount"]}, "GetTopicResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "_organizationId": {"type": "string"}, "_environmentId": {"type": "string"}, "key": {"type": "string"}, "name": {"type": "string"}, "subscribers": {"type": "array", "items": {"type": "string"}}}, "required": ["_organizationId", "_environmentId", "key", "name", "subscribers"]}, "RenameTopicResponseDto": {"type": "object", "properties": {"_id": {"type": "string"}, "_organizationId": {"type": "string"}, "_environmentId": {"type": "string"}, "key": {"type": "string"}, "name": {"type": "string"}, "subscribers": {"type": "array", "items": {"type": "string"}}}, "required": ["_organizationId", "_environmentId", "key", "name", "subscribers"]}, "RenameTopicRequestDto": {"type": "object", "properties": {"name": {"type": "string", "description": "User defined custom name and provided by the user to rename the topic."}}, "required": ["name"]}, "GeneratePreviewResponseDto": {"type": "object", "properties": {}}}, "headers": {"Content-Type": {"required": true, "description": "The MIME type of the response body.", "schema": {"type": "string"}, "example": "application/json"}, "RateLimit-Limit": {"required": false, "description": "The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled.", "schema": {"type": "string"}, "example": "100"}, "RateLimit-Remaining": {"required": false, "description": "The number of requests remaining until the next window.", "schema": {"type": "string"}, "example": "93"}, "RateLimit-Reset": {"required": false, "description": "The remaining seconds until a request of the same cost will be refreshed.", "schema": {"type": "string"}, "example": "8"}, "RateLimit-Policy": {"required": false, "description": "The rate limit policy that was used to evaluate the request.", "schema": {"type": "string"}, "example": "100;w=1;burst=110;comment=\"token bucket\";category=\"trigger\";cost=\"single\""}, "Retry-After": {"required": false, "description": "The number of seconds after which the client may retry the request that was previously rejected.", "schema": {"type": "string"}, "example": "8"}, "Idempotency-Key": {"required": false, "description": "The idempotency key used to evaluate the request.", "schema": {"type": "string"}, "example": "8"}, "Idempotency-Replay": {"required": false, "description": "Whether the request was a replay of a previous request.", "schema": {"type": "string"}, "example": "true"}, "Link": {"required": false, "description": "A link to the documentation.", "schema": {"type": "string"}, "example": "https://docs.novu.co/"}}}, "externalDocs": {"description": "Novu Documentation", "url": "https://docs.novu.co"}, "x-speakeasy-name-override": [{"operationId": "^.*get.*", "methodNameOverride": "retrieve"}, {"operationId": "^.*retrieve.*", "methodNameOverride": "retrieve"}, {"operationId": "^.*create.*", "methodNameOverride": "create"}, {"operationId": "^.*update.*", "methodNameOverride": "update"}, {"operationId": "^.*list.*", "methodNameOverride": "list"}, {"operationId": "^.*delete.*", "methodNameOverride": "delete"}, {"operationId": "^.*remove.*", "methodNameOverride": "delete"}], "x-speakeasy-retries": {"strategy": "backoff", "backoff": {"initialInterval": 500, "maxInterval": 30000, "maxElapsedTime": 3600000, "exponent": 1.5}, "statusCodes": ["408", "409", "429", "5XX"], "retryConnectionErrors": true}} diff --git a/.speakeasy/temp/applied_hdbdDBZBfI.yaml b/.speakeasy/temp/applied_hdbdDBZBfI.yaml new file mode 100644 index 00000000..aad4f49e --- /dev/null +++ b/.speakeasy/temp/applied_hdbdDBZBfI.yaml @@ -0,0 +1,8807 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/downloaded_HKVFJyjOtH.yaml b/.speakeasy/temp/downloaded_HKVFJyjOtH.yaml new file mode 100644 index 00000000..8e0ac771 --- /dev/null +++ b/.speakeasy/temp/downloaded_HKVFJyjOtH.yaml @@ -0,0 +1,9166 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: |2- + + Trigger event is the main (and only) way to send notifications to subscribers. + The trigger identifier is used to match the particular workflow associated with it. + Additional information can be passed according the body interface below. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: |2- + + Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API. + The bulk API is limited to 100 events per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to + send announcements, etc. + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: |2- + + Using a previously generated transactionId during the event trigger, + will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... + + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. + Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are + successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on + the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that + organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that + are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported + or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in + the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and + `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will + be later used to receive notifications, and access notification feeds. + Communication credentials such as email, phone number, and 3 rd party + credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: |2- + + Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API. + The bulk API is limited to 500 subscribers per request. + + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack + and push tokens. + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be + included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string + like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. + Optionally you can pass feed id (or array) to mark messages of a + particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query + parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of + message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query + parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it + can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. + Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the + current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is + currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a + temporary overload or scheduled maintenance, which will likely be + alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more + details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to + trigger workflows, and enable you to send notifications to subscribers + based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by + a workflow acting as a message blueprint. Notifications can be individual + or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your + favorite delivery provider. During the runtime of the API, the + Integrations Store is responsible for storing the configurations of all + the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure + to wrap content of email notifications. Layouts can be manipulated and + assigned to new or existing workflows within the Novu platform, allowing + users to create, manage, and assign these layouts to workflows, so they + can be reused to structure the appearance of notifications sent through + the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a + container for the logic and blueprint that are associated with a type of + notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same + functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous + to a pending pull request in git, enabling you to test changes before they + are applied to your environment and atomically apply them when you are + ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your + data and configuration. This means that subscribers, and preferences + created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for + a domain or subdomain. The feature parses the contents of the email and + POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing + message associated with its relevant metadata. This can be used to monitor + activity and discover potential issues with a specific provider or a + channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have + organizations, they are referred to as tenants. Tenants in Novu provides + the ability to tailor specific notification experiences to users of + different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a + particular channel. Messages contain information about the request that + triggered its delivery, a view of the data sent to the recipient, and a + timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each + organization you create has its own separate integration store, workflows, + subscribers, and API keys. This separation of resources allows you to + manage multi-tenant environments and separate domains within a single + account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They + provided detailed information on the execution of a workflow, including + the status of each step, the input and output of each step, and the + overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey + ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This + identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the workflow, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + Existing tenants will be updated with the provided details. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. + This identifier can be found on the template page. + payload: + type: object + description: >- + The payload object is used to pass additional custom information + that could be used to render the template, or perform routing rules + based on it. + This data will also be available when fetching the notifications feed from the API to display certain parts of the UI. + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID + if not provided. + actor: + description: >- + It is used to display the Avatar of the provided actor's subscriber + id or actor object. + If a new actor object is provided, we will create a new subscriber in our system + + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: |- + It is used to specify a tenant context during trigger event. + If a new tenant object is provided, we will create a new tenant. + + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field + will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be + obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given + provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the + subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually + correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and + should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this + workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the + workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for + the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an + unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the + Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the + topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. + The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be + refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token + bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that + was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/temp/overlay_kQfMvHVybU.yaml b/.speakeasy/temp/overlay_kQfMvHVybU.yaml new file mode 100644 index 00000000..aad4f49e --- /dev/null +++ b/.speakeasy/temp/overlay_kQfMvHVybU.yaml @@ -0,0 +1,8807 @@ +openapi: 3.0.0 +paths: + /v1/environments/me: + get: + operationId: EnvironmentsControllerV1_getCurrentEnvironment + summary: Get current environment + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments: + get: + operationId: EnvironmentsControllerV1_listMyEnvironments + summary: Get environments + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EnvironmentResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/environments/api-keys: + get: + operationId: EnvironmentsControllerV1_listOrganizationApiKeys + x-speakeasy-group: Environments.ApiKeys + summary: Get api keys + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ApiKey' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Environments + security: + - api-key: [] + /v1/execution-details: + get: + operationId: ExecutionDetailsController_getExecutionDetailsForNotification + summary: Get execution details + parameters: + - name: notificationId + required: true + in: query + schema: + type: string + - name: subscriberId + required: true + in: query + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ExecutionDetailsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Execution Details + security: + - api-key: [] + /v1/events/trigger: + post: + operationId: EventsController_trigger + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Event + x-speakeasy-name-override: trigger + summary: Trigger event + description: "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/bulk: + post: + operationId: EventsController_triggerBulk + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Trigger Notification Events in Bulk + x-speakeasy-name-override: triggerBulk + summary: Bulk trigger event + description: "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkTriggerEventDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/broadcast: + post: + operationId: EventsController_broadcastEventToAll + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Broadcast Event to All + x-speakeasy-name-override: triggerBroadcast + summary: Broadcast event to all + description: >- + Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc. + + In the future could be used to trigger events to a subset of subscribers based on defined filters. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventToAllRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerEventResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/events/trigger/{transactionId}: + delete: + operationId: EventsController_cancel + x-speakeasy-group: '' + x-speakeasy-usage-example: + title: Cancel Triggered Event + x-speakeasy-name-override: cancel + summary: Cancel triggered event + description: "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n " + parameters: + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DataBooleanDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Events + security: + - api-key: [] + /v1/notifications: + get: + operationId: NotificationsController_listNotifications + summary: Get notifications + parameters: + - name: channels + required: true + in: query + schema: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - name: templates + required: true + in: query + schema: + type: array + items: + type: string + - name: emails + required: true + in: query + schema: + type: array + items: + type: string + - name: search + required: true + in: query + deprecated: true + schema: + type: string + - name: subscriberIds + required: true + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: transactionId + required: false + in: query + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/stats: + get: + operationId: NotificationsController_getActivityStats + x-speakeasy-group: Notifications.Stats + summary: Get notification statistics + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityStatsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/graph/stats: + get: + operationId: NotificationsController_getActivityGraphStats + x-speakeasy-name-override: graph + x-speakeasy-group: Notifications.Stats + summary: Get notification graph statistics + parameters: + - name: days + required: false + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ActivityGraphStatesResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notifications/{notificationId}: + get: + operationId: NotificationsController_getNotification + summary: Get notification + parameters: + - name: notificationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivityNotificationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Notifications + security: + - api-key: [] + /v1/notification-groups: + post: + operationId: NotificationGroupsController_createNotificationGroup + summary: Create workflow group + description: workflow group was previously named notification group + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + get: + operationId: NotificationGroupsController_listNotificationGroups + summary: Get workflow groups + description: workflow group was previously named notification group + parameters: [] + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/notification-groups/{id}: + get: + operationId: NotificationGroupsController_getNotificationGroup + summary: Get workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + patch: + operationId: NotificationGroupsController_updateNotificationGroup + summary: Update workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateNotificationGroupRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/NotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + delete: + operationId: NotificationGroupsController_deleteNotificationGroup + summary: Delete workflow group + description: workflow group was previously named notification group + parameters: + - name: id + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteNotificationGroupResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Workflow groups + security: + - api-key: [] + /v1/integrations: + get: + operationId: IntegrationsController_listIntegrations + summary: Get integrations + description: >- + Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + post: + operationId: IntegrationsController_createIntegration + summary: Create integration + description: >- + Create an integration for the current environment the user is based on the API key provided + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateIntegrationRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/active: + get: + operationId: IntegrationsController_getActiveIntegrations + x-speakeasy-name-override: listActive + summary: Get active integrations + description: >- + Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change + parameters: [] + responses: + '200': + description: >- + The list of active integrations belonging to the organization that are successfully returned. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/webhook/provider/{providerOrIntegrationId}/status: + get: + operationId: IntegrationsController_getWebhookSupportStatus + x-speakeasy-group: Integrations.Webhooks + summary: Get webhook support status for provider + description: >- + Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value + parameters: + - name: providerOrIntegrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: The status of the webhook for the provider requested + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: boolean + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}: + put: + operationId: IntegrationsController_updateIntegrationById + summary: Update integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateIntegrationRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + delete: + operationId: IntegrationsController_removeIntegration + summary: Delete integration + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IntegrationResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/integrations/{integrationId}/set-primary: + post: + operationId: IntegrationsController_setIntegrationAsPrimary + x-speakeasy-name-override: setAsPrimary + summary: Set integration as primary + parameters: + - name: integrationId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationResponseDto' + '404': + description: >- + The integration with the integrationId provided does not exist in the database. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Integrations + security: + - api-key: [] + /v1/subscribers: + get: + operationId: SubscribersController_listSubscribers + x-speakeasy-pagination: + type: offsetLimit + inputs: + - name: page + in: parameters + type: page + - name: limit + in: parameters + type: limit + outputs: + results: $.data.resultArray + summary: Get subscribers + description: >- + Returns a list of subscribers, could paginated using the `page` and `limit` query parameter + parameters: + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + post: + operationId: SubscribersController_createSubscriber + summary: Create subscriber + description: >- + Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity. + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriberRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}: + get: + operationId: SubscribersController_getSubscriber + summary: Get subscriber + description: Get subscriber by your internal id used to identify the subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeTopics + required: false + in: query + description: Includes the topics associated with the subscriber + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + put: + operationId: SubscribersController_updateSubscriber + summary: Update subscriber + description: Used to update the subscriber entity with new information + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + delete: + operationId: SubscribersController_removeSubscriber + summary: Delete subscriber + description: Deletes a subscriber entity from the Novu platform + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteSubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/bulk: + post: + operationId: SubscribersController_bulkCreateSubscribers + x-speakeasy-name-override: createBulk + summary: Bulk create subscribers + description: "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n " + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/BulkSubscriberCreateDto' + responses: + '201': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials: + put: + operationId: SubscribersController_updateSubscriberChannel + x-speakeasy-group: Subscribers.Credentials + summary: Update subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_modifySubscriberChannel + x-speakeasy-name-override: append + x-speakeasy-group: Subscribers.Credentials + summary: Modify subscriber credentials + description: >- + Subscriber credentials associated to the delivery methods such as slack and push tokens. + + This endpoint appends provided credentials and deviceTokens to the existing ones. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberChannelRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}: + delete: + operationId: SubscribersController_deleteSubscriberCredentials + x-speakeasy-group: Subscribers.Credentials + summary: Delete subscriber credentials by providerId + description: Delete subscriber credentials such as slack and expo tokens. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/online-status: + patch: + operationId: SubscribersController_updateSubscriberOnlineFlag + x-speakeasy-name-override: updateOnlineFlag + x-speakeasy-group: Subscribers.properties + summary: Update subscriber online status + description: Used to update the subscriber isOnline flag. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberOnlineFlagRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriberResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences: + get: + operationId: SubscribersController_listSubscriberPreferences + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberGlobalPreferences + x-speakeasy-name-override: updateGlobal + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber global preferences + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/preferences/{parameter}: + get: + operationId: SubscribersController_getSubscriberPreferenceByLevel + x-speakeasy-name-override: retrieveByLevel + x-speakeasy-group: Subscribers.Preferences + summary: Get subscriber preferences by level + parameters: + - name: includeInactiveChannels + required: false + in: query + description: >- + A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true + schema: + type: boolean + - name: parameter + required: true + in: path + description: 'the preferences level to be retrieved (template / global) ' + schema: + enum: + - global + - template + type: string + - name: subscriberId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GetSubscriberPreferencesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + patch: + operationId: SubscribersController_updateSubscriberPreference + x-speakeasy-group: Subscribers.Preferences + summary: Update subscriber preference + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: parameter + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriberPreferenceResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/feed: + get: + operationId: SubscribersController_getNotificationsFeed + x-speakeasy-group: Subscribers.Notifications + summary: Get in-app notification feed for a particular subscriber + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: page + required: false + in: query + schema: + type: number + - name: limit + required: false + in: query + schema: + maximum: 100 + default: 10 + type: number + - name: read + required: false + in: query + schema: + type: boolean + - name: seen + required: false + in: query + schema: + type: boolean + - name: payload + required: false + in: query + description: Base64 encoded string of the partial payload JSON object + example: >- + btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30= + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + allOf: + - $ref: '#/components/schemas/PaginatedResponseDto' + - properties: + data: + type: array + items: + $ref: '#/components/schemas/FeedResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/notifications/unseen: + get: + operationId: SubscribersController_getUnseenCount + x-speakeasy-name-override: unseenCount + x-speakeasy-group: Subscribers.Notifications + summary: Get the unseen in-app notifications count for subscribers feed + parameters: + - name: seen + required: true + in: query + schema: + type: boolean + - name: subscriberId + required: true + in: path + schema: + type: string + - name: limit + required: true + in: query + schema: + type: number + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/UnseenCountResponse' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-as: + post: + operationId: SubscribersController_markMessagesAs + x-speakeasy-name-override: markAllAs + x-speakeasy-group: Subscribers.Messages + summary: Mark a subscriber messages as seen, read, unseen or unread + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MessageMarkAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/MessageEntity' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/mark-all: + post: + operationId: SubscribersController_markAllUnreadAsRead + x-speakeasy-name-override: markAll + x-speakeasy-group: Subscribers.Messages + summary: >- + Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkAllMessageAsRequestDto' + responses: + '201': + description: '' + content: + application/json: + schema: + type: number + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}: + post: + operationId: SubscribersController_markActionAsSeen + x-speakeasy-name-override: updateAsSeen + x-speakeasy-group: Subscribers.Messages + summary: Mark message action as seen + parameters: + - name: messageId + required: true + in: path + schema: + type: string + - name: type + required: true + in: path + schema: {} + - name: subscriberId + required: true + in: path + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/MarkMessageActionAsSeenDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/MessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback: + get: + operationId: SubscribersController_chatOauthCallback + x-speakeasy-name-override: chatAccessOauthCallBack + x-speakeasy-group: Subscribers.Authentication + summary: Handle providers oauth redirect + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: code + required: true + in: query + schema: + type: string + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth: + get: + operationId: SubscribersController_chatAccessOauth + x-speakeasy-name-override: chatAccessOauth + x-speakeasy-group: Subscribers.Authentication + summary: Handle chat oauth + parameters: + - name: subscriberId + required: true + in: path + schema: + type: string + - name: providerId + required: true + in: path + schema: {} + - name: hmacHash + required: true + in: query + schema: + type: string + - name: environmentId + required: true + in: query + schema: + type: string + - name: integrationIdentifier + required: false + in: query + schema: + type: string + responses: + '200': + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Subscribers + security: + - api-key: [] + /v1/messages: + get: + operationId: MessagesController_getMessages + summary: Get messages + description: >- + Returns a list of messages, could paginate using the `page` query parameter + parameters: + - name: channel + required: false + in: query + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: subscriberId + required: false + in: query + schema: + type: string + - name: transactionId + required: false + in: query + schema: + type: array + items: + type: string + - name: page + required: false + in: query + schema: + default: 0 + type: number + - name: limit + required: false + in: query + schema: + default: 10 + type: number + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ActivitiesResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/{messageId}: + delete: + operationId: MessagesController_deleteMessage + summary: Delete message + description: Deletes a message entity from the Novu platform + parameters: + - name: messageId + required: true + in: path + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteMessageResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/messages/transaction/{transactionId}: + delete: + operationId: MessagesController_deleteMessagesByTransactionId + x-speakeasy-name-override: deleteByTransactionId + summary: Delete messages by transactionId + description: >- + Deletes messages entity from the Novu platform using TransactionId of message + parameters: + - name: channel + required: false + in: query + description: The channel of the message to be deleted + schema: + enum: + - in_app + - email + - sms + - chat + - push + type: string + - name: transactionId + required: true + in: path + schema: + type: string + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Messages + security: + - api-key: [] + /v1/topics: + post: + operationId: TopicsController_createTopic + summary: Topic creation + description: Create a topic + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicRequestDto' + responses: + '201': + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_listTopics + summary: Filter topics + description: >- + Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter + parameters: + - name: page + required: false + in: query + description: Number of page for the pagination + schema: + minimum: 0 + default: 0 + type: number + - name: pageSize + required: false + in: query + description: Size of page for the pagination + schema: + minimum: 0 + default: 10 + type: number + - name: key + required: false + in: query + description: Topic key + schema: + type: string + responses: + '200': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FilterTopicsResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers: + post: + operationId: TopicsController_addSubscribers + x-speakeasy-name-override: assign + x-speakeasy-group: Topics.Subscribers + summary: Subscribers addition + description: Add subscribers to a topic by key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/{externalSubscriberId}: + get: + operationId: TopicsController_getTopicSubscriber + x-speakeasy-group: Topics.Subscribers + summary: Check topic subscriber + description: Check if a subscriber belongs to a certain topic + parameters: + - name: externalSubscriberId + required: true + in: path + description: The external subscriber id + schema: + type: string + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TopicSubscriberDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}/subscribers/removal: + post: + operationId: TopicsController_removeSubscribers + x-speakeasy-group: Topics.Subscribers + summary: Subscribers removal + description: Remove subscribers from a topic + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveSubscribersRequestDto' + responses: + '204': + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + description: '' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + /v1/topics/{topicKey}: + delete: + operationId: TopicsController_deleteTopic + summary: Delete topic + description: Delete a topic by its topic key if it has no subscribers + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '204': + description: The topic has been deleted correctly + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '404': + description: >- + The topic with the key provided does not exist in the database so it can not be deleted. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + '409': + description: >- + The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + get: + operationId: TopicsController_getTopic + summary: Get topic + description: Get a topic by its topic key + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/GetTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] + patch: + operationId: TopicsController_renameTopic + x-speakeasy-name-override: rename + summary: Rename a topic + description: Rename a topic by providing a new name + parameters: + - name: topicKey + required: true + in: path + description: The topic key + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicRequestDto' + responses: + '200': + description: Ok + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + content: + application/json: + schema: + $ref: '#/components/schemas/RenameTopicResponseDto' + '409': + description: >- + The request could not be completed due to a conflict with the current state of the target resource. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + Link: + $ref: '#/components/headers/Link' + content: + application/json: + schema: + type: string + example: >- + Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second + '429': + description: 'The client has sent too many requests in a given amount of time. ' + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: API rate limit exceeded + '503': + description: >- + The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay. + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + RateLimit-Limit: + $ref: '#/components/headers/RateLimit-Limit' + RateLimit-Remaining: + $ref: '#/components/headers/RateLimit-Remaining' + RateLimit-Reset: + $ref: '#/components/headers/RateLimit-Reset' + RateLimit-Policy: + $ref: '#/components/headers/RateLimit-Policy' + Idempotency-Key: + $ref: '#/components/headers/Idempotency-Key' + Idempotency-Replay: + $ref: '#/components/headers/Idempotency-Replay' + Retry-After: + $ref: '#/components/headers/Retry-After' + content: + application/json: + schema: + type: string + example: Please wait some time, then try again. + tags: + - Topics + security: + - api-key: [] +info: + title: Novu API + description: >- + Novu REST API. Please see https://docs.novu.co/api-reference for more details. + version: '1.0' + contact: + name: Novu Support + url: https://discord.gg/novu + email: support@novu.co + termsOfService: https://novu.co/terms + license: + name: MIT + url: https://opensource.org/license/mit +tags: + - name: Events + description: >- + Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions. + externalDocs: + url: https://docs.novu.co/workflows + - name: Subscribers + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/subscribers + - name: Topics + description: >- + 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. + externalDocs: + url: https://docs.novu.co/subscribers/topics + - name: Notification + description: >- + A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness. + externalDocs: + url: https://docs.novu.co/getting-started/introduction + - name: Integrations + description: >- + With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers. + externalDocs: + url: https://docs.novu.co/channels-and-providers/integration-store + - name: Layouts + description: >- + Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform. + externalDocs: + url: https://docs.novu.co/content-creation-design/layouts + - name: Workflows + description: >- + All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system. + externalDocs: + url: https://docs.novu.co/workflows + - name: Notification Templates + description: >- + Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name. + - name: Workflow groups + description: Workflow groups are used to organize workflows into logical groups. + - name: Changes + description: >- + Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready. + externalDocs: + url: >- + https://docs.novu.co/platform/environments#promoting-pending-changes-to-production + - name: Environments + description: >- + Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another. + externalDocs: + url: https://docs.novu.co/platform/environments + - name: Inbound Parse + description: >- + Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format. + externalDocs: + url: https://docs.novu.co/platform/inbound-parse-webhook + - name: Feeds + description: >- + Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type. + externalDocs: + url: https://docs.novu.co/activity-feed + - name: Tenants + description: >- + A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations. + externalDocs: + url: https://docs.novu.co/tenants + - name: Messages + description: >- + A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages. + externalDocs: + url: https://docs.novu.co/workflows/messages + - name: Organizations + description: >- + An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account. + externalDocs: + url: https://docs.novu.co/platform/organizations + - name: Execution Details + description: >- + Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution. + externalDocs: + url: https://docs.novu.co/activity-feed +servers: + - url: https://api.novu.co + - url: https://eu.api.novu.co +components: + securitySchemes: + api-key: + type: apiKey + in: header + name: Authorization + description: >- + API key authentication. Allowed headers-- "Authorization: ApiKey ". + schemas: + DataWrapperDto: + type: object + properties: + data: + type: object + required: + - data + EnvironmentResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _organizationId: + type: string + identifier: + type: string + apiKeys: + type: array + items: + type: string + _parentId: + type: string + slug: + type: string + required: + - name + - _organizationId + - identifier + - _parentId + ApiKey: + type: object + properties: + key: + type: string + _userId: + type: string + required: + - key + - _userId + ExecutionDetailsResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _jobId: + type: string + _environmentId: + type: string + _notificationId: + type: string + _notificationTemplateId: + type: string + _subscriberId: + type: string + _messageId: + type: string + providerId: + type: string + transactionId: + type: string + channel: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + detail: + type: string + source: + type: string + enum: + - Credentials + - Internal + - Payload + - Webhook + status: + type: string + enum: + - Success + - Warning + - Failed + - Pending + - Queued + - ReadConfirmation + isTest: + type: boolean + isRetry: + type: boolean + createdAt: + type: string + required: + - _organizationId + - _jobId + - _environmentId + - _notificationId + - _notificationTemplateId + - _subscriberId + - transactionId + - channel + - detail + - source + - status + - isTest + - isRetry + TriggerEventResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: If trigger was acknowledged or not + status: + enum: + - error + - trigger_not_active + - no_workflow_active_steps_defined + - no_workflow_steps_defined + - processed + - subscriber_id_missing + - no_tenant_found + type: string + description: Status for trigger + error: + description: In case of an error, this field will contain the error message + type: array + items: + type: string + transactionId: + type: string + description: Transaction id for trigger + required: + - acknowledged + - status + TopicPayloadDto: + type: object + properties: + topicKey: + type: string + type: + enum: + - Subscriber + - Topic + type: string + example: Topic + required: + - topicKey + - type + TenantPayloadDto: + type: object + properties: + identifier: + type: string + name: + type: string + data: + type: object + SubscriberPayloadDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + TriggerEventRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page. + example: workflow_identifier + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + to: + type: array + description: The recipients list of people who will receive the notification. + items: + oneOf: + - $ref: '#/components/schemas/SubscriberPayloadDto' + - type: string + description: Unique identifier of a subscriber in your systems + example: SUBSCRIBER_ID + - $ref: '#/components/schemas/TopicPayloadDto' + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n Existing tenants will be updated with the provided details.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + bridgeUrl: + type: string + controls: + type: object + required: + - name + - to + BulkTriggerEventDto: + type: object + properties: + events: + type: array + items: + $ref: '#/components/schemas/TriggerEventRequestDto' + required: + - events + TriggerEventToAllRequestDto: + type: object + properties: + name: + type: string + description: >- + The trigger identifier associated for the template you wish to send. This identifier can be found on the template page. + payload: + type: object + description: "The payload object is used to pass additional custom information that could be used to render the template, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI." + example: + comment_id: string + post: + text: string + overrides: + type: object + description: This could be used to override provider specific configurations + example: + fcm: + data: + key: value + transactionId: + type: string + description: >- + A unique identifier for this transaction, we will generated a UUID if not provided. + actor: + description: "It is used to display the Avatar of the provided actor's subscriber id or actor object.\n If a new actor object is provided, we will create a new subscriber in our system\n " + oneOf: + - type: string + description: Unique identifier of a subscriber in your systems + - $ref: '#/components/schemas/SubscriberPayloadDto' + tenant: + description: "It is used to specify a tenant context during trigger event.\n If a new tenant object is provided, we will create a new tenant.\n " + oneOf: + - type: string + description: Unique identifier of a tenant in your system + - $ref: '#/components/schemas/TenantPayloadDto' + required: + - name + - payload + DataBooleanDto: + type: object + properties: + data: + type: boolean + required: + - data + ActivitiesResponseDto: + type: object + properties: + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + ActivityStatsResponseDto: + type: object + properties: + weeklySent: + type: number + monthlySent: + type: number + required: + - weeklySent + - monthlySent + ActivityGraphStatesResponse: + type: object + properties: + _id: + type: string + count: + type: number + templates: + type: array + items: + type: string + channels: + type: array + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + required: + - _id + - count + - templates + - channels + ActivityNotificationSubscriberResponseDto: + type: object + properties: + firstName: + type: string + _id: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + required: + - _id + ActivityNotificationTemplateResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + triggers: + type: array + items: + type: string + required: + - name + - triggers + ActivityNotificationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + transactionId: + type: string + createdAt: + type: string + channels: + type: string + items: + type: string + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + enum: + - in_app + - email + - sms + - chat + - push + - digest + - trigger + - delay + - custom + subscriber: + $ref: '#/components/schemas/ActivityNotificationSubscriberResponseDto' + template: + $ref: '#/components/schemas/ActivityNotificationTemplateResponseDto' + jobs: + type: array + items: + type: string + required: + - _environmentId + - _organizationId + - transactionId + NotificationGroupResponseDto: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + CreateNotificationGroupRequestDto: + type: object + properties: + name: + type: string + required: + - name + DeleteNotificationGroupResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CredentialsDto: + type: object + properties: + apiKey: + type: string + user: + type: string + secretKey: + type: string + domain: + type: string + password: + type: string + host: + type: string + port: + type: string + secure: + type: boolean + region: + type: string + accountSid: + type: string + messageProfileId: + type: string + token: + type: string + from: + type: string + senderName: + type: string + projectName: + type: string + applicationId: + type: string + clientId: + type: string + requireTls: + type: boolean + ignoreTls: + type: boolean + tlsOptions: + type: object + baseUrl: + type: string + webhookUrl: + type: string + redirectUrl: + type: string + hmac: + type: boolean + serviceAccount: + type: string + ipPoolName: + type: string + apiKeyRequestHeader: + type: string + secretKeyRequestHeader: + type: string + idPath: + type: string + datePath: + type: string + apiToken: + type: string + authenticateByToken: + type: boolean + authenticationTokenKey: + type: string + instanceId: + type: string + alertUid: + type: string + title: + type: string + imageUrl: + type: string + state: + type: string + externalLink: + type: string + channelId: + type: string + phoneNumberIdentification: + type: string + accessKey: + type: string + FieldFilterPart: + type: object + properties: + field: + type: string + value: + type: string + operator: + type: string + enum: + - LARGER + - SMALLER + - LARGER_EQUAL + - SMALLER_EQUAL + - EQUAL + - NOT_EQUAL + - ALL_IN + - ANY_IN + - NOT_IN + - BETWEEN + - NOT_BETWEEN + - LIKE + - NOT_LIKE + - IN + 'on': + type: string + enum: + - subscriber + - payload + required: + - field + - value + - operator + - 'on' + StepFilter: + type: object + properties: + isNegated: + type: boolean + type: + type: string + enum: + - BOOLEAN + - TEXT + - DATE + - NUMBER + - STATEMENT + - LIST + - MULTI_LIST + - GROUP + value: + type: string + enum: + - AND + - OR + children: + type: array + items: + $ref: '#/components/schemas/FieldFilterPart' + required: + - isNegated + - type + - value + - children + IntegrationResponseDto: + type: object + properties: + _id: + type: string + _environmentId: + type: string + _organizationId: + type: string + name: + type: string + identifier: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + primary: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - _environmentId + - _organizationId + - name + - identifier + - providerId + - channel + - credentials + - active + - deleted + - deletedAt + - deletedBy + - primary + CreateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + providerId: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + credentials: + $ref: '#/components/schemas/CredentialsDto' + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + required: + - providerId + - channel + UpdateIntegrationRequestDto: + type: object + properties: + name: + type: string + identifier: + type: string + _environmentId: + type: string + active: + type: boolean + description: >- + If the integration is active the validation on the credentials field will run + credentials: + $ref: '#/components/schemas/CredentialsDto' + removeNovuBranding: + type: boolean + description: If true, the Novu branding will be removed from the Inbox component + check: + type: boolean + conditions: + type: array + items: + $ref: '#/components/schemas/StepFilter' + PaginatedResponseDto: + type: object + properties: + page: + type: number + description: The current page of the paginated response + hasMore: + type: boolean + description: Does the list have more items to fetch + pageSize: + type: number + description: Number of items on each page + data: + description: The list of items matching the query + type: array + items: + type: object + required: + - page + - hasMore + - pageSize + - data + ChannelCredentials: + type: object + properties: + webhookUrl: + type: string + description: >- + Webhook url used by chat app integrations. The webhook should be obtained from the chat app provider. + channel: + type: string + description: Channel specification for Mattermost chat notifications + deviceTokens: + description: >- + Contains an array of the subscriber device tokens for a given provider. Used on Push integrations + type: array + items: + type: string + alertUid: + type: string + description: alert_uid for grafana on-call webhook payload + title: + type: string + description: title to be used with grafana on call webhook + imageUrl: + type: string + description: image_url property fo grafana on call webhook + state: + type: string + description: state property fo grafana on call webhook + externalUrl: + type: string + description: link_to_upstream_details property fo grafana on call webhook + required: + - webhookUrl + ChannelSettings: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + _integrationId: + type: string + description: Id of the integration that is used for this channel + required: + - providerId + - credentials + - _integrationId + SubscriberResponseDto: + type: object + properties: + _id: + type: string + description: >- + The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See `subscriberId` for that + firstName: + type: string + lastName: + type: string + email: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + channels: + description: Channels settings for subscriber + type: array + items: + $ref: '#/components/schemas/ChannelSettings' + topics: + description: Topics that subscriber belongs to + type: array + items: + type: string + isOnline: + type: boolean + lastOnlineAt: + type: string + _organizationId: + type: string + _environmentId: + type: string + deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + __v: + type: number + required: + - subscriberId + - _organizationId + - _environmentId + - deleted + - createdAt + - updatedAt + CreateSubscriberRequestDto: + type: object + properties: + subscriberId: + type: string + description: >- + The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + description: An http url to the profile image of your subscriber + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + required: + - subscriberId + BulkSubscriberCreateDto: + type: object + properties: + subscribers: + type: array + items: + type: string + required: + - subscribers + UpdateSubscriberRequestDto: + type: object + properties: + email: + type: string + firstName: + type: string + lastName: + type: string + phone: + type: string + avatar: + type: string + locale: + type: string + data: + type: object + channels: + type: array + items: + type: string + UpdateSubscriberChannelRequestDto: + type: object + properties: + providerId: + type: string + enum: + - slack + - discord + - msteams + - mattermost + - ryver + - zulip + - grafana-on-call + - getstream + - rocket-chat + - whatsapp-business + - fcm + - apns + - expo + - one-signal + - pushpad + - push-webhook + - pusher-beams + description: The provider identifier for the credentials + integrationIdentifier: + type: string + description: The integration identifier + credentials: + description: Credentials payload for the specified provider + allOf: + - $ref: '#/components/schemas/ChannelCredentials' + required: + - providerId + - credentials + UpdateSubscriberOnlineFlagRequestDto: + type: object + properties: + isOnline: + type: boolean + required: + - isOnline + DeleteSubscriberResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + TemplateResponse: + type: object + properties: + _id: + type: string + description: Unique identifier of the workflow + name: + type: string + description: Name of the workflow + critical: + type: boolean + description: >- + Critical templates will always be delivered to the end user and should be hidden from the subscriber preferences screen + triggers: + description: Triggers are the events that will trigger the workflow. + type: array + items: + type: string + required: + - _id + - name + - critical + - triggers + PreferenceChannels: + type: object + properties: + email: + type: boolean + sms: + type: boolean + in_app: + type: boolean + chat: + type: boolean + push: + type: boolean + Preference: + type: object + properties: + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + channels: + description: >- + Subscriber preferences for the different channels regarding this workflow + allOf: + - $ref: '#/components/schemas/PreferenceChannels' + required: + - enabled + - channels + UpdateSubscriberPreferenceResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - template + - preference + GetSubscriberPreferencesResponseDto: + type: object + properties: + template: + description: The workflow information and if it is critical or not + allOf: + - $ref: '#/components/schemas/TemplateResponse' + preference: + description: The preferences of the subscriber regarding the related workflow + allOf: + - $ref: '#/components/schemas/Preference' + required: + - preference + ChannelPreference: + type: object + properties: + type: + type: string + enum: + - in_app + - email + - sms + - chat + - push + description: The type of channel that is enabled or not + enabled: + type: boolean + description: If channel is enabled or not + required: + - type + - enabled + UpdateSubscriberPreferenceRequestDto: + type: object + properties: + channel: + description: >- + The subscriber preferences for every ChannelTypeEnum for the workflow assigned. + allOf: + - $ref: '#/components/schemas/ChannelPreference' + enabled: + type: boolean + description: >- + Sets if the workflow is fully enabled for all channels or not for the subscriber. + UpdateSubscriberGlobalPreferencesRequestDto: + type: object + properties: + enabled: + type: boolean + description: Enable or disable the subscriber global preferences. + preferences: + description: The subscriber global preferences for every ChannelTypeEnum. + type: array + items: + $ref: '#/components/schemas/ChannelPreference' + FeedResponseDto: + type: object + properties: + totalCount: + type: number + hasMore: + type: boolean + data: + type: array + items: + type: string + pageSize: + type: number + page: + type: number + required: + - hasMore + - data + - pageSize + - page + UnseenCountResponse: + type: object + properties: + count: + type: number + required: + - count + MessageMarkAsRequestDto: + type: object + properties: + messageId: + oneOf: + - type: string + - type: array + items: + type: string + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + required: + - messageId + - markAs + MessageEntity: + type: object + properties: {} + MarkAllMessageAsRequestDto: + type: object + properties: + feedIdentifier: + oneOf: + - type: string + - type: array + items: + type: string + description: Optional feed identifier or array of feed identifiers + markAs: + enum: + - read + - seen + - unread + - unseen + type: string + description: Mark all subscriber messages as read, unread, seen or unseen + required: + - markAs + EmailBlockStyles: + type: object + properties: + textAlign: + type: string + enum: + - center + - left + - right + required: + - textAlign + EmailBlock: + type: object + properties: + type: + enum: + - button + - text + type: string + content: + type: string + url: + type: string + styles: + $ref: '#/components/schemas/EmailBlockStyles' + required: + - type + - content + MessageCTAData: + type: object + properties: + url: + type: string + MessageButton: + type: object + properties: + type: + type: string + enum: + - primary + - secondary + content: + type: string + resultContent: + type: string + required: + - type + - content + MessageActionResult: + type: object + properties: + payload: + type: object + type: + type: string + enum: + - primary + - secondary + MessageAction: + type: object + properties: + status: + type: string + enum: + - pending + - done + buttons: + type: array + items: + $ref: '#/components/schemas/MessageButton' + result: + $ref: '#/components/schemas/MessageActionResult' + MessageCTA: + type: object + properties: + type: + type: string + enum: + - redirect + data: + $ref: '#/components/schemas/MessageCTAData' + action: + $ref: '#/components/schemas/MessageAction' + required: + - data + NotificationGroup: + type: object + properties: + _id: + type: string + name: + type: string + _environmentId: + type: string + _organizationId: + type: string + _parentId: + type: string + required: + - name + - _environmentId + - _organizationId + DigestRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - regular + - backoff + backoff: + type: boolean + backoffAmount: + type: number + backoffUnit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + updateMode: + type: boolean + required: + - type + TimedConfig: + type: object + properties: + atTime: + type: string + weekDays: + type: array + items: + type: string + enum: + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + - sunday + monthDays: + type: array + items: + type: string + ordinal: + type: string + enum: + - '1' + - '2' + - '3' + - '4' + - '5' + - last + ordinalValue: + type: string + enum: + - day + - weekday + - weekend + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + monthlyType: + type: string + enum: + - each + - 'on' + DigestTimedMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + digestKey: + type: string + type: + type: string + enum: + - timed + timed: + $ref: '#/components/schemas/TimedConfig' + required: + - type + DelayRegularMetadata: + type: object + properties: + amount: + type: number + unit: + type: string + enum: + - seconds + - minutes + - hours + - days + - weeks + - months + type: + type: string + enum: + - regular + required: + - type + DelayScheduledMetadata: + type: object + properties: + type: + type: string + enum: + - scheduled + delayPath: + type: string + required: + - type + - delayPath + MessageTemplate: + type: object + properties: {} + NotificationStepVariant: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + NotificationStep: + type: object + properties: + _id: + type: string + uuid: + type: string + name: + type: string + _templateId: + type: string + active: + type: boolean + shouldStopOnFail: + type: boolean + template: + $ref: '#/components/schemas/MessageTemplate' + filters: + type: array + items: + $ref: '#/components/schemas/StepFilter' + _parentId: + type: object + metadata: + oneOf: + - $ref: '#/components/schemas/DigestRegularMetadata' + - $ref: '#/components/schemas/DigestTimedMetadata' + - $ref: '#/components/schemas/DelayRegularMetadata' + - $ref: '#/components/schemas/DelayScheduledMetadata' + replyCallback: + type: object + variants: + $ref: '#/components/schemas/NotificationStepVariant' + NotificationTriggerVariable: + type: object + properties: + name: + type: string + required: + - name + NotificationTrigger: + type: object + properties: + type: + type: string + enum: + - event + identifier: + type: string + variables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + subscriberVariables: + type: array + items: + $ref: '#/components/schemas/NotificationTriggerVariable' + required: + - type + - identifier + - variables + WorkflowResponse: + type: object + properties: + _id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + draft: + type: boolean + preferenceSettings: + $ref: '#/components/schemas/PreferenceChannels' + critical: + type: boolean + tags: + type: array + items: + type: string + steps: + type: array + items: + $ref: '#/components/schemas/NotificationStep' + _organizationId: + type: string + _creatorId: + type: string + _environmentId: + type: string + triggers: + type: array + items: + $ref: '#/components/schemas/NotificationTrigger' + _notificationGroupId: + type: string + _parentId: + type: string + deleted: + type: boolean + deletedAt: + type: string + deletedBy: + type: string + notificationGroup: + $ref: '#/components/schemas/NotificationGroup' + data: + type: object + workflowIntegrationStatus: + type: object + required: + - name + - description + - active + - draft + - preferenceSettings + - critical + - tags + - steps + - _organizationId + - _creatorId + - _environmentId + - triggers + - _notificationGroupId + - deleted + - deletedAt + - deletedBy + MessageResponseDto: + type: object + properties: + _id: + type: string + _templateId: + type: string + _environmentId: + type: string + _messageTemplateId: + type: string + _organizationId: + type: string + _notificationId: + type: string + _subscriberId: + type: string + subscriber: + $ref: '#/components/schemas/SubscriberResponseDto' + template: + $ref: '#/components/schemas/WorkflowResponse' + templateIdentifier: + type: string + createdAt: + type: string + lastSeenDate: + type: string + lastReadDate: + type: string + content: + oneOf: + - $ref: '#/components/schemas/EmailBlock' + - type: string + transactionId: + type: string + subject: + type: string + channel: + enum: + - in_app + - email + - sms + - chat + - push + type: string + read: + type: boolean + seen: + type: boolean + email: + type: string + phone: + type: string + directWebhookUrl: + type: string + providerId: + type: string + deviceTokens: + type: array + items: + type: string + title: + type: string + cta: + $ref: '#/components/schemas/MessageCTA' + _feedId: + type: object + nullable: true + status: + type: string + enum: + - sent + - error + - warning + errorId: + type: string + errorText: + type: string + payload: + type: object + description: The payload that was used to send the notification trigger + overrides: + type: object + description: Provider specific overrides used when triggering the notification + required: + - _templateId + - _environmentId + - _messageTemplateId + - _organizationId + - _notificationId + - _subscriberId + - createdAt + - content + - transactionId + - channel + - read + - seen + - cta + - status + - errorId + - errorText + - payload + - overrides + MarkMessageActionAsSeenDto: + type: object + properties: + status: + enum: + - pending + - done + type: string + description: Message action status + payload: + type: object + description: Message action payload + required: + - status + DeleteMessageResponseDto: + type: object + properties: + acknowledged: + type: boolean + description: A boolean stating the success of the action + status: + type: string + description: The status enum for the performed action + enum: + - deleted + required: + - acknowledged + - status + CreateTopicResponseDto: + type: object + properties: + _id: + type: string + description: The unique identifier for the Topic created. + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + required: + - key + CreateTopicRequestDto: + type: object + properties: + key: + type: string + description: >- + User defined custom key and provided by the user that will be an unique identifier for the Topic created. + name: + type: string + description: >- + User defined custom name and provided by the user that will name the Topic created. + required: + - key + - name + AddSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be associated to the topic + type: array + items: + type: string + required: + - subscribers + TopicSubscriberDto: + type: object + properties: + _organizationId: + type: string + _environmentId: + type: string + _subscriberId: + type: string + _topicId: + type: string + topicKey: + type: string + externalSubscriberId: + type: string + required: + - _organizationId + - _environmentId + - _subscriberId + - _topicId + - topicKey + - externalSubscriberId + RemoveSubscribersRequestDto: + type: object + properties: + subscribers: + description: List of subscriber identifiers that will be removed to the topic + type: array + items: + type: string + required: + - subscribers + TopicDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + FilterTopicsResponseDto: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/TopicDto' + page: + type: number + pageSize: + type: number + totalCount: + type: number + required: + - data + - page + - pageSize + - totalCount + GetTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicResponseDto: + type: object + properties: + _id: + type: string + _organizationId: + type: string + _environmentId: + type: string + key: + type: string + name: + type: string + subscribers: + type: array + items: + type: string + required: + - _organizationId + - _environmentId + - key + - name + - subscribers + RenameTopicRequestDto: + type: object + properties: + name: + type: string + description: >- + User defined custom name and provided by the user to rename the topic. + required: + - name + GeneratePreviewResponseDto: + type: object + properties: {} + headers: + Content-Type: + required: true + description: The MIME type of the response body. + schema: + type: string + example: application/json + RateLimit-Limit: + required: false + description: >- + The number of requests that the client is permitted to make per second. The actual maximum may differ when burst is enabled. + schema: + type: string + example: '100' + RateLimit-Remaining: + required: false + description: The number of requests remaining until the next window. + schema: + type: string + example: '93' + RateLimit-Reset: + required: false + description: >- + The remaining seconds until a request of the same cost will be refreshed. + schema: + type: string + example: '8' + RateLimit-Policy: + required: false + description: The rate limit policy that was used to evaluate the request. + schema: + type: string + example: >- + 100;w=1;burst=110;comment="token bucket";category="trigger";cost="single" + Retry-After: + required: false + description: >- + The number of seconds after which the client may retry the request that was previously rejected. + schema: + type: string + example: '8' + Idempotency-Key: + required: false + description: The idempotency key used to evaluate the request. + schema: + type: string + example: '8' + Idempotency-Replay: + required: false + description: Whether the request was a replay of a previous request. + schema: + type: string + example: 'true' + Link: + required: false + description: A link to the documentation. + schema: + type: string + example: https://docs.novu.co/ +externalDocs: + description: Novu Documentation + url: https://docs.novu.co +x-speakeasy-name-override: + - operationId: ^.*get.* + methodNameOverride: retrieve + - operationId: ^.*retrieve.* + methodNameOverride: retrieve + - operationId: ^.*create.* + methodNameOverride: create + - operationId: ^.*update.* + methodNameOverride: update + - operationId: ^.*list.* + methodNameOverride: list + - operationId: ^.*delete.* + methodNameOverride: delete + - operationId: ^.*remove.* + methodNameOverride: delete +x-speakeasy-retries: + strategy: backoff + backoff: + initialInterval: 500 + maxInterval: 30000 + maxElapsedTime: 3600000 + exponent: 1.5 + statusCodes: + - '408' + - '409' + - '429' + - 5XX + retryConnectionErrors: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index cf9171c0..4d164662 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.445.2 +speakeasyVersion: 1.446.1 sources: json-development: sourceNamespace: json-development - sourceRevisionDigest: sha256:583c98bdfa85b8db8c89c540ff60bba0e87504738c862972b9a53dd8f1cb72e1 - sourceBlobDigest: sha256:9a32d337505c5b553403b49b706fc843ea54f603577cdbb1c532132b14cf8e08 + sourceRevisionDigest: sha256:c77250e635feb6b1fe84fe653d9d7ce35f58224275ff6ec53f2a7f03612152db + sourceBlobDigest: sha256:bc022fff17ca61a16d6bc4756a4a8be369dd384e1f83297043f6620e0e7b67ce tags: - latest - "1.0" @@ -11,10 +11,10 @@ targets: my-first-target: source: json-development sourceNamespace: json-development - sourceRevisionDigest: sha256:583c98bdfa85b8db8c89c540ff60bba0e87504738c862972b9a53dd8f1cb72e1 - sourceBlobDigest: sha256:9a32d337505c5b553403b49b706fc843ea54f603577cdbb1c532132b14cf8e08 + sourceRevisionDigest: sha256:c77250e635feb6b1fe84fe653d9d7ce35f58224275ff6ec53f2a7f03612152db + sourceBlobDigest: sha256:bc022fff17ca61a16d6bc4756a4a8be369dd384e1f83297043f6620e0e7b67ce codeSamplesNamespace: code-samples-typescript - codeSamplesRevisionDigest: sha256:fdc105680e168adee4774e3f3438896f5fa939814d294a84164702026ce6768d + codeSamplesRevisionDigest: sha256:b67b8d3df54fa78c47a53028b19fe74de57e58dc3e244b962d1f91a7e4f97c56 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/FUNCTIONS.md b/FUNCTIONS.md index b68714cd..c9b1a5c4 100644 --- a/FUNCTIONS.md +++ b/FUNCTIONS.md @@ -32,8 +32,6 @@ const novu = new NovuCore({ async function run() { const res = await trigger(novu, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", diff --git a/README.md b/README.md index 7d8a8e14..032dfcc7 100644 --- a/README.md +++ b/README.md @@ -85,8 +85,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -121,8 +119,6 @@ async function run() { events: [ { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -135,8 +131,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -146,8 +140,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -183,7 +175,6 @@ async function run() { const result = await novu.triggerBroadcast({ name: "", payload: {}, - overrides: {}, }); // Handle the result @@ -204,7 +195,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.cancelByTransactionId(""); + const result = await novu.cancel(""); // Handle the result console.log(result); @@ -268,7 +259,7 @@ run(); * [trigger](docs/sdks/novu/README.md#trigger) - Trigger event * [triggerBulk](docs/sdks/novu/README.md#triggerbulk) - Bulk trigger event * [triggerBroadcast](docs/sdks/novu/README.md#triggerbroadcast) - Broadcast event to all -* [cancelByTransactionId](docs/sdks/novu/README.md#cancelbytransactionid) - Cancel triggered event +* [cancel](docs/sdks/novu/README.md#cancel) - Cancel triggered event ### [subscribers](docs/sdks/subscribers/README.md) @@ -352,7 +343,7 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). Available standalone functions -- [`cancelByTransactionId`](docs/sdks/novu/README.md#cancelbytransactionid) - Cancel triggered event +- [`cancel`](docs/sdks/novu/README.md#cancel) - Cancel triggered event - [`environmentsApiKeysList`](docs/sdks/apikeys/README.md#list) - Get api keys - [`environmentsList`](docs/sdks/environments/README.md#list) - Get environments - [`environmentsRetrieve`](docs/sdks/environments/README.md#retrieve) - Get current environment @@ -479,8 +470,6 @@ async function run() { try { result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -543,8 +532,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -579,8 +566,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -673,8 +658,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -712,8 +695,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -766,8 +747,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", diff --git a/USAGE.md b/USAGE.md index 9550b3ba..a07188eb 100644 --- a/USAGE.md +++ b/USAGE.md @@ -11,8 +11,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -47,8 +45,6 @@ async function run() { events: [ { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -61,8 +57,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -72,8 +66,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -109,7 +101,6 @@ async function run() { const result = await novu.triggerBroadcast({ name: "", payload: {}, - overrides: {}, }); // Handle the result @@ -130,7 +121,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.cancelByTransactionId(""); + const result = await novu.cancel(""); // Handle the result console.log(result); diff --git a/docs/sdks/novu/README.md b/docs/sdks/novu/README.md index be1d0edb..21a45ced 100644 --- a/docs/sdks/novu/README.md +++ b/docs/sdks/novu/README.md @@ -12,7 +12,7 @@ Novu Documentation * [trigger](#trigger) - Trigger event * [triggerBulk](#triggerbulk) - Bulk trigger event * [triggerBroadcast](#triggerbroadcast) - Broadcast event to all -* [cancelByTransactionId](#cancelbytransactionid) - Cancel triggered event +* [cancel](#cancel) - Cancel triggered event ## trigger @@ -34,8 +34,6 @@ const novu = new Novu({ async function run() { const result = await novu.trigger({ name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -72,8 +70,6 @@ const novu = new NovuCore({ async function run() { const res = await trigger(novu, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -139,8 +135,6 @@ async function run() { events: [ { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -153,8 +147,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -164,8 +156,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -206,8 +196,6 @@ async function run() { events: [ { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -220,8 +208,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -231,8 +217,6 @@ async function run() { }, { name: "workflow_identifier", - payload: {}, - overrides: {}, to: [ { topicKey: "", @@ -298,7 +282,6 @@ async function run() { const result = await novu.triggerBroadcast({ name: "", payload: {}, - overrides: {}, }); // Handle the result @@ -326,7 +309,6 @@ async function run() { const res = await triggerBroadcast(novu, { name: "", payload: {}, - overrides: {}, }); if (!res.ok) { @@ -361,7 +343,7 @@ run(); | --------------- | --------------- | --------------- | | errors.SDKError | 4XX, 5XX | \*/\* | -## cancelByTransactionId +## cancel Using a previously generated transactionId during the event trigger, @@ -378,7 +360,7 @@ const novu = new Novu({ }); async function run() { - const result = await novu.cancelByTransactionId(""); + const result = await novu.cancel(""); // Handle the result console.log(result); @@ -393,7 +375,7 @@ The standalone function version of this method: ```typescript import { NovuCore } from "@novu/api/core.js"; -import { cancelByTransactionId } from "@novu/api/funcs/cancelByTransactionId.js"; +import { cancel } from "@novu/api/funcs/cancel.js"; // Use `NovuCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -402,7 +384,7 @@ const novu = new NovuCore({ }); async function run() { - const res = await cancelByTransactionId(novu, ""); + const res = await cancel(novu, ""); if (!res.ok) { throw res.error; diff --git a/jsr.json b/jsr.json index 42628871..0ad96ee3 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.21", + "version": "0.0.1-alpha.25", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index 63e703a9..2be5fc72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.21", + "version": "0.0.1-alpha.25", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@novu/api", - "version": "0.0.1-alpha.21", + "version": "0.0.1-alpha.25", "devDependencies": { "@typescript-eslint/eslint-plugin": "^7.7.1", "@typescript-eslint/parser": "^7.7.1", diff --git a/package.json b/package.json index 92813998..20c80d47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@novu/api", - "version": "0.0.1-alpha.21", + "version": "0.0.1-alpha.25", "author": "Novu", "main": "./index.js", "sideEffects": false, diff --git a/sources/code-samples.yaml b/sources/code-samples.yaml index 19a05111..24ca5731 100644 --- a/sources/code-samples.yaml +++ b/sources/code-samples.yaml @@ -26,25 +26,25 @@ actions: "x-codeSamples": - "lang": "typescript" "label": "EventsController_trigger" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.trigger({\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.trigger({\n name: \"workflow_identifier\",\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/events/trigger/broadcast"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_broadcastEventToAll" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBroadcast({\n name: \"\",\n payload: {},\n overrides: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBroadcast({\n name: \"\",\n payload: {},\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/events/trigger/bulk"]["post"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_triggerBulk" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBulk({\n events: [\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n subscriberId: \"\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n payload: {},\n overrides: {},\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.triggerBulk({\n events: [\n {\n name: \"workflow_identifier\",\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n subscriberId: \"\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n {\n name: \"workflow_identifier\",\n to: [\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n {\n topicKey: \"\",\n type: \"Topic\",\n },\n ],\n },\n ],\n });\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/events/trigger/{transactionId}"]["delete"] update: "x-codeSamples": - "lang": "typescript" "label": "EventsController_cancel" - "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.cancelByTransactionId(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" + "source": "import { Novu } from \"@novu/api\";\n\nconst novu = new Novu({\n apiKey: \"\",\n});\n\nasync function run() {\n const result = await novu.cancel(\"\");\n\n // Handle the result\n console.log(result);\n}\n\nrun();" - target: $["paths"]["/v1/execution-details"]["get"] update: "x-codeSamples": diff --git a/sources/json-development.json b/sources/json-development.json index f9f90652..59bce180 100644 --- a/sources/json-development.json +++ b/sources/json-development.json @@ -1234,7 +1234,7 @@ "x-speakeasy-usage-example": { "title": "Cancel Triggered Event" }, - "x-speakeasy-name-override": "cancelByTransactionId", + "x-speakeasy-name-override": "cancel", "summary": "Cancel triggered event", "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ", "parameters": [ diff --git a/sources/openapi.sdk.json b/sources/openapi.sdk.json index 02e7f1c9..f0ae9291 100644 --- a/sources/openapi.sdk.json +++ b/sources/openapi.sdk.json @@ -1,24 +1,14 @@ { "openapi": "3.0.0", "paths": { - "/v1/organizations": { - "post": { - "operationId": "OrganizationController_createOrganization", - "summary": "Create an organization", + "/v1/environments/me": { + "get": { + "operationId": "EnvironmentsControllerV1_getCurrentEnvironment", + "summary": "Get current environment", "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrganizationDto" - } - } - } - }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -45,7 +35,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrganizationResponseDto" + "$ref": "#/components/schemas/EnvironmentResponseDto" } } } @@ -166,17 +156,19 @@ } }, "tags": [ - "Organizations" + "Environments" ], "security": [ { "api-key": [] } ] - }, + } + }, + "/v1/environments": { "get": { - "operationId": "OrganizationController_listOrganizations", - "summary": "Fetch all organizations", + "operationId": "EnvironmentsControllerV1_listMyEnvironments", + "summary": "Get environments", "parameters": [], "responses": { "200": { @@ -209,7 +201,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/OrganizationResponseDto" + "$ref": "#/components/schemas/EnvironmentResponseDto" } } } @@ -331,29 +323,21 @@ } }, "tags": [ - "Organizations" + "Environments" ], "security": [ { "api-key": [] } ] - }, - "patch": { - "operationId": "OrganizationController_rename", - "x-speakeasy-name-override": "rename", - "summary": "Rename organization name", + } + }, + "/v1/environments/api-keys": { + "get": { + "operationId": "EnvironmentsControllerV1_listOrganizationApiKeys", + "x-speakeasy-group": "Environments.ApiKeys", + "summary": "Get api keys", "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RenameOrganizationDto" - } - } - } - }, "responses": { "200": { "description": "Ok", @@ -383,7 +367,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RenameOrganizationDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiKey" + } } } } @@ -504,7 +491,7 @@ } }, "tags": [ - "Organizations" + "Environments" ], "security": [ { @@ -513,11 +500,28 @@ ] } }, - "/v1/organizations/me": { + "/v1/execution-details": { "get": { - "operationId": "OrganizationController_getSelfOrganizationData", - "summary": "Fetch current organization details", - "parameters": [], + "operationId": "ExecutionDetailsController_getExecutionDetailsForNotification", + "summary": "Get execution details", + "parameters": [ + { + "name": "notificationId", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "subscriberId", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "Ok", @@ -547,7 +551,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrganizationResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/ExecutionDetailsResponseDto" + } } } } @@ -668,7 +675,7 @@ } }, "tags": [ - "Organizations" + "Execution Details" ], "security": [ { @@ -677,24 +684,30 @@ ] } }, - "/v1/organizations/members/{memberId}": { - "delete": { - "operationId": "OrganizationController_remove", - "x-speakeasy-group": "Organizations.Members", - "summary": "Remove a member from organization using memberId", - "parameters": [ - { - "name": "memberId", - "required": true, - "in": "path", - "schema": { - "type": "string" + "/v1/events/trigger": { + "post": { + "operationId": "EventsController_trigger", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Trigger Notification Event" + }, + "x-speakeasy-name-override": "trigger", + "summary": "Trigger event", + "description": "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n ", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerEventRequestDto" + } } } - ], + }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -721,7 +734,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MemberResponseDto" + "$ref": "#/components/schemas/TriggerEventResponseDto" } } } @@ -842,7 +855,7 @@ } }, "tags": [ - "Organizations" + "Events" ], "security": [ { @@ -851,15 +864,30 @@ ] } }, - "/v1/organizations/members": { - "get": { - "operationId": "OrganizationController_listOrganizationMembers", - "x-speakeasy-group": "Organizations.Members", - "summary": "Fetch all members of current organizations", + "/v1/events/trigger/bulk": { + "post": { + "operationId": "EventsController_triggerBulk", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Trigger Notification Events in Bulk" + }, + "x-speakeasy-name-override": "triggerBulk", + "summary": "Bulk trigger event", + "description": "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n ", "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkTriggerEventDto" + } + } + } + }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -888,7 +916,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/MemberResponseDto" + "$ref": "#/components/schemas/TriggerEventResponseDto" } } } @@ -1010,7 +1038,7 @@ } }, "tags": [ - "Organizations" + "Events" ], "security": [ { @@ -1019,18 +1047,23 @@ ] } }, - "/v1/organizations/branding": { - "put": { - "operationId": "OrganizationController_updateBrandingDetails", - "x-speakeasy-group": "Organizations.Branding", - "summary": "Update organization branding details", + "/v1/events/trigger/broadcast": { + "post": { + "operationId": "EventsController_broadcastEventToAll", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Broadcast Event to All" + }, + "x-speakeasy-name-override": "triggerBroadcast", + "summary": "Broadcast event to all", + "description": "Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.\n In the future could be used to trigger events to a subset of subscribers based on defined filters.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateBrandingDetailsDto" + "$ref": "#/components/schemas/TriggerEventToAllRequestDto" } } } @@ -1064,7 +1097,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrganizationBrandingResponseDto" + "$ref": "#/components/schemas/TriggerEventResponseDto" } } } @@ -1185,7 +1218,7 @@ } }, "tags": [ - "Organizations" + "Events" ], "security": [ { @@ -1194,14 +1227,28 @@ ] } }, - "/v1/environments/me": { - "get": { - "operationId": "EnvironmentsController_getCurrentEnvironment", - "summary": "Get current environment", - "parameters": [], + "/v1/events/trigger/{transactionId}": { + "delete": { + "operationId": "EventsController_cancel", + "x-speakeasy-group": "", + "x-speakeasy-usage-example": { + "title": "Cancel Triggered Event" + }, + "x-speakeasy-name-override": "cancel", + "summary": "Cancel triggered event", + "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ", + "parameters": [ + { + "name": "transactionId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -1225,10 +1272,11 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EnvironmentResponseDto" + "$ref": "#/components/schemas/DataBooleanDto" } } } @@ -1349,7 +1397,7 @@ } }, "tags": [ - "Environments" + "Events" ], "security": [ { @@ -1358,62 +1406,137 @@ ] } }, - "/v1/environments": { + "/v1/notifications": { "get": { - "operationId": "EnvironmentsController_listMyEnvironments", - "summary": "Get environments", - "parameters": [], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" + "operationId": "NotificationsController_listNotifications", + "summary": "Get notifications", + "parameters": [ + { + "name": "channels", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ] } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EnvironmentResponseDto" - } - } + } + }, + { + "name": "templates", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" } } }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" + { + "name": "emails", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "search", + "required": true, + "in": "query", + "deprecated": true, + "schema": { + "type": "string" + } + }, + { + "name": "subscriberIds", + "required": true, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "default": 0, + "type": "number" + } + }, + { + "name": "transactionId", + "required": false, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + }, + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActivitiesResponseDto" + } + } + } + }, + "409": { + "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" }, "RateLimit-Policy": { "$ref": "#/components/headers/RateLimit-Policy" @@ -1516,7 +1639,7 @@ } }, "tags": [ - "Environments" + "Notifications" ], "security": [ { @@ -1525,11 +1648,11 @@ ] } }, - "/v1/environments/api-keys": { + "/v1/notifications/stats": { "get": { - "operationId": "EnvironmentsController_listOrganizationApiKeys", - "x-speakeasy-group": "Environments.ApiKeys", - "summary": "Get api keys", + "operationId": "NotificationsController_getActivityStats", + "x-speakeasy-group": "Notifications.Stats", + "summary": "Get notification statistics", "parameters": [], "responses": { "200": { @@ -1560,10 +1683,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApiKey" - } + "$ref": "#/components/schemas/ActivityStatsResponseDto" } } } @@ -1684,7 +1804,7 @@ } }, "tags": [ - "Environments" + "Notifications" ], "security": [ { @@ -1693,16 +1813,25 @@ ] } }, - "/v1/environments/api-keys/regenerate": { - "post": { - "operationId": "EnvironmentsController_regenerateOrganizationApiKeys", - "x-speakeasy-name-override": "regenerate", - "x-speakeasy-group": "Environments.ApiKeys", - "summary": "Regenerate api keys", - "parameters": [], + "/v1/notifications/graph/stats": { + "get": { + "operationId": "NotificationsController_getActivityGraphStats", + "x-speakeasy-name-override": "graph", + "x-speakeasy-group": "Notifications.Stats", + "summary": "Get notification graph statistics", + "parameters": [ + { + "name": "days", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + } + ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -1731,7 +1860,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ApiKey" + "$ref": "#/components/schemas/ActivityGraphStatesResponse" } } } @@ -1853,7 +1982,7 @@ } }, "tags": [ - "Environments" + "Notifications" ], "security": [ { @@ -1862,23 +1991,15 @@ ] } }, - "/v1/execution-details": { + "/v1/notifications/{notificationId}": { "get": { - "operationId": "ExecutionDetailsController_getExecutionDetailsForNotification", - "summary": "Get execution details", + "operationId": "NotificationsController_getNotification", + "summary": "Get notification", "parameters": [ { "name": "notificationId", "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "subscriberId", - "required": true, - "in": "query", + "in": "path", "schema": { "type": "string" } @@ -1913,10 +2034,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ExecutionDetailsResponseDto" - } + "$ref": "#/components/schemas/ActivityNotificationResponseDto" } } } @@ -2037,7 +2155,7 @@ } }, "tags": [ - "Execution Details" + "Notifications" ], "security": [ { @@ -2046,43 +2164,25 @@ ] } }, - "/v1/workflows": { - "get": { - "operationId": "WorkflowController_listWorkflows", - "summary": "Get workflows", - "description": "Workflows were previously named notification templates", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "maximum": 100, - "default": 10, - "type": "number" - } - }, - { - "name": "query", - "required": false, - "in": "query", - "description": "A query string to filter the results. It allows filtering based on either the name or trigger identifier of the workflow items.", - "schema": { - "type": "string" + "/v1/notification-groups": { + "post": { + "operationId": "NotificationGroupsController_createNotificationGroup", + "summary": "Create workflow group", + "description": "workflow group was previously named notification group", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" + } } } - ], + }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -2109,7 +2209,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowsResponseDto" + "$ref": "#/components/schemas/NotificationGroupResponseDto" } } } @@ -2230,7 +2330,7 @@ } }, "tags": [ - "Workflows" + "Workflow groups" ], "security": [ { @@ -2238,24 +2338,14 @@ } ] }, - "post": { - "operationId": "WorkflowController_create", - "summary": "Create workflow", - "description": "Workflow was previously named notification template", + "get": { + "operationId": "NotificationGroupsController_listNotificationGroups", + "summary": "Get workflow groups", + "description": "workflow group was previously named notification group", "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateWorkflowRequestDto" - } - } - } - }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -2282,7 +2372,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationGroupResponseDto" + } } } } @@ -2403,7 +2496,7 @@ } }, "tags": [ - "Workflows" + "Workflow groups" ], "security": [ { @@ -2412,14 +2505,14 @@ ] } }, - "/v1/workflows/{workflowId}": { - "put": { - "operationId": "WorkflowController_updateWorkflowById", - "summary": "Update workflow", - "description": "Workflow was previously named notification template", + "/v1/notification-groups/{id}": { + "get": { + "operationId": "NotificationGroupsController_getNotificationGroup", + "summary": "Get workflow group", + "description": "workflow group was previously named notification group", "parameters": [ { - "name": "workflowId", + "name": "id", "required": true, "in": "path", "schema": { @@ -2427,16 +2520,6 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateWorkflowRequestDto" - } - } - } - }, "responses": { "200": { "description": "Ok", @@ -2466,7 +2549,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowResponse" + "$ref": "#/components/schemas/NotificationGroupResponseDto" } } } @@ -2587,7 +2670,7 @@ } }, "tags": [ - "Workflows" + "Workflow groups" ], "security": [ { @@ -2595,13 +2678,13 @@ } ] }, - "delete": { - "operationId": "WorkflowController_deleteWorkflowById", - "summary": "Delete workflow", - "description": "Workflow was previously named notification template", + "patch": { + "operationId": "NotificationGroupsController_updateNotificationGroup", + "summary": "Update workflow group", + "description": "workflow group was previously named notification group", "parameters": [ { - "name": "workflowId", + "name": "id", "required": true, "in": "path", "schema": { @@ -2609,8 +2692,19 @@ } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" + } + } + } + }, "responses": { "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -2634,11 +2728,10 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DataBooleanDto" + "$ref": "#/components/schemas/NotificationGroupResponseDto" } } } @@ -2759,7 +2852,7 @@ } }, "tags": [ - "Workflows" + "Workflow groups" ], "security": [ { @@ -2767,13 +2860,13 @@ } ] }, - "get": { - "operationId": "WorkflowController_getWorkflowById", - "summary": "Get workflow", - "description": "Workflow was previously named notification template", + "delete": { + "operationId": "NotificationGroupsController_deleteNotificationGroup", + "summary": "Delete workflow group", + "description": "workflow group was previously named notification group", "parameters": [ { - "name": "workflowId", + "name": "id", "required": true, "in": "path", "schema": { @@ -2810,7 +2903,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowResponse" + "$ref": "#/components/schemas/DeleteNotificationGroupResponseDto" } } } @@ -2931,7 +3024,7 @@ } }, "tags": [ - "Workflows" + "Workflow groups" ], "security": [ { @@ -2940,16 +3033,15 @@ ] } }, - "/v1/workflows/variables": { + "/v1/integrations": { "get": { - "operationId": "WorkflowController_getWorkflowVariables", - "x-speakeasy-group": "Workflows.Variables", - "summary": "Get available variables", - "description": "Get the variables that can be used in the workflow", + "operationId": "IntegrationsController_listIntegrations", + "summary": "Get integrations", + "description": "Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", "parameters": [], "responses": { "200": { - "description": "Ok", + "description": "The list of integrations belonging to the organization that are successfully returned.", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -2976,7 +3068,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VariablesResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationResponseDto" + } } } } @@ -3097,44 +3192,32 @@ } }, "tags": [ - "Workflows" + "Integrations" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/workflows/{workflowId}/status": { - "put": { - "operationId": "WorkflowController_updateActiveStatus", - "x-speakeasy-group": "Workflows.Status", - "summary": "Update workflow status", - "description": "Workflow was previously named notification template", - "parameters": [ - { - "name": "workflowId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], + }, + "post": { + "operationId": "IntegrationsController_createIntegration", + "summary": "Create integration", + "description": "Create an integration for the current environment the user is based on the API key provided", + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ChangeWorkflowStatusRequestDto" + "$ref": "#/components/schemas/CreateIntegrationRequestDto" } } } }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -3161,7 +3244,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WorkflowResponse" + "$ref": "#/components/schemas/IntegrationResponseDto" } } } @@ -3282,7 +3365,7 @@ } }, "tags": [ - "Workflows" + "Integrations" ], "security": [ { @@ -3291,30 +3374,16 @@ ] } }, - "/v1/events/trigger": { - "post": { - "operationId": "EventsController_trigger", - "x-speakeasy-group": "", - "x-speakeasy-usage-example": { - "title": "Trigger Notification Event" - }, - "x-speakeasy-name-override": "trigger", - "summary": "Trigger event", - "description": "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n ", + "/v1/integrations/active": { + "get": { + "operationId": "IntegrationsController_getActiveIntegrations", + "x-speakeasy-name-override": "listActive", + "summary": "Get active integrations", + "description": "Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TriggerEventRequestDto" - } - } - } - }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "The list of active integrations belonging to the organization that are successfully returned.", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -3341,7 +3410,10 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TriggerEventResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationResponseDto" + } } } } @@ -3462,7 +3534,7 @@ } }, "tags": [ - "Events" + "Integrations" ], "security": [ { @@ -3471,26 +3543,25 @@ ] } }, - "/v1/events/trigger/bulk": { - "post": { - "operationId": "EventsController_triggerBulk", - "x-speakeasy-name-override": "triggerBulk", - "summary": "Bulk trigger event", - "description": "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n ", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BulkTriggerEventDto" - } + "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": { + "get": { + "operationId": "IntegrationsController_getWebhookSupportStatus", + "x-speakeasy-group": "Integrations.Webhooks", + "summary": "Get webhook support status for provider", + "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value", + "parameters": [ + { + "name": "providerOrIntegrationId", + "required": true, + "in": "path", + "schema": { + "type": "string" } } - }, + ], "responses": { - "201": { - "description": "Created", + "200": { + "description": "The status of the webhook for the provider requested", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -3517,10 +3588,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TriggerEventResponseDto" - } + "type": "boolean" } } } @@ -3641,7 +3709,7 @@ } }, "tags": [ - "Events" + "Integrations" ], "security": [ { @@ -3650,19 +3718,26 @@ ] } }, - "/v1/events/trigger/broadcast": { - "post": { - "operationId": "EventsController_broadcastEventToAll", - "x-speakeasy-name-override": "triggerBroadcast", - "summary": "Broadcast event to all", - "description": "Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.\n In the future could be used to trigger events to a subset of subscribers based on defined filters.", - "parameters": [], + "/v1/integrations/{integrationId}": { + "put": { + "operationId": "IntegrationsController_updateIntegrationById", + "summary": "Update integration", + "parameters": [ + { + "name": "integrationId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TriggerEventToAllRequestDto" + "$ref": "#/components/schemas/UpdateIntegrationRequestDto" } } } @@ -3696,18 +3771,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TriggerEventResponseDto" + "$ref": "#/components/schemas/IntegrationResponseDto" } } } }, - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TriggerEventResponseDto" - } + "404": { + "description": "The integration with the integrationId provided does not exist in the database.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" } } }, @@ -3827,24 +3918,20 @@ } }, "tags": [ - "Events" + "Integrations" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/events/trigger/{transactionId}": { + }, "delete": { - "operationId": "EventsController_cancel", - "x-speakeasy-name-override": "cancel", - "summary": "Cancel triggered event", - "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ", + "operationId": "IntegrationsController_removeIntegration", + "summary": "Delete integration", "parameters": [ { - "name": "transactionId", + "name": "integrationId", "required": true, "in": "path", "schema": { @@ -3854,6 +3941,7 @@ ], "responses": { "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -3877,11 +3965,13 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DataBooleanDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/IntegrationResponseDto" + } } } } @@ -4002,7 +4092,7 @@ } }, "tags": [ - "Events" + "Integrations" ], "security": [ { @@ -4011,91 +4101,24 @@ ] } }, - "/v1/notifications": { - "get": { - "operationId": "NotificationsController_listNotifications", - "summary": "Get notifications", + "/v1/integrations/{integrationId}/set-primary": { + "post": { + "operationId": "IntegrationsController_setIntegrationAsPrimary", + "x-speakeasy-name-override": "setAsPrimary", + "summary": "Set integration as primary", "parameters": [ { - "name": "channels", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ] - } - } - }, - { - "name": "templates", + "name": "integrationId", "required": true, - "in": "query", + "in": "path", "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "emails", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "search", - "required": true, - "in": "query", - "deprecated": true, - "schema": { - "type": "string" - } - }, - { - "name": "subscriberIds", - "required": true, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "default": 0, - "type": "number" - } - }, - { - "name": "transactionId", - "required": false, - "in": "query", - "schema": { - "type": "string" + "type": "string" } } ], "responses": { "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -4119,15 +4142,40 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActivitiesResponseDto" + "$ref": "#/components/schemas/IntegrationResponseDto" } } } }, + "404": { + "description": "The integration with the integrationId provided does not exist in the database.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + } + } + }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": { @@ -4244,7 +4292,7 @@ } }, "tags": [ - "Notifications" + "Integrations" ], "security": [ { @@ -4253,15 +4301,51 @@ ] } }, - "/v1/notifications/stats": { + "/v1/subscribers": { "get": { - "operationId": "NotificationsController_getActivityStats", - "x-speakeasy-group": "Notifications.Stats", - "summary": "Get notification statistics", - "parameters": [], + "operationId": "SubscribersController_listSubscribers", + "x-speakeasy-pagination": { + "type": "offsetLimit", + "inputs": [ + { + "name": "page", + "in": "parameters", + "type": "page" + }, + { + "name": "limit", + "in": "parameters", + "type": "limit" + } + ], + "outputs": { + "results": "$.data.resultArray" + } + }, + "summary": "Get subscribers", + "description": "Returns a list of subscribers, could paginated using the `page` and `limit` query parameter", + "parameters": [ + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "maximum": 100, + "default": 10, + "type": "number" + } + } + ], "responses": { "200": { - "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -4285,10 +4369,25 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActivityStatsResponseDto" + "allOf": [ + { + "$ref": "#/components/schemas/PaginatedResponseDto" + }, + { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SubscriberResponseDto" + } + } + } + } + ] } } } @@ -4409,34 +4508,32 @@ } }, "tags": [ - "Notifications" + "Subscribers" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/notifications/graph/stats": { - "get": { - "operationId": "NotificationsController_getActivityGraphStats", - "x-speakeasy-name-override": "graph", - "x-speakeasy-group": "Notifications.Stats", - "summary": "Get notification graph statistics", - "parameters": [ - { - "name": "days", - "required": false, - "in": "query", - "schema": { - "type": "number" + }, + "post": { + "operationId": "SubscribersController_createSubscriber", + "summary": "Create subscriber", + "description": "Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriberRequestDto" + } } } - ], + }, "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -4463,10 +4560,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ActivityGraphStatesResponse" - } + "$ref": "#/components/schemas/SubscriberResponseDto" } } } @@ -4587,7 +4681,7 @@ } }, "tags": [ - "Notifications" + "Subscribers" ], "security": [ { @@ -4596,18 +4690,28 @@ ] } }, - "/v1/notifications/{notificationId}": { + "/v1/subscribers/{subscriberId}": { "get": { - "operationId": "NotificationsController_getNotification", - "summary": "Get notification", + "operationId": "SubscribersController_getSubscriber", + "summary": "Get subscriber", + "description": "Get subscriber by your internal id used to identify the subscriber", "parameters": [ { - "name": "notificationId", + "name": "subscriberId", "required": true, "in": "path", "schema": { "type": "string" } + }, + { + "name": "includeTopics", + "required": false, + "in": "query", + "description": "Includes the topics associated with the subscriber", + "schema": { + "type": "string" + } } ], "responses": { @@ -4639,7 +4743,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ActivityNotificationResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } @@ -4760,34 +4864,41 @@ } }, "tags": [ - "Notifications" + "Subscribers" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/notification-groups": { - "post": { - "operationId": "NotificationGroupsController_createNotificationGroup", - "summary": "Create workflow group", - "description": "workflow group was previously named notification group", - "parameters": [], + }, + "put": { + "operationId": "SubscribersController_updateSubscriber", + "summary": "Update subscriber", + "description": "Used to update the subscriber entity with new information", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" + "$ref": "#/components/schemas/UpdateSubscriberRequestDto" } } } }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -4814,7 +4925,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } @@ -4935,7 +5046,7 @@ } }, "tags": [ - "Workflow groups" + "Subscribers" ], "security": [ { @@ -4943,11 +5054,20 @@ } ] }, - "get": { - "operationId": "NotificationGroupsController_listNotificationGroups", - "summary": "Get workflow groups", - "description": "workflow group was previously named notification group", - "parameters": [], + "delete": { + "operationId": "SubscribersController_removeSubscriber", + "summary": "Delete subscriber", + "description": "Deletes a subscriber entity from the Novu platform", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "description": "Ok", @@ -4977,10 +5097,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" - } + "$ref": "#/components/schemas/DeleteSubscriberResponseDto" } } } @@ -5101,7 +5218,7 @@ } }, "tags": [ - "Workflow groups" + "Subscribers" ], "security": [ { @@ -5110,54 +5227,26 @@ ] } }, - "/v1/notification-groups/{id}": { - "get": { - "operationId": "NotificationGroupsController_getNotificationGroup", - "summary": "Get workflow group", - "description": "workflow group was previously named notification group", - "parameters": [ - { - "name": "id", - "required": true, - "in": "path", - "schema": { - "type": "string" + "/v1/subscribers/bulk": { + "post": { + "operationId": "SubscribersController_bulkCreateSubscribers", + "x-speakeasy-name-override": "createBulk", + "summary": "Bulk create subscribers", + "description": "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n ", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkSubscriberCreateDto" + } } } - ], + }, "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" - } - } - } + "201": { + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", @@ -5275,21 +5364,24 @@ } }, "tags": [ - "Workflow groups" + "Subscribers" ], "security": [ { "api-key": [] } ] - }, - "patch": { - "operationId": "NotificationGroupsController_updateNotificationGroup", - "summary": "Update workflow group", - "description": "workflow group was previously named notification group", + } + }, + "/v1/subscribers/{subscriberId}/credentials": { + "put": { + "operationId": "SubscribersController_updateSubscriberChannel", + "x-speakeasy-group": "Subscribers.Credentials", + "summary": "Update subscriber credentials", + "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.", "parameters": [ { - "name": "id", + "name": "subscriberId", "required": true, "in": "path", "schema": { @@ -5302,7 +5394,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateNotificationGroupRequestDto" + "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" } } } @@ -5336,7 +5428,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotificationGroupResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } @@ -5457,7 +5549,7 @@ } }, "tags": [ - "Workflow groups" + "Subscribers" ], "security": [ { @@ -5465,13 +5557,15 @@ } ] }, - "delete": { - "operationId": "NotificationGroupsController_deleteNotificationGroup", - "summary": "Delete workflow group", - "description": "workflow group was previously named notification group", + "patch": { + "operationId": "SubscribersController_modifySubscriberChannel", + "x-speakeasy-name-override": "append", + "x-speakeasy-group": "Subscribers.Credentials", + "summary": "Modify subscriber credentials", + "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n This endpoint appends provided credentials and deviceTokens to the existing ones.", "parameters": [ { - "name": "id", + "name": "subscriberId", "required": true, "in": "path", "schema": { @@ -5479,6 +5573,16 @@ } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" + } + } + } + }, "responses": { "200": { "description": "Ok", @@ -5508,7 +5612,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DeleteNotificationGroupResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } @@ -5629,7 +5733,7 @@ } }, "tags": [ - "Workflow groups" + "Subscribers" ], "security": [ { @@ -5638,15 +5742,32 @@ ] } }, - "/v1/integrations": { - "get": { - "operationId": "IntegrationsController_listIntegrations", - "summary": "Get integrations", - "description": "Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", - "parameters": [], + "/v1/subscribers/{subscriberId}/credentials/{providerId}": { + "delete": { + "operationId": "SubscribersController_deleteSubscriberCredentials", + "x-speakeasy-group": "Subscribers.Credentials", + "summary": "Delete subscriber credentials by providerId", + "description": "Delete subscriber credentials such as slack and expo tokens.", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "providerId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "responses": { - "200": { - "description": "The list of integrations belonging to the organization that are successfully returned.", + "204": { "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -5670,16 +5791,7 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IntegrationResponseDto" - } - } - } - } + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", @@ -5797,32 +5909,45 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { "api-key": [] } ] - }, - "post": { - "operationId": "IntegrationsController_createIntegration", - "summary": "Create integration", - "description": "Create an integration for the current environment the user is based on the API key provided", - "parameters": [], + } + }, + "/v1/subscribers/{subscriberId}/online-status": { + "patch": { + "operationId": "SubscribersController_updateSubscriberOnlineFlag", + "x-speakeasy-name-override": "updateOnlineFlag", + "x-speakeasy-group": "Subscribers.properties", + "summary": "Update subscriber online status", + "description": "Used to update the subscriber isOnline flag.", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateIntegrationRequestDto" + "$ref": "#/components/schemas/UpdateSubscriberOnlineFlagRequestDto" } } } }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -5849,7 +5974,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/IntegrationResponseDto" + "$ref": "#/components/schemas/SubscriberResponseDto" } } } @@ -5970,7 +6095,7 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { @@ -5979,16 +6104,33 @@ ] } }, - "/v1/integrations/active": { + "/v1/subscribers/{subscriberId}/preferences": { "get": { - "operationId": "IntegrationsController_getActiveIntegrations", - "x-speakeasy-name-override": "listActive", - "summary": "Get active integrations", - "description": "Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change", - "parameters": [], + "operationId": "SubscribersController_listSubscriberPreferences", + "x-speakeasy-group": "Subscribers.Preferences", + "summary": "Get subscriber preferences", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "includeInactiveChannels", + "required": false, + "in": "query", + "description": "A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true", + "schema": { + "type": "boolean" + } + } + ], "responses": { "200": { - "description": "The list of active integrations belonging to the organization that are successfully returned.", + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -6017,7 +6159,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/IntegrationResponseDto" + "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" } } } @@ -6139,24 +6281,22 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": { - "get": { - "operationId": "IntegrationsController_getWebhookSupportStatus", - "x-speakeasy-group": "Integrations.Webhooks", - "summary": "Get webhook support status for provider", - "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value", + }, + "patch": { + "operationId": "SubscribersController_updateSubscriberGlobalPreferences", + "x-speakeasy-name-override": "updateGlobal", + "x-speakeasy-group": "Subscribers.Preferences", + "summary": "Update subscriber global preferences", "parameters": [ { - "name": "providerOrIntegrationId", + "name": "subscriberId", "required": true, "in": "path", "schema": { @@ -6164,9 +6304,19 @@ } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto" + } + } + } + }, "responses": { "200": { - "description": "The status of the webhook for the provider requested", + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -6193,7 +6343,7 @@ "content": { "application/json": { "schema": { - "type": "boolean" + "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" } } } @@ -6314,7 +6464,7 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { @@ -6323,30 +6473,44 @@ ] } }, - "/v1/integrations/{integrationId}": { - "put": { - "operationId": "IntegrationsController_updateIntegrationById", - "summary": "Update integration", + "/v1/subscribers/{subscriberId}/preferences/{parameter}": { + "get": { + "operationId": "SubscribersController_getSubscriberPreferenceByLevel", + "x-speakeasy-name-override": "retrieveByLevel", + "x-speakeasy-group": "Subscribers.Preferences", + "summary": "Get subscriber preferences by level", "parameters": [ { - "name": "integrationId", + "name": "includeInactiveChannels", + "required": false, + "in": "query", + "description": "A flag which specifies if the inactive workflow channels should be included in the retrieved preferences. Default is true", + "schema": { + "type": "boolean" + } + }, + { + "name": "parameter", "required": true, "in": "path", + "description": "the preferences level to be retrieved (template / global) ", "schema": { + "enum": [ + "global", + "template" + ], "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateIntegrationRequestDto" - } + }, + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" } } - }, + ], "responses": { "200": { "description": "Ok", @@ -6376,37 +6540,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/IntegrationResponseDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/GetSubscriberPreferencesResponseDto" + } } } } }, - "404": { - "description": "The integration with the integrationId provided does not exist in the database.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": { @@ -6523,7 +6664,7 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { @@ -6531,12 +6672,21 @@ } ] }, - "delete": { - "operationId": "IntegrationsController_removeIntegration", - "summary": "Delete integration", + "patch": { + "operationId": "SubscribersController_updateSubscriberPreference", + "x-speakeasy-group": "Subscribers.Preferences", + "summary": "Update subscriber preference", "parameters": [ { - "name": "integrationId", + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "parameter", "required": true, "in": "path", "schema": { @@ -6544,6 +6694,16 @@ } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriberPreferenceRequestDto" + } + } + } + }, "responses": { "200": { "description": "Ok", @@ -6573,10 +6733,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IntegrationResponseDto" - } + "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" } } } @@ -6697,7 +6854,7 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { @@ -6706,24 +6863,67 @@ ] } }, - "/v1/integrations/{integrationId}/set-primary": { - "post": { - "operationId": "IntegrationsController_setIntegrationAsPrimary", - "x-speakeasy-name-override": "setAsPrimary", - "summary": "Set integration as primary", + "/v1/subscribers/{subscriberId}/notifications/feed": { + "get": { + "operationId": "SubscribersController_getNotificationsFeed", + "x-speakeasy-group": "Subscribers.Notifications", + "summary": "Get in-app notification feed for a particular subscriber", "parameters": [ { - "name": "integrationId", + "name": "subscriberId", "required": true, "in": "path", "schema": { "type": "string" } + }, + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "maximum": 100, + "default": 10, + "type": "number" + } + }, + { + "name": "read", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "seen", + "required": false, + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "payload", + "required": false, + "in": "query", + "description": "Base64 encoded string of the partial payload JSON object", + "example": "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", + "schema": { + "type": "string" + } } ], "responses": { "200": { - "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -6747,50 +6947,29 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IntegrationResponseDto" - } - } - } - }, - "201": { "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/IntegrationResponseDto" + "allOf": [ + { + "$ref": "#/components/schemas/PaginatedResponseDto" + }, + { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FeedResponseDto" + } + } + } + } + ] } } } }, - "404": { - "description": "The integration with the integrationId provided does not exist in the database.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": { @@ -6907,7 +7086,7 @@ } }, "tags": [ - "Integrations" + "Subscribers" ], "security": [ { @@ -6916,41 +7095,41 @@ ] } }, - "/v1/changes": { + "/v1/subscribers/{subscriberId}/notifications/unseen": { "get": { - "operationId": "ChangesController_getChanges", - "summary": "Get changes", + "operationId": "SubscribersController_getUnseenCount", + "x-speakeasy-name-override": "unseenCount", + "x-speakeasy-group": "Subscribers.Notifications", + "summary": "Get the unseen in-app notifications count for subscribers feed", "parameters": [ { - "name": "page", - "required": false, + "name": "seen", + "required": true, "in": "query", "schema": { - "type": "number" + "type": "boolean" } }, { - "name": "limit", - "required": false, - "in": "query", + "name": "subscriberId", + "required": true, + "in": "path", "schema": { - "maximum": 100, - "default": 10, - "type": "number" + "type": "string" } }, { - "name": "promoted", + "name": "limit", "required": true, "in": "query", "schema": { - "default": "false", - "type": "string" + "type": "number" } } ], "responses": { "200": { + "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -6974,11 +7153,10 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ChangesResponseDto" + "$ref": "#/components/schemas/UnseenCountResponse" } } } @@ -7099,7 +7277,7 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { @@ -7108,42 +7286,42 @@ ] } }, - "/v1/changes/count": { - "get": { - "operationId": "ChangesController_getChangesCount", - "x-speakeasy-name-override": "count", - "summary": "Get changes count", - "parameters": [], - "responses": { - "200": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" + "/v1/subscribers/{subscriberId}/messages/mark-as": { + "post": { + "operationId": "SubscribersController_markMessagesAs", + "x-speakeasy-name-override": "markAllAs", + "x-speakeasy-group": "Subscribers.Messages", + "summary": "Mark a subscriber messages as seen, read, unseen or unread", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageMarkAsRequestDto" } - }, + } + } + }, + "responses": { + "201": { "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DataNumberDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageEntity" + } } } } @@ -7264,7 +7442,7 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { @@ -7273,55 +7451,39 @@ ] } }, - "/v1/changes/bulk/apply": { + "/v1/subscribers/{subscriberId}/messages/mark-all": { "post": { - "operationId": "ChangesController_bulkApplyDiff", - "x-speakeasy-name-override": "applyBulk", - "summary": "Apply changes", - "parameters": [], + "operationId": "SubscribersController_markAllUnreadAsRead", + "x-speakeasy-name-override": "markAll", + "x-speakeasy-group": "Subscribers.Messages", + "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BulkApplyChangeDto" + "$ref": "#/components/schemas/MarkAllMessageAsRequestDto" } } } }, "responses": { "201": { - "description": "Created", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, + "description": "", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChangeResponseDto" - } + "type": "number" } } } @@ -7442,7 +7604,7 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { @@ -7451,14 +7613,31 @@ ] } }, - "/v1/changes/{changeId}/apply": { + "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}": { "post": { - "operationId": "ChangesController_applyDiff", - "x-speakeasy-name-override": "apply", - "summary": "Apply change", + "operationId": "SubscribersController_markActionAsSeen", + "x-speakeasy-name-override": "updateAsSeen", + "x-speakeasy-group": "Subscribers.Messages", + "summary": "Mark message action as seen", "parameters": [ { - "name": "changeId", + "name": "messageId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "required": true, + "in": "path", + "schema": { + + } + }, + { + "name": "subscriberId", "required": true, "in": "path", "schema": { @@ -7466,6 +7645,16 @@ } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MarkMessageActionAsSeenDto" + } + } + } + }, "responses": { "201": { "description": "Created", @@ -7495,10 +7684,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChangeResponseDto" - } + "$ref": "#/components/schemas/MessageResponseDto" } } } @@ -7619,7 +7805,7 @@ } }, "tags": [ - "Changes" + "Subscribers" ], "security": [ { @@ -7628,93 +7814,69 @@ ] } }, - "/v1/subscribers": { + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": { "get": { - "operationId": "SubscribersController_listSubscribers", - "x-speakeasy-pagination": { - "type": "offsetLimit", - "inputs": [ - { - "name": "page", - "in": "parameters", - "type": "page" - }, - { - "name": "limit", - "in": "parameters", - "type": "limit" - } - ], - "outputs": { - "results": "$.data.resultArray" - } - }, - "summary": "Get subscribers", - "description": "Returns a list of subscribers, could paginated using the `page` and `limit` query parameter", + "operationId": "SubscribersController_chatOauthCallback", + "x-speakeasy-name-override": "chatAccessOauthCallBack", + "x-speakeasy-group": "Subscribers.Authentication", + "summary": "Handle providers oauth redirect", "parameters": [ { - "name": "page", - "required": false, + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "providerId", + "required": true, + "in": "path", + "schema": { + + } + }, + { + "name": "code", + "required": true, "in": "query", "schema": { - "type": "number" + "type": "string" } }, { - "name": "limit", + "name": "hmacHash", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "environmentId", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "integrationIdentifier", "required": false, "in": "query", "schema": { - "maximum": 100, - "default": 10, - "type": "number" + "type": "string" } } ], "responses": { "200": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, "description": "", "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/PaginatedResponseDto" - }, - { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriberResponseDto" - } - } - } - } - ] + "type": "object" } } } @@ -7842,55 +8004,59 @@ "api-key": [] } ] - }, - "post": { - "operationId": "SubscribersController_createSubscriber", - "summary": "Create subscriber", - "description": "Creates a subscriber entity, in the Novu platform. The subscriber will be later used to receive notifications, and access notification feeds. Communication credentials such as email, phone number, and 3 rd party credentials i.e slack tokens could be later associated to this entity.", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateSubscriberRequestDto" - } + } + }, + "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": { + "get": { + "operationId": "SubscribersController_chatAccessOauth", + "x-speakeasy-name-override": "chatAccessOauth", + "x-speakeasy-group": "Subscribers.Authentication", + "summary": "Handle chat oauth", + "parameters": [ + { + "name": "subscriberId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "providerId", + "required": true, + "in": "path", + "schema": { + + } + }, + { + "name": "hmacHash", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "environmentId", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "integrationIdentifier", + "required": false, + "in": "query", + "schema": { + "type": "string" } } - }, + ], "responses": { - "201": { - "description": "Created", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" - } - } - } + "200": { + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", @@ -8017,24 +8183,67 @@ ] } }, - "/v1/subscribers/{subscriberId}": { + "/v1/messages": { "get": { - "operationId": "SubscribersController_getSubscriber", - "summary": "Get subscriber", - "description": "Get subscriber by your internal id used to identify the subscriber", + "operationId": "MessagesController_getMessages", + "summary": "Get messages", + "description": "Returns a list of messages, could paginate using the `page` query parameter", "parameters": [ + { + "name": "channel", + "required": false, + "in": "query", + "schema": { + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ], + "type": "string" + } + }, { "name": "subscriberId", - "required": true, - "in": "path", + "required": false, + "in": "query", "schema": { "type": "string" } + }, + { + "name": "transactionId", + "required": false, + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "page", + "required": false, + "in": "query", + "schema": { + "default": 0, + "type": "number" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "default": 10, + "type": "number" + } } ], "responses": { "200": { - "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -8058,10 +8267,11 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "$ref": "#/components/schemas/ActivitiesResponseDto" } } } @@ -8182,21 +8392,23 @@ } }, "tags": [ - "Subscribers" + "Messages" ], "security": [ { "api-key": [] } ] - }, - "put": { - "operationId": "SubscribersController_updateSubscriber", - "summary": "Update subscriber", - "description": "Used to update the subscriber entity with new information", + } + }, + "/v1/messages/{messageId}": { + "delete": { + "operationId": "MessagesController_deleteMessage", + "summary": "Delete message", + "description": "Deletes a message entity from the Novu platform", "parameters": [ { - "name": "subscriberId", + "name": "messageId", "required": true, "in": "path", "schema": { @@ -8204,16 +8416,6 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberRequestDto" - } - } - } - }, "responses": { "200": { "description": "Ok", @@ -8243,7 +8445,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "$ref": "#/components/schemas/DeleteMessageResponseDto" } } } @@ -8364,21 +8566,40 @@ } }, "tags": [ - "Subscribers" + "Messages" ], "security": [ { "api-key": [] } ] - }, + } + }, + "/v1/messages/transaction/{transactionId}": { "delete": { - "operationId": "SubscribersController_removeSubscriber", - "summary": "Delete subscriber", - "description": "Deletes a subscriber entity from the Novu platform", + "operationId": "MessagesController_deleteMessagesByTransactionId", + "x-speakeasy-name-override": "deleteByTransactionId", + "summary": "Delete messages by transactionId", + "description": "Deletes messages entity from the Novu platform using TransactionId of message", "parameters": [ { - "name": "subscriberId", + "name": "channel", + "required": false, + "in": "query", + "description": "The channel of the message to be deleted", + "schema": { + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ], + "type": "string" + } + }, + { + "name": "transactionId", "required": true, "in": "path", "schema": { @@ -8387,8 +8608,7 @@ } ], "responses": { - "200": { - "description": "Ok", + "204": { "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -8412,13 +8632,7 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteSubscriberResponseDto" - } - } - } + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", @@ -8536,7 +8750,7 @@ } }, "tags": [ - "Subscribers" + "Messages" ], "security": [ { @@ -8545,29 +8759,25 @@ ] } }, - "/v1/subscribers/bulk": { + "/v1/topics": { "post": { - "operationId": "SubscribersController_bulkCreateSubscribers", - "x-speakeasy-name-override": "createBulk", - "summary": "Bulk create subscribers", - "description": "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n ", + "operationId": "TopicsController_createTopic", + "summary": "Topic creation", + "description": "Create a topic", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BulkSubscriberCreateDto" + "$ref": "#/components/schemas/CreateTopicRequestDto" } } } }, "responses": { "201": { - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "description": "Created", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -8589,25 +8799,18 @@ }, "Idempotency-Replay": { "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" + "$ref": "#/components/schemas/CreateTopicResponseDto" } } } }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", + "409": { + "description": "The request could not be completed due to a conflict with the current state of the target resource.", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -8632,19 +8835,22 @@ }, "Retry-After": { "$ref": "#/components/headers/Retry-After" + }, + "Link": { + "$ref": "#/components/headers/Link" } }, "content": { "application/json": { "schema": { "type": "string", - "example": "API rate limit exceeded" + "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" } } } }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "429": { + "description": "The client has sent too many requests in a given amount of time. ", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -8675,51 +8881,97 @@ "application/json": { "schema": { "type": "string", - "example": "Please wait some time, then try again." + "example": "API rate limit exceeded" } } } - } + }, + "503": { + "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", + "headers": { + "Content-Type": { + "$ref": "#/components/headers/Content-Type" + }, + "RateLimit-Limit": { + "$ref": "#/components/headers/RateLimit-Limit" + }, + "RateLimit-Remaining": { + "$ref": "#/components/headers/RateLimit-Remaining" + }, + "RateLimit-Reset": { + "$ref": "#/components/headers/RateLimit-Reset" + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "Idempotency-Key": { + "$ref": "#/components/headers/Idempotency-Key" + }, + "Idempotency-Replay": { + "$ref": "#/components/headers/Idempotency-Replay" + }, + "Retry-After": { + "$ref": "#/components/headers/Retry-After" + } + }, + "content": { + "application/json": { + "schema": { + "type": "string", + "example": "Please wait some time, then try again." + } + } + } + } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/subscribers/{subscriberId}/credentials": { - "put": { - "operationId": "SubscribersController_updateSubscriberChannel", - "x-speakeasy-group": "Subscribers.Credentials", - "summary": "Update subscriber credentials", - "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.", + }, + "get": { + "operationId": "TopicsController_listTopics", + "summary": "Filter topics", + "description": "Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter", "parameters": [ { - "name": "subscriberId", - "required": true, - "in": "path", + "name": "page", + "required": false, + "in": "query", + "description": "Number of page for the pagination", + "schema": { + "minimum": 0, + "default": 0, + "type": "number" + } + }, + { + "name": "pageSize", + "required": false, + "in": "query", + "description": "Size of page for the pagination", + "schema": { + "minimum": 0, + "default": 10, + "type": "number" + } + }, + { + "name": "key", + "required": false, + "in": "query", + "description": "Topic key", "schema": { "type": "string" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" - } - } - } - }, "responses": { "200": { - "description": "Ok", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -8743,10 +8995,11 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "$ref": "#/components/schemas/FilterTopicsResponseDto" } } } @@ -8867,25 +9120,28 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } ] - }, - "patch": { - "operationId": "SubscribersController_modifySubscriberChannel", - "x-speakeasy-name-override": "append", - "x-speakeasy-group": "Subscribers.Credentials", - "summary": "Modify subscriber credentials", - "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n This endpoint appends provided credentials and deviceTokens to the existing ones.", + } + }, + "/v1/topics/{topicKey}/subscribers": { + "post": { + "operationId": "TopicsController_addSubscribers", + "x-speakeasy-name-override": "assign", + "x-speakeasy-group": "Topics.Subscribers", + "summary": "Subscribers addition", + "description": "Add subscribers to a topic by key", "parameters": [ { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } @@ -8896,14 +9152,13 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto" + "$ref": "#/components/schemas/AddSubscribersRequestDto" } } } }, "responses": { - "200": { - "description": "Ok", + "204": { "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -8927,13 +9182,7 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" - } - } - } + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", @@ -9051,7 +9300,7 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { @@ -9060,56 +9309,42 @@ ] } }, - "/v1/subscribers/{subscriberId}/credentials/{providerId}": { - "delete": { - "operationId": "SubscribersController_deleteSubscriberCredentials", - "x-speakeasy-group": "Subscribers.Credentials", - "summary": "Delete subscriber credentials by providerId", - "description": "Delete subscriber credentials such as slack and expo tokens.", + "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": { + "get": { + "operationId": "TopicsController_getTopicSubscriber", + "x-speakeasy-group": "Topics.Subscribers", + "summary": "Check topic subscriber", + "description": "Check if a subscriber belongs to a certain topic", "parameters": [ { - "name": "subscriberId", + "name": "externalSubscriberId", "required": true, "in": "path", + "description": "The external subscriber id", "schema": { "type": "string" } }, { - "name": "providerId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } } ], "responses": { - "204": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TopicSubscriberDto" + } } - }, - "description": "" + } }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", @@ -9227,7 +9462,7 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { @@ -9236,18 +9471,18 @@ ] } }, - "/v1/subscribers/{subscriberId}/online-status": { - "patch": { - "operationId": "SubscribersController_updateSubscriberOnlineFlag", - "x-speakeasy-name-override": "updateOnlineFlag", - "x-speakeasy-group": "Subscribers.properties", - "summary": "Update subscriber online status", - "description": "Used to update the subscriber isOnline flag.", + "/v1/topics/{topicKey}/subscribers/removal": { + "post": { + "operationId": "TopicsController_removeSubscribers", + "x-speakeasy-group": "Topics.Subscribers", + "summary": "Subscribers removal", + "description": "Remove subscribers from a topic", "parameters": [ { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } @@ -9258,14 +9493,13 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSubscriberOnlineFlagRequestDto" + "$ref": "#/components/schemas/RemoveSubscribersRequestDto" } } } }, "responses": { - "200": { - "description": "Ok", + "204": { "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -9289,13 +9523,7 @@ "$ref": "#/components/headers/Idempotency-Replay" } }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SubscriberResponseDto" - } - } - } + "description": "" }, "409": { "description": "The request could not be completed due to a conflict with the current state of the target resource.", @@ -9413,7 +9641,7 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { @@ -9422,24 +9650,25 @@ ] } }, - "/v1/subscribers/{subscriberId}/preferences": { - "get": { - "operationId": "SubscribersController_listSubscriberPreferences", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Get subscriber preferences", + "/v1/topics/{topicKey}": { + "delete": { + "operationId": "TopicsController_deleteTopic", + "summary": "Delete topic", + "description": "Delete a topic by its topic key if it has no subscribers", "parameters": [ { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } } ], "responses": { - "200": { - "description": "Ok", + "204": { + "description": "The topic has been deleted correctly", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -9462,20 +9691,10 @@ "Idempotency-Replay": { "$ref": "#/components/headers/Idempotency-Replay" } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" - } - } - } } }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "404": { + "description": "The topic with the key provided does not exist in the database so it can not be deleted.", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -9497,168 +9716,11 @@ }, "Idempotency-Replay": { "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "patch": { - "operationId": "SubscribersController_updateSubscriberGlobalPreferences", - "x-speakeasy-name-override": "updateGlobal", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Update subscriber global preferences", - "parameters": [ - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberGlobalPreferencesRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" - } } } }, "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", + "description": "The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic.", "headers": { "Content-Type": { "$ref": "#/components/headers/Content-Type" @@ -9680,12 +9742,6 @@ }, "Idempotency-Replay": { "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" } }, "content": { @@ -9773,34 +9829,24 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { "api-key": [] } ] - } - }, - "/v1/subscribers/{subscriberId}/preferences/{parameter}": { + }, "get": { - "operationId": "SubscribersController_getSubscriberPreferenceByLevel", - "x-speakeasy-name-override": "retrieveByLevel", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Get subscriber preferences by level", + "operationId": "TopicsController_getTopic", + "summary": "Get topic", + "description": "Get a topic by its topic key", "parameters": [ { - "name": "parameter", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "subscriberId", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } @@ -9835,10 +9881,7 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GetSubscriberPreferencesResponseDto" - } + "$ref": "#/components/schemas/GetTopicResponseDto" } } } @@ -9959,7 +10002,7 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { @@ -9968,22 +10011,16 @@ ] }, "patch": { - "operationId": "SubscribersController_updateSubscriberPreference", - "x-speakeasy-group": "Subscribers.Preferences", - "summary": "Update subscriber preference", + "operationId": "TopicsController_renameTopic", + "x-speakeasy-name-override": "rename", + "summary": "Rename a topic", + "description": "Rename a topic by providing a new name", "parameters": [ { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "parameter", + "name": "topicKey", "required": true, "in": "path", + "description": "The topic key", "schema": { "type": "string" } @@ -9994,7 +10031,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceRequestDto" + "$ref": "#/components/schemas/RenameTopicRequestDto" } } } @@ -10028,7 +10065,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSubscriberPreferenceResponseDto" + "$ref": "#/components/schemas/RenameTopicResponseDto" } } } @@ -10149,7 +10186,7 @@ } }, "tags": [ - "Subscribers" + "Topics" ], "security": [ { @@ -10157,7324 +10194,311 @@ } ] } + } + }, + "info": { + "title": "Novu API", + "description": "Novu REST API. Please see https://docs.novu.co/api-reference for more details.", + "version": "1.0", + "contact": { + "name": "Novu Support", + "url": "https://discord.gg/novu", + "email": "support@novu.co" }, - "/v1/subscribers/{subscriberId}/notifications/feed": { - "get": { - "operationId": "SubscribersController_getNotificationsFeed", - "x-speakeasy-group": "Subscribers.Notifications", - "summary": "Get in-app notification feed for a particular subscriber", - "parameters": [ - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "maximum": 100, - "default": 10, - "type": "number" - } - }, - { - "name": "read", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "seen", - "required": false, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "payload", - "required": false, - "in": "query", - "description": "Base64 encoded string of the partial payload JSON object", - "example": "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/PaginatedResponseDto" - }, - { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - } - ] - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] + "termsOfService": "https://novu.co/terms", + "license": { + "name": "MIT", + "url": "https://opensource.org/license/mit" + } + }, + "tags": [ + { + "name": "Events", + "description": "Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions.", + "externalDocs": { + "url": "https://docs.novu.co/workflows" } }, - "/v1/subscribers/{subscriberId}/notifications/unseen": { - "get": { - "operationId": "SubscribersController_getUnseenCount", - "x-speakeasy-name-override": "unseenCount", - "x-speakeasy-group": "Subscribers.Notifications", - "summary": "Get the unseen in-app notifications count for subscribers feed", - "parameters": [ - { - "name": "seen", - "required": true, - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "required": true, - "in": "query", - "schema": { - "type": "number" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnseenCountResponse" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Subscribers", + "description": "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.", + "externalDocs": { + "url": "https://docs.novu.co/subscribers/subscribers" } }, - "/v1/subscribers/{subscriberId}/messages/mark-as": { - "post": { - "operationId": "SubscribersController_markMessagesAs", - "x-speakeasy-name-override": "markAllAs", - "x-speakeasy-group": "Subscribers.Messages", - "summary": "Mark a subscriber messages as seen, read, unseen or unread", - "parameters": [ - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessageMarkAsRequestDto" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessageEntity" - } - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Topics", + "description": "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.", + "externalDocs": { + "url": "https://docs.novu.co/subscribers/topics" } }, - "/v1/subscribers/{subscriberId}/messages/mark-all": { - "post": { - "operationId": "SubscribersController_markAllUnreadAsRead", - "x-speakeasy-name-override": "markAll", - "x-speakeasy-group": "Subscribers.Messages", - "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.", - "parameters": [ - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MarkAllMessageAsRequestDto" - } - } - } - }, - "responses": { - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "number" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Notification", + "description": "A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness.", + "externalDocs": { + "url": "https://docs.novu.co/getting-started/introduction" } }, - "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}": { - "post": { - "operationId": "SubscribersController_markActionAsSeen", - "x-speakeasy-name-override": "updateAsSeen", - "x-speakeasy-group": "Subscribers.Messages", - "summary": "Mark message action as seen", - "parameters": [ - { - "name": "messageId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "type", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MarkMessageActionAsSeenDto" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessageResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Integrations", + "description": "With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers.", + "externalDocs": { + "url": "https://docs.novu.co/channels-and-providers/integration-store" } }, - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": { - "get": { - "operationId": "SubscribersController_chatOauthCallback", - "x-speakeasy-name-override": "chatAccessOauthCallBack", - "x-speakeasy-group": "Subscribers.Authentication", - "summary": "Handle providers oauth redirect", - "parameters": [ - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "providerId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "code", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "hmacHash", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "environmentId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "integrationIdentifier", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Layouts", + "description": "Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform.", + "externalDocs": { + "url": "https://docs.novu.co/content-creation-design/layouts" } }, - "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": { - "get": { - "operationId": "SubscribersController_chatAccessOauth", - "x-speakeasy-name-override": "chatAccessOauth", - "x-speakeasy-group": "Subscribers.Authentication", - "summary": "Handle chat oauth", - "parameters": [ - { - "name": "subscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "providerId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "hmacHash", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "environmentId", - "required": true, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "integrationIdentifier", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Subscribers" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Workflows", + "description": "All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system.", + "externalDocs": { + "url": "https://docs.novu.co/workflows" } }, - "/v1/feeds": { - "post": { - "operationId": "FeedsController_createFeed", - "summary": "Create feed", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateFeedRequestDto" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Feeds" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "FeedsController_getFeeds", - "summary": "Get feeds", - "parameters": [], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Feeds" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Notification Templates", + "description": "Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name." + }, + { + "name": "Workflow groups", + "description": "Workflow groups are used to organize workflows into logical groups." + }, + { + "name": "Changes", + "description": "Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready.", + "externalDocs": { + "url": "https://docs.novu.co/platform/environments#promoting-pending-changes-to-production" } }, - "/v1/feeds/{feedId}": { - "delete": { - "operationId": "FeedsController_deleteFeedById", - "summary": "Delete feed", - "parameters": [ - { - "name": "feedId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedResponseDto" - } - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Feeds" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Environments", + "description": "Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another.", + "externalDocs": { + "url": "https://docs.novu.co/platform/environments" } }, - "/v1/layouts": { - "post": { - "operationId": "LayoutsController_PropertyDescriptor", - "x-speakeasy-name-override": "create", - "summary": "Layout creation", - "description": "Create a layout", - "parameters": [], - "responses": { - "201": { - "description": "Created", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateLayoutResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "LayoutsController_listLayouts", - "summary": "Filter layouts", - "description": "Returns a list of layouts that can be paginated using the `page` query parameter and filtered by the environment where it is executed from the organization the user belongs to.", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "description": "Number of page for pagination", - "schema": { - "minimum": 0, - "type": "number" - } - }, - { - "name": "pageSize", - "required": false, - "in": "query", - "description": "Size of page for pagination", - "schema": { - "minimum": 0, - "type": "number" - } - }, - { - "name": "sortBy", - "required": false, - "in": "query", - "description": "Sort field. Currently only supported `createdAt`", - "schema": { - "type": "string" - } - }, - { - "name": "orderBy", - "required": false, - "in": "query", - "description": "Direction of the sorting query param", - "schema": { - "enum": [ - "ASC", - "DESC" - ], - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The list of layouts that match the criteria of the query params are successfully returned.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "400": { - "description": "Page size can not be larger than the page size limit.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] + { + "name": "Inbound Parse", + "description": "Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format.", + "externalDocs": { + "url": "https://docs.novu.co/platform/inbound-parse-webhook" } }, - "/v1/layouts/{layoutId}": { - "get": { - "operationId": "LayoutsController_getLayout", - "summary": "Get layout", - "description": "Get a layout by its ID", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetLayoutResponseDto" - } - } - } - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "delete": { - "operationId": "LayoutsController_deleteLayout", - "summary": "Delete layout", - "description": "Execute a soft delete of a layout given a certain ID.", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The layout has been deleted correctly", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database so it can not be deleted.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "Either you are trying to delete a layout that is being used or a layout that is the default in the environment.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "patch": { - "operationId": "LayoutsController_updateLayout", - "summary": "Update a layout", - "description": "Update the name, content and variables of a layout. Also change it to be default or no.", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateLayoutRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateLayoutResponseDto" - } - } - } - }, - "400": { - "description": "The payload provided or the URL param are not right.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database so it can not be updated.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "One default layout is needed. If you are trying to turn a default layout as not default, you should turn a different layout as default first and automatically it will be done by the system.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "example": "One default layout is required" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/layouts/{layoutId}/default": { - "post": { - "operationId": "LayoutsController_setDefaultLayout", - "x-speakeasy-name-override": "setAsDefault", - "summary": "Set default layout", - "description": "Sets the default layout for the environment and updates to non default to the existing default layout (if any).", - "parameters": [ - { - "name": "layoutId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The selected layout has been set as the default for the environment.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "404": { - "description": "The layout with the layoutId provided does not exist in the database so it can not be set as the default for the environment.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Layouts" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/messages": { - "get": { - "operationId": "MessagesController_getMessages", - "summary": "Get messages", - "description": "Returns a list of messages, could paginate using the `page` query parameter", - "parameters": [ - { - "name": "channel", - "required": false, - "in": "query", - "schema": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], - "type": "string" - } - }, - { - "name": "subscriberId", - "required": false, - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "transactionId", - "required": false, - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "default": 0, - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "default": 10, - "type": "number" - } - } - ], - "responses": { - "200": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ActivitiesResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Messages" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/messages/{messageId}": { - "delete": { - "operationId": "MessagesController_deleteMessage", - "summary": "Delete message", - "description": "Deletes a message entity from the Novu platform", - "parameters": [ - { - "name": "messageId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DeleteMessageResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Messages" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/messages/transaction/{transactionId}": { - "delete": { - "operationId": "MessagesController_deleteMessagesByTransactionId", - "x-speakeasy-name-override": "deleteByTransactionId", - "summary": "Delete messages by transactionId", - "description": "Deletes messages entity from the Novu platform using TransactionId of message", - "parameters": [ - { - "name": "channel", - "required": false, - "in": "query", - "description": "The channel of the message to be deleted", - "schema": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], - "type": "string" - } - }, - { - "name": "transactionId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Messages" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics": { - "post": { - "operationId": "TopicsController_createTopic", - "summary": "Topic creation", - "description": "Create a topic", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTopicRequestDto" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTopicResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "TopicsController_listTopics", - "summary": "Filter topics", - "description": "Returns a list of topics that can be paginated using the `page` query parameter and filtered by the topic key with the `key` query parameter", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "description": "Number of page for the pagination", - "schema": { - "minimum": 0, - "default": 0, - "type": "number" - } - }, - { - "name": "pageSize", - "required": false, - "in": "query", - "description": "Size of page for the pagination", - "schema": { - "minimum": 0, - "default": 10, - "type": "number" - } - }, - { - "name": "key", - "required": false, - "in": "query", - "description": "Topic key", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FilterTopicsResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}/subscribers": { - "post": { - "operationId": "TopicsController_addSubscribers", - "x-speakeasy-name-override": "assign", - "x-speakeasy-group": "Topics.Subscribers", - "summary": "Subscribers addition", - "description": "Add subscribers to a topic by key", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddSubscribersRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "" - }, - "204": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": { - "get": { - "operationId": "TopicsController_getTopicSubscriber", - "x-speakeasy-group": "Topics.Subscribers", - "summary": "Check topic subscriber", - "description": "Check if a subscriber belongs to a certain topic", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - }, - { - "name": "externalSubscriberId", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TopicSubscriberDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}/subscribers/removal": { - "post": { - "operationId": "TopicsController_removeSubscribers", - "x-speakeasy-group": "Topics.Subscribers", - "summary": "Subscribers removal", - "description": "Remove subscribers from a topic", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RemoveSubscribersRequestDto" - } - } - } - }, - "responses": { - "204": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "description": "" - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/topics/{topicKey}": { - "delete": { - "operationId": "TopicsController_deleteTopic", - "summary": "Delete topic", - "description": "Delete a topic by its topic key if it has no subscribers", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The topic has been deleted correctly", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "404": { - "description": "The topic with the key provided does not exist in the database so it can not be deleted.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "The topic you are trying to delete has subscribers assigned to it. Delete the subscribers before deleting the topic.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "get": { - "operationId": "TopicsController_getTopic", - "summary": "Get topic", - "description": "Get a topic by its topic key", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTopicResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "patch": { - "operationId": "TopicsController_renameTopic", - "x-speakeasy-name-override": "rename", - "summary": "Rename a topic", - "description": "Rename a topic by providing a new name", - "parameters": [ - { - "name": "topicKey", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RenameTopicRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RenameTopicResponseDto" - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Topics" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/tenants": { - "get": { - "operationId": "TenantController_listTenants", - "x-speakeasy-pagination": { - "type": "offsetLimit", - "inputs": [ - { - "name": "page", - "in": "parameters", - "type": "page" - }, - { - "name": "limit", - "in": "parameters", - "type": "limit" - } - ], - "outputs": { - "results": "$.data.resultArray" - } - }, - "summary": "Get tenants", - "description": "Returns a list of tenants, could paginated using the `page` and `limit` query parameter", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "schema": { - "type": "number" - } - }, - { - "name": "limit", - "required": false, - "in": "query", - "schema": { - "maximum": 100, - "default": 10, - "type": "number" - } - } - ], - "responses": { - "200": { - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/PaginatedResponseDto" - }, - { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GetTenantResponseDto" - } - } - } - } - ] - } - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "post": { - "operationId": "TenantController_createTenant", - "summary": "Create tenant", - "description": "Create tenant under the current environment", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTenantRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTenantResponseDto" - } - } - } - }, - "201": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateTenantResponseDto" - } - } - } - }, - "409": { - "description": "A tenant with the same identifier is already exist.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - } - }, - "/v1/tenants/{identifier}": { - "get": { - "operationId": "TenantController_getTenantById", - "summary": "Get tenant", - "description": "Get tenant by your internal id used to identify the tenant", - "parameters": [ - { - "name": "identifier", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTenantResponseDto" - } - } - } - }, - "404": { - "description": "The tenant with the identifier provided does not exist in the database.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "patch": { - "operationId": "TenantController_updateTenant", - "summary": "Update tenant", - "description": "Update tenant by your internal id used to identify the tenant", - "parameters": [ - { - "name": "identifier", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateTenantRequestDto" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateTenantResponseDto" - } - } - } - }, - "404": { - "description": "The tenant with the identifier provided does not exist in the database.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - }, - "delete": { - "operationId": "TenantController_removeTenant", - "summary": "Delete tenant", - "description": "Deletes a tenant entity from the Novu platform", - "parameters": [ - { - "name": "identifier", - "required": true, - "in": "path", - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "The tenant has been deleted correctly", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "404": { - "description": "The tenant with the identifier provided does not exist in the database so it can not be deleted.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - } - } - }, - "409": { - "description": "The request could not be completed due to a conflict with the current state of the target resource.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - }, - "Link": { - "$ref": "#/components/headers/Link" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second" - } - } - } - }, - "429": { - "description": "The client has sent too many requests in a given amount of time. ", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "API rate limit exceeded" - } - } - } - }, - "503": { - "description": "The server is currently unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay.", - "headers": { - "Content-Type": { - "$ref": "#/components/headers/Content-Type" - }, - "RateLimit-Limit": { - "$ref": "#/components/headers/RateLimit-Limit" - }, - "RateLimit-Remaining": { - "$ref": "#/components/headers/RateLimit-Remaining" - }, - "RateLimit-Reset": { - "$ref": "#/components/headers/RateLimit-Reset" - }, - "RateLimit-Policy": { - "$ref": "#/components/headers/RateLimit-Policy" - }, - "Idempotency-Key": { - "$ref": "#/components/headers/Idempotency-Key" - }, - "Idempotency-Replay": { - "$ref": "#/components/headers/Idempotency-Replay" - }, - "Retry-After": { - "$ref": "#/components/headers/Retry-After" - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "example": "Please wait some time, then try again." - } - } - } - } - }, - "tags": [ - "Tenants" - ], - "security": [ - { - "api-key": [] - } - ] - } - } - }, - "info": { - "title": "Novu API", - "description": "Novu REST API. Please see https://docs.novu.co/api-reference for more details.", - "version": "1.0", - "contact": { - "name": "Novu Support", - "url": "https://discord.gg/novu", - "email": "support@novu.co" - }, - "termsOfService": "https://novu.co/terms", - "license": { - "name": "MIT", - "url": "https://opensource.org/license/mit" - } - }, - "tags": [ - { - "name": "Events", - "description": "Events represent a change in state of a subscriber. They are used to trigger workflows, and enable you to send notifications to subscribers based on their actions.", - "externalDocs": { - "url": "https://docs.novu.co/workflows" - } - }, - { - "name": "Subscribers", - "description": "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.", - "externalDocs": { - "url": "https://docs.novu.co/subscribers/subscribers" - } - }, - { - "name": "Topics", - "description": "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.", - "externalDocs": { - "url": "https://docs.novu.co/subscribers/topics" - } - }, - { - "name": "Notification", - "description": "A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness.", - "externalDocs": { - "url": "https://docs.novu.co/getting-started/introduction" - } - }, - { - "name": "Integrations", - "description": "With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers.", - "externalDocs": { - "url": "https://docs.novu.co/channels-and-providers/integration-store" - } - }, - { - "name": "Layouts", - "description": "Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform.", - "externalDocs": { - "url": "https://docs.novu.co/content-creation-design/layouts" - } - }, - { - "name": "Workflows", - "description": "All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system.", - "externalDocs": { - "url": "https://docs.novu.co/workflows" - } - }, - { - "name": "Notification Templates", - "description": "Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name." - }, - { - "name": "Workflow groups", - "description": "Workflow groups are used to organize workflows into logical groups." - }, - { - "name": "Changes", - "description": "Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready.", - "externalDocs": { - "url": "https://docs.novu.co/platform/environments#promoting-pending-changes-to-production" - } - }, - { - "name": "Environments", - "description": "Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another.", - "externalDocs": { - "url": "https://docs.novu.co/platform/environments" - } - }, - { - "name": "Inbound Parse", - "description": "Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format.", - "externalDocs": { - "url": "https://docs.novu.co/platform/inbound-parse-webhook" - } - }, - { - "name": "Feeds", - "description": "Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type.", - "externalDocs": { - "url": "https://docs.novu.co/activity-feed" - } - }, - { - "name": "Tenants", - "description": "A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations.", - "externalDocs": { - "url": "https://docs.novu.co/tenants" - } - }, - { - "name": "Messages", - "description": "A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages.", - "externalDocs": { - "url": "https://docs.novu.co/workflows/messages" - } - }, - { - "name": "Organizations", - "description": "An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account.", - "externalDocs": { - "url": "https://docs.novu.co/platform/organizations" - } - }, - { - "name": "Execution Details", - "description": "Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution.", - "externalDocs": { - "url": "https://docs.novu.co/activity-feed" - } - } - ], - "servers": [ - { - "url": "https://api.novu.co" - }, - { - "url": "https://eu.api.novu.co" - } - ], - "components": { - "securitySchemes": { - "api-key": { - "type": "apiKey", - "in": "header", - "name": "Authorization", - "description": "API key authentication. Allowed headers-- \"Authorization: ApiKey \"." - } - }, - "schemas": { - "DataWrapperDto": { - "type": "object", - "properties": { - "data": { - "type": "object" - } - }, - "required": [ - "data" - ] - }, - "OrganizationBrandingResponseDto": { - "type": "object", - "properties": { - "direction": { - "enum": [ - "ltr", - "trl" - ], - "type": "string" - }, - "logo": { - "type": "string" - }, - "color": { - "type": "string" - }, - "fontColor": { - "type": "string" - }, - "contentBackground": { - "type": "string" - }, - "fontFamily": { - "type": "string" - } - }, - "required": [ - "logo", - "color", - "fontColor", - "contentBackground" - ] - }, - "IPartnerConfigurationResponseDto": { - "type": "object", - "properties": { - "projectIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "accessToken": { - "type": "string" - }, - "configurationId": { - "type": "string" - }, - "teamId": { - "type": "string" - }, - "partnerType": { - "type": "string", - "enum": [ - "vercel" - ], - "description": "Partner Type Enum" - } - }, - "required": [ - "accessToken", - "configurationId", - "partnerType" - ] - }, - "OrganizationResponseDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "logo": { - "type": "string" - }, - "branding": { - "$ref": "#/components/schemas/OrganizationBrandingResponseDto" - }, - "partnerConfigurations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IPartnerConfigurationResponseDto" - } - } - }, - "required": [ - "name", - "branding" - ] - }, - "CreateOrganizationDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "logo": { - "type": "string" - }, - "jobTitle": { - "enum": [ - "engineer", - "engineering_manager", - "architect", - "product_manager", - "designer", - "cxo_founder", - "marketing_manager", - "other" - ], - "type": "string" - }, - "domain": { - "type": "string" - }, - "productUseCases": { - "type": "object" - } - }, - "required": [ - "name" - ] - }, - "MemberUserDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "email": { - "type": "string" - } - }, - "required": [ - "_id", - "firstName", - "lastName", - "email" - ] - }, - "MemberInviteDTO": { - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "token": { - "type": "string" - }, - "invitationDate": { - "format": "date-time", - "type": "string" - }, - "answerDate": { - "format": "date-time", - "type": "string" - }, - "_inviterId": { - "type": "string" - } - }, - "required": [ - "email", - "token", - "invitationDate", - "_inviterId" - ] - }, - "MemberResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "_userId": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/MemberUserDto" - }, - "roles": { - "enum": [ - "admin", - "member" - ], - "type": "string" - }, - "invite": { - "$ref": "#/components/schemas/MemberInviteDTO" - }, - "memberStatus": { - "enum": [ - "new", - "active", - "invited" - ], - "type": "string" - }, - "_organizationId": { - "type": "string" - } - }, - "required": [ - "_id", - "_userId", - "_organizationId" - ] - }, - "UpdateBrandingDetailsDto": { - "type": "object", - "properties": { - "logo": { - "type": "string" - }, - "color": { - "type": "string" - }, - "fontColor": { - "type": "string" - }, - "contentBackground": { - "type": "string" - }, - "fontFamily": { - "type": "string" - } - }, - "required": [ - "logo", - "color", - "fontColor", - "contentBackground" - ] - }, - "RenameOrganizationDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - }, - "EnvironmentResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "apiKeys": { - "type": "array", - "items": { - "type": "object" - } - }, - "_parentId": { - "type": "string" - } - }, - "required": [ - "name", - "_organizationId", - "identifier", - "_parentId" - ] - }, - "ApiKey": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "_userId": { - "type": "string" - } - }, - "required": [ - "key", - "_userId" - ] - }, - "ExecutionDetailsResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "_jobId": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_notificationId": { - "type": "string" - }, - "_notificationTemplateId": { - "type": "string" - }, - "_subscriberId": { - "type": "string" - }, - "_messageId": { - "type": "string" - }, - "providerId": { - "type": "string" - }, - "transactionId": { - "type": "string" - }, - "channel": { - "type": "string", - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push", - "digest", - "trigger", - "delay", - "custom" - ] - }, - "detail": { - "type": "string" - }, - "source": { - "type": "string", - "enum": [ - "Credentials", - "Internal", - "Payload", - "Webhook" - ] - }, - "status": { - "type": "string", - "enum": [ - "Success", - "Warning", - "Failed", - "Pending", - "Queued", - "ReadConfirmation" - ] - }, - "isTest": { - "type": "boolean" - }, - "isRetry": { - "type": "boolean" - }, - "createdAt": { - "type": "string" - } - }, - "required": [ - "_organizationId", - "_jobId", - "_environmentId", - "_notificationId", - "_notificationTemplateId", - "_subscriberId", - "transactionId", - "channel", - "detail", - "source", - "status", - "isTest", - "isRetry" - ] - }, - "NotificationGroup": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "_parentId": { - "type": "string" - } - }, - "required": [ - "name", - "_environmentId", - "_organizationId" - ] - }, - "PreferenceChannels": { - "type": "object", - "properties": { - "email": { - "type": "boolean" - }, - "sms": { - "type": "boolean" - }, - "in_app": { - "type": "boolean" - }, - "chat": { - "type": "boolean" - }, - "push": { - "type": "boolean" - } - } - }, - "DigestRegularMetadata": { - "type": "object", - "properties": { - "amount": { - "type": "number" - }, - "unit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "digestKey": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "regular", - "backoff" - ] - }, - "backoff": { - "type": "boolean" - }, - "backoffAmount": { - "type": "number" - }, - "backoffUnit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "updateMode": { - "type": "boolean" - } - }, - "required": [ - "type" - ] - }, - "TimedConfig": { - "type": "object", - "properties": { - "atTime": { - "type": "string" - }, - "weekDays": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "monday", - "tuesday", - "wednesday", - "thursday", - "friday", - "saturday", - "sunday" - ] - } - }, - "monthDays": { - "type": "array", - "items": { - "type": "string" - } - }, - "ordinal": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4", - "5", - "last" - ] - }, - "ordinalValue": { - "type": "string", - "enum": [ - "day", - "weekday", - "weekend", - "sunday", - "monday", - "tuesday", - "wednesday", - "thursday", - "friday", - "saturday" - ] - }, - "monthlyType": { - "type": "string", - "enum": [ - "each", - "on" - ] - } - } - }, - "DigestTimedMetadata": { - "type": "object", - "properties": { - "amount": { - "type": "number" - }, - "unit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "digestKey": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "timed" - ] - }, - "timed": { - "$ref": "#/components/schemas/TimedConfig" - } - }, - "required": [ - "type" - ] - }, - "DelayRegularMetadata": { - "type": "object", - "properties": { - "amount": { - "type": "number" - }, - "unit": { - "type": "string", - "enum": [ - "seconds", - "minutes", - "hours", - "days", - "weeks", - "months" - ] - }, - "type": { - "type": "string", - "enum": [ - "regular" - ] - } - }, - "required": [ - "type" - ] - }, - "DelayScheduledMetadata": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "scheduled" - ] - }, - "delayPath": { - "type": "string" - } - }, - "required": [ - "type", - "delayPath" - ] - }, - "MessageTemplate": { - "type": "object", - "properties": {} - }, - "FieldFilterPart": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "value": { - "type": "string" - }, - "operator": { - "type": "string", - "enum": [ - "LARGER", - "SMALLER", - "LARGER_EQUAL", - "SMALLER_EQUAL", - "EQUAL", - "NOT_EQUAL", - "ALL_IN", - "ANY_IN", - "NOT_IN", - "BETWEEN", - "NOT_BETWEEN", - "LIKE", - "NOT_LIKE", - "IN" - ] - }, - "on": { - "type": "string", - "enum": [ - "subscriber", - "payload" - ] - } - }, - "required": [ - "field", - "value", - "operator", - "on" - ] - }, - "StepFilter": { - "type": "object", - "properties": { - "isNegated": { - "type": "boolean" - }, - "type": { - "type": "string", - "enum": [ - "BOOLEAN", - "TEXT", - "DATE", - "NUMBER", - "STATEMENT", - "LIST", - "MULTI_LIST", - "GROUP" - ] - }, - "value": { - "type": "string", - "enum": [ - "AND", - "OR" - ] - }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FieldFilterPart" - } - } - }, - "required": [ - "isNegated", - "type", - "value", - "children" - ] - }, - "NotificationStepVariant": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_templateId": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "shouldStopOnFail": { - "type": "boolean" - }, - "template": { - "$ref": "#/components/schemas/MessageTemplate" - }, - "filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StepFilter" - } - }, - "_parentId": { - "type": "object" - }, - "metadata": { - "oneOf": [ - { - "$ref": "#/components/schemas/DigestRegularMetadata" - }, - { - "$ref": "#/components/schemas/DigestTimedMetadata" - }, - { - "$ref": "#/components/schemas/DelayRegularMetadata" - }, - { - "$ref": "#/components/schemas/DelayScheduledMetadata" - } - ] - }, - "replyCallback": { - "type": "object" - } - } - }, - "NotificationStep": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "_templateId": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "shouldStopOnFail": { - "type": "boolean" - }, - "template": { - "$ref": "#/components/schemas/MessageTemplate" - }, - "filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StepFilter" - } - }, - "_parentId": { - "type": "object" - }, - "metadata": { - "oneOf": [ - { - "$ref": "#/components/schemas/DigestRegularMetadata" - }, - { - "$ref": "#/components/schemas/DigestTimedMetadata" - }, - { - "$ref": "#/components/schemas/DelayRegularMetadata" - }, - { - "$ref": "#/components/schemas/DelayScheduledMetadata" - } - ] - }, - "replyCallback": { - "type": "object" - }, - "variants": { - "$ref": "#/components/schemas/NotificationStepVariant" - } - } - }, - "NotificationTriggerVariable": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - }, - "NotificationTrigger": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "event" - ] - }, - "identifier": { - "type": "string" - }, - "variables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationTriggerVariable" - } - }, - "subscriberVariables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationTriggerVariable" - } - } - }, - "required": [ - "type", - "identifier", - "variables" - ] - }, - "WorkflowResponse": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "draft": { - "type": "boolean" - }, - "preferenceSettings": { - "$ref": "#/components/schemas/PreferenceChannels" - }, - "critical": { - "type": "boolean" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - } - }, - "steps": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationStep" - } - }, - "_organizationId": { - "type": "string" - }, - "_creatorId": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "triggers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationTrigger" - } - }, - "_notificationGroupId": { - "type": "string" - }, - "_parentId": { - "type": "string" - }, - "deleted": { - "type": "boolean" - }, - "deletedAt": { - "type": "string" - }, - "deletedBy": { - "type": "string" - }, - "notificationGroup": { - "$ref": "#/components/schemas/NotificationGroup" - }, - "data": { - "type": "object" - }, - "workflowIntegrationStatus": { - "type": "object" - } - }, - "required": [ - "name", - "description", - "active", - "draft", - "preferenceSettings", - "critical", - "tags", - "steps", - "_organizationId", - "_creatorId", - "_environmentId", - "triggers", - "_notificationGroupId", - "deleted", - "deletedAt", - "deletedBy" - ] - }, - "WorkflowsResponseDto": { - "type": "object", - "properties": { - "totalCount": { - "type": "number" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WorkflowResponse" - } - }, - "pageSize": { - "type": "number" - }, - "page": { - "type": "number" + { + "name": "Feeds", + "description": "Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type.", + "externalDocs": { + "url": "https://docs.novu.co/activity-feed" + } + }, + { + "name": "Tenants", + "description": "A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations.", + "externalDocs": { + "url": "https://docs.novu.co/tenants" + } + }, + { + "name": "Messages", + "description": "A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages.", + "externalDocs": { + "url": "https://docs.novu.co/workflows/messages" + } + }, + { + "name": "Organizations", + "description": "An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account.", + "externalDocs": { + "url": "https://docs.novu.co/platform/organizations" + } + }, + { + "name": "Execution Details", + "description": "Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution.", + "externalDocs": { + "url": "https://docs.novu.co/activity-feed" + } + } + ], + "servers": [ + { + "url": "https://api.novu.co" + }, + { + "url": "https://eu.api.novu.co" + } + ], + "components": { + "securitySchemes": { + "api-key": { + "type": "apiKey", + "in": "header", + "name": "Authorization", + "description": "API key authentication. Allowed headers-- \"Authorization: ApiKey \u003Capi_key\u003E\"." + } + }, + "schemas": { + "DataWrapperDto": { + "type": "object", + "properties": { + "data": { + "type": "object" } }, "required": [ - "totalCount", - "data", - "pageSize", - "page" + "data" ] }, - "UpdateWorkflowRequestDto": { + "EnvironmentResponseDto": { "type": "object", "properties": { - "name": { + "_id": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "type": "string" - } + "name": { + "type": "string" }, - "description": { - "type": "string", - "maxLength": 300 + "_organizationId": { + "type": "string" }, "identifier": { "type": "string" }, - "steps": { + "apiKeys": { "type": "array", "items": { - "$ref": "#/components/schemas/NotificationStep" + "type": "string" } }, - "notificationGroupId": { + "_parentId": { "type": "string" }, - "critical": { - "type": "boolean" - }, - "preferenceSettings": { - "$ref": "#/components/schemas/PreferenceChannels" - }, - "data": { - "type": "object" + "slug": { + "type": "string" } }, "required": [ "name", - "notificationGroupId" - ] - }, - "DataBooleanDto": { - "type": "object", - "properties": { - "data": { - "type": "boolean" - } - }, - "required": [ - "data" + "_organizationId", + "identifier", + "_parentId" ] }, - "VariablesResponseDto": { + "ApiKey": { "type": "object", "properties": { - "translations": { - "type": "object" + "key": { + "type": "string" }, - "system": { - "type": "object" + "_userId": { + "type": "string" } }, "required": [ - "translations", - "system" + "key", + "_userId" ] }, - "CreateWorkflowRequestDto": { + "ExecutionDetailsResponseDto": { "type": "object", "properties": { - "name": { + "_id": { "type": "string" }, - "notificationGroupId": { + "_organizationId": { "type": "string" }, - "notificationGroup": { - "type": "object" + "_jobId": { + "type": "string" }, - "tags": { - "type": "array", - "items": { - "type": "string" - } + "_environmentId": { + "type": "string" }, - "description": { - "type": "string", - "maxLength": 1000 + "_notificationId": { + "type": "string" }, - "steps": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationStep" - } + "_notificationTemplateId": { + "type": "string" }, - "active": { - "type": "boolean" + "_subscriberId": { + "type": "string" }, - "draft": { - "type": "boolean", - "deprecated": true + "_messageId": { + "type": "string" }, - "critical": { - "type": "boolean" + "providerId": { + "type": "string" }, - "preferenceSettings": { - "$ref": "#/components/schemas/PreferenceChannels" + "transactionId": { + "type": "string" + }, + "channel": { + "type": "string", + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push", + "digest", + "trigger", + "delay", + "custom" + ] }, - "blueprintId": { + "detail": { "type": "string" }, - "data": { - "type": "object" - } - }, - "required": [ - "name", - "notificationGroupId", - "steps" - ] - }, - "ChangeWorkflowStatusRequestDto": { - "type": "object", - "properties": { - "active": { + "source": { + "type": "string", + "enum": [ + "Credentials", + "Internal", + "Payload", + "Webhook" + ] + }, + "status": { + "type": "string", + "enum": [ + "Success", + "Warning", + "Failed", + "Pending", + "Queued", + "ReadConfirmation" + ] + }, + "isTest": { "type": "boolean" + }, + "isRetry": { + "type": "boolean" + }, + "createdAt": { + "type": "string" } }, "required": [ - "active" + "_organizationId", + "_jobId", + "_environmentId", + "_notificationId", + "_notificationTemplateId", + "_subscriberId", + "transactionId", + "channel", + "detail", + "source", + "status", + "isTest", + "isRetry" ] }, "TriggerEventResponseDto": { @@ -17518,8 +10542,7 @@ "type": "object", "properties": { "topicKey": { - "type": "string", - "example": "topic_key" + "type": "string" }, "type": { "enum": [ @@ -17549,38 +10572,6 @@ } } }, - "ChannelCredentialsDto": { - "type": "object", - "properties": { - "webhookUrl": { - "type": "string" - }, - "deviceTokens": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "SubscriberChannelDto": { - "type": "object", - "properties": { - "integrationIdentifier": { - "type": "string" - }, - "providerId": { - "type": "object" - }, - "credentials": { - "$ref": "#/components/schemas/ChannelCredentialsDto" - } - }, - "required": [ - "providerId", - "credentials" - ] - }, "SubscriberPayloadDto": { "type": "object", "properties": { @@ -17613,7 +10604,7 @@ "channels": { "type": "array", "items": { - "$ref": "#/components/schemas/SubscriberChannelDto" + "type": "string" } } }, @@ -17696,6 +10687,12 @@ "$ref": "#/components/schemas/TenantPayloadDto" } ] + }, + "bridgeUrl": { + "type": "string" + }, + "controls": { + "type": "object" } }, "required": [ @@ -17779,170 +10776,136 @@ "payload" ] }, - "ActivityNotificationSubscriberResponseDto": { + "DataBooleanDto": { "type": "object", "properties": { - "firstName": { - "type": "string" + "data": { + "type": "boolean" + } + }, + "required": [ + "data" + ] + }, + "ActivitiesResponseDto": { + "type": "object", + "properties": { + "hasMore": { + "type": "boolean" }, - "_id": { - "type": "string" + "data": { + "type": "array", + "items": { + "type": "string" + } }, - "lastName": { - "type": "string" + "pageSize": { + "type": "number" }, - "email": { - "type": "string" + "page": { + "type": "number" + } + }, + "required": [ + "hasMore", + "data", + "pageSize", + "page" + ] + }, + "ActivityStatsResponseDto": { + "type": "object", + "properties": { + "weeklySent": { + "type": "number" }, - "phone": { - "type": "string" + "monthlySent": { + "type": "number" } }, "required": [ - "_id" + "weeklySent", + "monthlySent" ] }, - "ActivityNotificationTemplateResponseDto": { + "ActivityGraphStatesResponse": { "type": "object", "properties": { "_id": { "type": "string" }, - "name": { - "type": "string" + "count": { + "type": "number" }, - "triggers": { + "templates": { "type": "array", "items": { - "$ref": "#/components/schemas/NotificationTrigger" + "type": "string" + } + }, + "channels": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ] } } }, "required": [ - "name", - "triggers" + "_id", + "count", + "templates", + "channels" ] }, - "ActivityNotificationExecutionDetailResponseDto": { + "ActivityNotificationSubscriberResponseDto": { "type": "object", "properties": { - "_id": { - "type": "string" - }, - "_jobId": { + "firstName": { "type": "string" }, - "status": { - "enum": [ - "Success", - "Warning", - "Failed", - "Pending", - "Queued", - "ReadConfirmation" - ], + "_id": { "type": "string" }, - "detail": { + "lastName": { "type": "string" }, - "isRetry": { - "type": "boolean" - }, - "isTest": { - "type": "boolean" - }, - "providerId": { - "type": "object" - }, - "raw": { + "email": { "type": "string" }, - "source": { - "enum": [ - "Credentials", - "Internal", - "Payload", - "Webhook" - ], - "type": "string" - } - }, - "required": [ - "_id", - "_jobId", - "status", - "detail", - "isRetry", - "isTest", - "providerId", - "source" - ] - }, - "MessageTemplateDto": { - "type": "object", - "properties": {} - }, - "ActivityNotificationStepResponseDto": { - "type": "object", - "properties": { - "_id": { + "phone": { "type": "string" - }, - "active": { - "type": "boolean" - }, - "filters": { - "$ref": "#/components/schemas/StepFilter" - }, - "template": { - "$ref": "#/components/schemas/MessageTemplateDto" } }, "required": [ - "_id", - "active", - "filters" + "_id" ] }, - "ActivityNotificationJobResponseDto": { + "ActivityNotificationTemplateResponseDto": { "type": "object", "properties": { "_id": { "type": "string" }, - "type": { + "name": { "type": "string" }, - "digest": { - "type": "object" - }, - "executionDetails": { + "triggers": { "type": "array", "items": { - "$ref": "#/components/schemas/ActivityNotificationExecutionDetailResponseDto" + "type": "string" } - }, - "step": { - "$ref": "#/components/schemas/ActivityNotificationStepResponseDto" - }, - "payload": { - "type": "object" - }, - "providerId": { - "type": "object" - }, - "status": { - "type": "string" } }, "required": [ - "_id", - "type", - "executionDetails", - "step", - "providerId", - "status" + "name", + "triggers" ] }, "ActivityNotificationResponseDto": { @@ -18000,7 +10963,7 @@ "jobs": { "type": "array", "items": { - "$ref": "#/components/schemas/ActivityNotificationJobResponseDto" + "type": "string" } } }, @@ -18010,83 +10973,6 @@ "transactionId" ] }, - "ActivitiesResponseDto": { - "type": "object", - "properties": { - "hasMore": { - "type": "boolean" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ActivityNotificationResponseDto" - } - }, - "pageSize": { - "type": "number" - }, - "page": { - "type": "number" - } - }, - "required": [ - "hasMore", - "data", - "pageSize", - "page" - ] - }, - "ActivityStatsResponseDto": { - "type": "object", - "properties": { - "weeklySent": { - "type": "number" - }, - "monthlySent": { - "type": "number" - } - }, - "required": [ - "weeklySent", - "monthlySent" - ] - }, - "ActivityGraphStatesResponse": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "count": { - "type": "number" - }, - "templates": { - "type": "array", - "items": { - "type": "string" - } - }, - "channels": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ] - } - } - }, - "required": [ - "_id", - "count", - "templates", - "channels" - ] - }, "NotificationGroupResponseDto": { "type": "object", "properties": { @@ -18260,16 +11146,102 @@ "state": { "type": "string" }, - "externalLink": { - "type": "string" + "externalLink": { + "type": "string" + }, + "channelId": { + "type": "string" + }, + "phoneNumberIdentification": { + "type": "string" + }, + "accessKey": { + "type": "string" + } + } + }, + "FieldFilterPart": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "value": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "LARGER", + "SMALLER", + "LARGER_EQUAL", + "SMALLER_EQUAL", + "EQUAL", + "NOT_EQUAL", + "ALL_IN", + "ANY_IN", + "NOT_IN", + "BETWEEN", + "NOT_BETWEEN", + "LIKE", + "NOT_LIKE", + "IN" + ] + }, + "on": { + "type": "string", + "enum": [ + "subscriber", + "payload" + ] + } + }, + "required": [ + "field", + "value", + "operator", + "on" + ] + }, + "StepFilter": { + "type": "object", + "properties": { + "isNegated": { + "type": "boolean" + }, + "type": { + "type": "string", + "enum": [ + "BOOLEAN", + "TEXT", + "DATE", + "NUMBER", + "STATEMENT", + "LIST", + "MULTI_LIST", + "GROUP" + ] }, - "channelId": { - "type": "string" + "value": { + "type": "string", + "enum": [ + "AND", + "OR" + ] }, - "phoneNumberIdentification": { - "type": "string" + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FieldFilterPart" + } } - } + }, + "required": [ + "isNegated", + "type", + "value", + "children" + ] }, "IntegrationResponseDto": { "type": "object", @@ -18408,6 +11380,10 @@ "credentials": { "$ref": "#/components/schemas/CredentialsDto" }, + "removeNovuBranding": { + "type": "boolean", + "description": "If true, the Novu branding will be removed from the Inbox component" + }, "check": { "type": "boolean" }, @@ -18419,112 +11395,6 @@ } } }, - "ChangeResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "_creatorId": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_organizationId": { - "type": "string" - }, - "_entityId": { - "type": "string" - }, - "enabled": { - "type": "boolean" - }, - "type": { - "enum": [ - "Feed", - "MessageTemplate", - "Layout", - "DefaultLayout", - "NotificationTemplate", - "NotificationGroup", - "TranslationGroup", - "Translation" - ], - "type": "string" - }, - "change": { - "type": "object" - }, - "createdAt": { - "type": "string" - }, - "_parentId": { - "type": "string" - } - }, - "required": [ - "_creatorId", - "_environmentId", - "_organizationId", - "_entityId", - "enabled", - "type", - "change", - "createdAt" - ] - }, - "ChangesResponseDto": { - "type": "object", - "properties": { - "totalCount": { - "type": "number" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChangeResponseDto" - } - }, - "pageSize": { - "type": "number" - }, - "page": { - "type": "number" - } - }, - "required": [ - "totalCount", - "data", - "pageSize", - "page" - ] - }, - "DataNumberDto": { - "type": "object", - "properties": { - "data": { - "type": "number" - } - }, - "required": [ - "data" - ] - }, - "BulkApplyChangeDto": { - "type": "object", - "properties": { - "changeIds": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "changeIds" - ] - }, "PaginatedResponseDto": { "type": "object", "properties": { @@ -18683,6 +11553,13 @@ "$ref": "#/components/schemas/ChannelSettings" } }, + "topics": { + "description": "Topics that subscriber belongs to", + "type": "array", + "items": { + "type": "string" + } + }, "isOnline": { "type": "boolean" }, @@ -18749,7 +11626,7 @@ "channels": { "type": "array", "items": { - "$ref": "#/components/schemas/SubscriberChannelDto" + "type": "string" } } }, @@ -18763,7 +11640,7 @@ "subscribers": { "type": "array", "items": { - "$ref": "#/components/schemas/CreateSubscriberRequestDto" + "type": "string" } } }, @@ -18794,6 +11671,12 @@ }, "data": { "type": "object" + }, + "channels": { + "type": "array", + "items": { + "type": "string" + } } } }, @@ -18902,6 +11785,26 @@ "triggers" ] }, + "PreferenceChannels": { + "type": "object", + "properties": { + "email": { + "type": "boolean" + }, + "sms": { + "type": "boolean" + }, + "in_app": { + "type": "boolean" + }, + "chat": { + "type": "boolean" + }, + "push": { + "type": "boolean" + } + } + }, "Preference": { "type": "object", "properties": { @@ -18969,86 +11872,198 @@ } }, "required": [ - "preference" + "preference" + ] + }, + "ChannelPreference": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "in_app", + "email", + "sms", + "chat", + "push" + ], + "description": "The type of channel that is enabled or not" + }, + "enabled": { + "type": "boolean", + "description": "If channel is enabled or not" + } + }, + "required": [ + "type", + "enabled" + ] + }, + "UpdateSubscriberPreferenceRequestDto": { + "type": "object", + "properties": { + "channel": { + "description": "The subscriber preferences for every ChannelTypeEnum for the workflow assigned.", + "allOf": [ + { + "$ref": "#/components/schemas/ChannelPreference" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Sets if the workflow is fully enabled for all channels or not for the subscriber." + } + } + }, + "UpdateSubscriberGlobalPreferencesRequestDto": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Enable or disable the subscriber global preferences." + }, + "preferences": { + "description": "The subscriber global preferences for every ChannelTypeEnum.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelPreference" + } + } + } + }, + "FeedResponseDto": { + "type": "object", + "properties": { + "totalCount": { + "type": "number" + }, + "hasMore": { + "type": "boolean" + }, + "data": { + "type": "array", + "items": { + "type": "string" + } + }, + "pageSize": { + "type": "number" + }, + "page": { + "type": "number" + } + }, + "required": [ + "hasMore", + "data", + "pageSize", + "page" + ] + }, + "UnseenCountResponse": { + "type": "object", + "properties": { + "count": { + "type": "number" + } + }, + "required": [ + "count" ] }, - "ChannelPreference": { + "MessageMarkAsRequestDto": { "type": "object", "properties": { - "type": { - "type": "string", + "messageId": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "markAs": { "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" + "read", + "seen", + "unread", + "unseen" ], - "description": "The type of channel that is enabled or not" - }, - "enabled": { - "type": "boolean", - "description": "If channel is enabled or not" + "type": "string" } }, "required": [ - "type", - "enabled" + "messageId", + "markAs" ] }, - "UpdateSubscriberPreferenceRequestDto": { + "MessageEntity": { "type": "object", "properties": { - "channel": { - "description": "The subscriber preferences for every ChannelTypeEnum for the workflow assigned.", - "allOf": [ - { - "$ref": "#/components/schemas/ChannelPreference" - } - ] - }, - "enabled": { - "type": "boolean", - "description": "Sets if the workflow is fully enabled for all channels or not for the subscriber." - } + } }, - "UpdateSubscriberGlobalPreferencesRequestDto": { + "MarkAllMessageAsRequestDto": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Enable or disable the subscriber global preferences." + "feedIdentifier": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "Optional feed identifier or array of feed identifiers" }, - "preferences": { - "description": "The subscriber global preferences for every ChannelTypeEnum.", - "type": "array", - "items": { - "$ref": "#/components/schemas/ChannelPreference" - } + "markAs": { + "enum": [ + "read", + "seen", + "unread", + "unseen" + ], + "type": "string", + "description": "Mark all subscriber messages as read, unread, seen or unseen" } - } + }, + "required": [ + "markAs" + ] }, "EmailBlockStyles": { "type": "object", "properties": { "textAlign": { + "type": "string", "enum": [ + "center", "left", - "right", - "center" - ], - "type": "string" + "right" + ] } - } + }, + "required": [ + "textAlign" + ] }, "EmailBlock": { "type": "object", "properties": { "type": { "enum": [ - "text", - "button" + "button", + "text" ], "type": "string" }, @@ -19079,12 +12094,11 @@ "type": "object", "properties": { "type": { + "type": "string", "enum": [ "primary", - "secondary", - "clicked" - ], - "type": "string" + "secondary" + ] }, "content": { "type": "string" @@ -19105,12 +12119,11 @@ "type": "object" }, "type": { + "type": "string", "enum": [ "primary", - "secondary", - "clicked" - ], - "type": "string" + "secondary" + ] } } }, @@ -19118,11 +12131,11 @@ "type": "object", "properties": { "status": { + "type": "string", "enum": [ "pending", "done" - ], - "type": "string" + ] }, "buttons": { "type": "array", @@ -19155,425 +12168,343 @@ "data" ] }, - "Actor": { - "type": "object", - "properties": { - "data": { - "type": "string", - "nullable": true - }, - "type": { - "enum": [ - "none", - "user", - "system_icon", - "system_custom" - ], - "type": "string" - } - }, - "required": [ - "data", - "type" - ] - }, - "NotificationDto": { + "NotificationGroup": { "type": "object", "properties": { "_id": { "type": "string" }, - "_templateId": { + "name": { "type": "string" }, "_environmentId": { "type": "string" }, - "_messageTemplateId": { - "type": "string" - }, "_organizationId": { "type": "string" }, - "_notificationId": { - "type": "string" - }, - "_subscriberId": { - "type": "string" - }, - "_feedId": { - "type": "string" - }, - "_jobId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - }, - "expireAt": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/Actor" - }, - "subscriber": { - "$ref": "#/components/schemas/SubscriberResponseDto" - }, - "transactionId": { - "type": "string" - }, - "templateIdentifier": { - "type": "string" - }, - "providerId": { + "_parentId": { "type": "string" + } + }, + "required": [ + "name", + "_environmentId", + "_organizationId" + ] + }, + "DigestRegularMetadata": { + "type": "object", + "properties": { + "amount": { + "type": "number" }, - "content": { - "type": "string" + "unit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] }, - "subject": { + "digestKey": { "type": "string" }, - "channel": { + "type": { + "type": "string", "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], - "type": "string" + "regular", + "backoff" + ] }, - "read": { + "backoff": { "type": "boolean" }, - "seen": { - "type": "boolean" + "backoffAmount": { + "type": "number" }, - "deleted": { + "backoffUnit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] + }, + "updateMode": { "type": "boolean" + } + }, + "required": [ + "type" + ] + }, + "TimedConfig": { + "type": "object", + "properties": { + "atTime": { + "type": "string" }, - "deviceTokens": { + "weekDays": { "type": "array", "items": { - "type": "string" + "type": "string", + "enum": [ + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday", + "sunday" + ] } }, - "cta": { - "$ref": "#/components/schemas/MessageCTA" + "monthDays": { + "type": "array", + "items": { + "type": "string" + } }, - "status": { + "ordinal": { "type": "string", "enum": [ - "sent", - "error", - "warning" + "1", + "2", + "3", + "4", + "5", + "last" ] }, - "payload": { - "type": "object", - "description": "The payload that was used to send the notification trigger" + "ordinalValue": { + "type": "string", + "enum": [ + "day", + "weekday", + "weekend", + "sunday", + "monday", + "tuesday", + "wednesday", + "thursday", + "friday", + "saturday" + ] }, - "overrides": { - "type": "object", - "description": "Provider specific overrides used when triggering the notification" + "monthlyType": { + "type": "string", + "enum": [ + "each", + "on" + ] } - }, - "required": [ - "_templateId", - "_environmentId", - "_messageTemplateId", - "_organizationId", - "_notificationId", - "_subscriberId", - "_feedId", - "_jobId", - "transactionId", - "content", - "channel", - "read", - "seen", - "deleted", - "cta", - "status", - "payload", - "overrides" - ] + } }, - "FeedResponseDto": { + "DigestTimedMetadata": { "type": "object", "properties": { - "_id": { - "type": "string" + "amount": { + "type": "number" }, - "name": { - "type": "string" + "unit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] }, - "identifier": { + "digestKey": { "type": "string" }, - "_environmentId": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "timed" + ] }, - "_organizationId": { - "type": "string" + "timed": { + "$ref": "#/components/schemas/TimedConfig" } }, "required": [ - "name", - "identifier", - "_environmentId", - "_organizationId" + "type" ] }, - "UnseenCountResponse": { + "DelayRegularMetadata": { "type": "object", "properties": { - "count": { + "amount": { "type": "number" + }, + "unit": { + "type": "string", + "enum": [ + "seconds", + "minutes", + "hours", + "days", + "weeks", + "months" + ] + }, + "type": { + "type": "string", + "enum": [ + "regular" + ] } }, "required": [ - "count" + "type" ] }, - "MessageMarkAsRequestDto": { + "DelayScheduledMetadata": { "type": "object", "properties": { - "messageId": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } + "type": { + "type": "string", + "enum": [ + "scheduled" ] }, - "markAs": { - "enum": [ - "read", - "seen", - "unread", - "unseen" - ], + "delayPath": { "type": "string" } }, "required": [ - "messageId", - "markAs" + "type", + "delayPath" ] }, - "MessageEntity": { - "type": "object", - "properties": {} - }, - "MarkAllMessageAsRequestDto": { + "MessageTemplate": { "type": "object", "properties": { - "feedIdentifier": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ], - "description": "Optional feed identifier or array of feed identifiers" - }, - "markAs": { - "enum": [ - "read", - "seen", - "unread", - "unseen" - ], - "type": "string", - "description": "Mark all subscriber messages as read, unread, seen or unseen" - } - }, - "required": [ - "markAs" - ] + + } }, - "MessageResponseDto": { + "NotificationStepVariant": { "type": "object", "properties": { "_id": { "type": "string" }, - "_templateId": { - "type": "string" - }, - "_environmentId": { - "type": "string" - }, - "_messageTemplateId": { + "uuid": { "type": "string" }, - "_organizationId": { + "name": { "type": "string" }, - "_notificationId": { + "_templateId": { "type": "string" }, - "_subscriberId": { - "type": "string" + "active": { + "type": "boolean" }, - "subscriber": { - "$ref": "#/components/schemas/SubscriberResponseDto" + "shouldStopOnFail": { + "type": "boolean" }, "template": { - "$ref": "#/components/schemas/WorkflowResponse" - }, - "templateIdentifier": { - "type": "string" - }, - "createdAt": { - "type": "string" + "$ref": "#/components/schemas/MessageTemplate" }, - "lastSeenDate": { - "type": "string" + "filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StepFilter" + } }, - "lastReadDate": { - "type": "string" + "_parentId": { + "type": "object" }, - "content": { + "metadata": { "oneOf": [ { - "$ref": "#/components/schemas/EmailBlock" + "$ref": "#/components/schemas/DigestRegularMetadata" }, { - "type": "string" + "$ref": "#/components/schemas/DigestTimedMetadata" + }, + { + "$ref": "#/components/schemas/DelayRegularMetadata" + }, + { + "$ref": "#/components/schemas/DelayScheduledMetadata" } ] }, - "transactionId": { - "type": "string" - }, - "subject": { - "type": "string" - }, - "channel": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], - "type": "string" - }, - "read": { - "type": "boolean" - }, - "seen": { - "type": "boolean" - }, - "email": { + "replyCallback": { + "type": "object" + } + } + }, + "NotificationStep": { + "type": "object", + "properties": { + "_id": { "type": "string" }, - "phone": { + "uuid": { "type": "string" }, - "directWebhookUrl": { + "name": { "type": "string" }, - "providerId": { + "_templateId": { "type": "string" }, - "deviceTokens": { + "active": { + "type": "boolean" + }, + "shouldStopOnFail": { + "type": "boolean" + }, + "template": { + "$ref": "#/components/schemas/MessageTemplate" + }, + "filters": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/StepFilter" } }, - "title": { - "type": "string" - }, - "cta": { - "$ref": "#/components/schemas/MessageCTA" - }, - "_feedId": { - "type": "string", - "nullable": true + "_parentId": { + "type": "object" }, - "status": { - "type": "string", - "enum": [ - "sent", - "error", - "warning" + "metadata": { + "oneOf": [ + { + "$ref": "#/components/schemas/DigestRegularMetadata" + }, + { + "$ref": "#/components/schemas/DigestTimedMetadata" + }, + { + "$ref": "#/components/schemas/DelayRegularMetadata" + }, + { + "$ref": "#/components/schemas/DelayScheduledMetadata" + } ] }, - "errorId": { - "type": "string" - }, - "errorText": { - "type": "string" - }, - "payload": { - "type": "object", - "description": "The payload that was used to send the notification trigger" - }, - "overrides": { - "type": "object", - "description": "Provider specific overrides used when triggering the notification" - } - }, - "required": [ - "_templateId", - "_environmentId", - "_messageTemplateId", - "_organizationId", - "_notificationId", - "_subscriberId", - "createdAt", - "content", - "transactionId", - "channel", - "read", - "seen", - "cta", - "status", - "errorId", - "errorText", - "payload", - "overrides" - ] - }, - "MarkMessageActionAsSeenDto": { - "type": "object", - "properties": { - "status": { - "enum": [ - "pending", - "done" - ], - "type": "string", - "description": "Message action status" + "replyCallback": { + "type": "object" }, - "payload": { - "type": "object", - "description": "Message action payload" + "variants": { + "$ref": "#/components/schemas/NotificationStepVariant" } - }, - "required": [ - "status" - ] + } }, - "CreateFeedRequestDto": { + "NotificationTriggerVariable": { "type": "object", "properties": { "name": { @@ -19584,114 +12515,188 @@ "name" ] }, - "CreateLayoutResponseDto": { + "NotificationTrigger": { "type": "object", "properties": { - "_id": { + "type": { + "type": "string", + "enum": [ + "event" + ] + }, + "identifier": { "type": "string" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTriggerVariable" + } + }, + "subscriberVariables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationTriggerVariable" + } } }, "required": [ - "_id" + "type", + "identifier", + "variables" ] }, - "GetLayoutResponseDto": { + "WorkflowResponse": { "type": "object", "properties": { "_id": { "type": "string" }, - "_organizationId": { + "name": { "type": "string" }, - "_environmentId": { + "description": { "type": "string" }, - "_creatorId": { - "type": "string" + "active": { + "type": "boolean" }, - "name": { - "type": "string" + "draft": { + "type": "boolean" }, - "identifier": { - "type": "string" + "preferenceSettings": { + "$ref": "#/components/schemas/PreferenceChannels" }, - "description": { - "type": "string" + "critical": { + "type": "boolean" }, - "channel": { - "enum": [ - "in_app", - "email", - "sms", - "chat", - "push" - ], + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "steps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationStep" + } + }, + "_organizationId": { "type": "string" }, - "content": { + "_creatorId": { "type": "string" }, - "contentType": { + "_environmentId": { "type": "string" }, - "variables": { + "triggers": { "type": "array", "items": { - "type": "object" + "$ref": "#/components/schemas/NotificationTrigger" } }, - "isDefault": { - "type": "boolean" + "_notificationGroupId": { + "type": "string" }, - "isDeleted": { + "_parentId": { + "type": "string" + }, + "deleted": { "type": "boolean" }, - "createdAt": { + "deletedAt": { "type": "string" }, - "updatedAt": { + "deletedBy": { "type": "string" }, - "_parentId": { - "type": "string" + "notificationGroup": { + "$ref": "#/components/schemas/NotificationGroup" + }, + "data": { + "type": "object" + }, + "workflowIntegrationStatus": { + "type": "object" } }, "required": [ + "name", + "description", + "active", + "draft", + "preferenceSettings", + "critical", + "tags", + "steps", "_organizationId", - "_environmentId", "_creatorId", - "name", - "identifier", - "channel", - "content", - "contentType", - "isDefault", - "isDeleted" + "_environmentId", + "triggers", + "_notificationGroupId", + "deleted", + "deletedAt", + "deletedBy" ] }, - "UpdateLayoutResponseDto": { + "MessageResponseDto": { "type": "object", "properties": { "_id": { "type": "string" }, - "_organizationId": { + "_templateId": { + "type": "string" + }, + "_environmentId": { + "type": "string" + }, + "_messageTemplateId": { + "type": "string" + }, + "_organizationId": { + "type": "string" + }, + "_notificationId": { + "type": "string" + }, + "_subscriberId": { + "type": "string" + }, + "subscriber": { + "$ref": "#/components/schemas/SubscriberResponseDto" + }, + "template": { + "$ref": "#/components/schemas/WorkflowResponse" + }, + "templateIdentifier": { "type": "string" }, - "_environmentId": { + "createdAt": { "type": "string" }, - "_creatorId": { + "lastSeenDate": { "type": "string" }, - "name": { + "lastReadDate": { "type": "string" }, - "identifier": { + "content": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmailBlock" + }, + { + "type": "string" + } + ] + }, + "transactionId": { "type": "string" }, - "description": { + "subject": { "type": "string" }, "channel": { @@ -19704,80 +12709,102 @@ ], "type": "string" }, - "content": { + "read": { + "type": "boolean" + }, + "seen": { + "type": "boolean" + }, + "email": { "type": "string" }, - "contentType": { + "phone": { "type": "string" }, - "variables": { + "directWebhookUrl": { + "type": "string" + }, + "providerId": { + "type": "string" + }, + "deviceTokens": { "type": "array", "items": { - "type": "object" + "type": "string" } }, - "isDefault": { - "type": "boolean" + "title": { + "type": "string" }, - "isDeleted": { - "type": "boolean" + "cta": { + "$ref": "#/components/schemas/MessageCTA" }, - "createdAt": { - "type": "string" + "_feedId": { + "type": "object", + "nullable": true }, - "updatedAt": { + "status": { + "type": "string", + "enum": [ + "sent", + "error", + "warning" + ] + }, + "errorId": { "type": "string" }, - "_parentId": { + "errorText": { "type": "string" + }, + "payload": { + "type": "object", + "description": "The payload that was used to send the notification trigger" + }, + "overrides": { + "type": "object", + "description": "Provider specific overrides used when triggering the notification" } }, "required": [ - "_organizationId", + "_templateId", "_environmentId", - "_creatorId", - "name", - "identifier", - "channel", + "_messageTemplateId", + "_organizationId", + "_notificationId", + "_subscriberId", + "createdAt", "content", - "contentType", - "isDefault", - "isDeleted" + "transactionId", + "channel", + "read", + "seen", + "cta", + "status", + "errorId", + "errorText", + "payload", + "overrides" ] }, - "UpdateLayoutRequestDto": { + "MarkMessageActionAsSeenDto": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "User defined custom name and provided by the user that will name the Layout updated." - }, - "identifier": { - "type": "string", - "description": "User defined custom key that will be a unique identifier for the Layout updated." - }, - "description": { - "type": "string", - "description": "User defined description of the layout" - }, - "content": { + "status": { + "enum": [ + "pending", + "done" + ], "type": "string", - "description": "User defined content for the layout." - }, - "variables": { - "description": "User defined variables to render in the layout placeholders.", - "type": "array", - "items": { - "type": "object" - } + "description": "Message action status" }, - "isDefault": { - "type": "boolean", - "description": "Variable that defines if the layout is chosen as default when creating a layout." + "payload": { + "type": "object", + "description": "Message action payload" } }, "required": [ - "identifier" + "status" ] }, "DeleteMessageResponseDto": { @@ -19802,7 +12829,19 @@ }, "CreateTopicResponseDto": { "type": "object", - "properties": {} + "properties": { + "_id": { + "type": "string", + "description": "The unique identifier for the Topic created." + }, + "key": { + "type": "string", + "description": "User defined custom key and provided by the user that will be an unique identifier for the Topic created." + } + }, + "required": [ + "key" + ] }, "CreateTopicRequestDto": { "type": "object", @@ -20019,135 +13058,10 @@ "name" ] }, - "GetTenantResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - }, - "_environmentId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "_id", - "identifier", - "_environmentId", - "createdAt", - "updatedAt" - ] - }, - "CreateTenantResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - }, - "_environmentId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "_id", - "identifier", - "_environmentId", - "createdAt", - "updatedAt" - ] - }, - "CreateTenantRequestDto": { - "type": "object", - "properties": { - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - } - }, - "required": [ - "identifier", - "name" - ] - }, - "UpdateTenantResponseDto": { - "type": "object", - "properties": { - "_id": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - }, - "_environmentId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "_id", - "identifier", - "_environmentId", - "createdAt", - "updatedAt" - ] - }, - "UpdateTenantRequestDto": { + "GeneratePreviewResponseDto": { "type": "object", "properties": { - "identifier": { - "type": "string" - }, - "name": { - "type": "string" - }, - "data": { - "type": "object" - } + } } }, diff --git a/src/funcs/cancelByTransactionId.ts b/src/funcs/cancel.ts similarity index 98% rename from src/funcs/cancelByTransactionId.ts rename to src/funcs/cancel.ts index 6198c6de..9589a631 100644 --- a/src/funcs/cancelByTransactionId.ts +++ b/src/funcs/cancel.ts @@ -29,7 +29,7 @@ import { Result } from "../types/fp.js"; * Using a previously generated transactionId during the event trigger, * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... */ -export async function cancelByTransactionId( +export async function cancel( client: NovuCore, transactionId: string, options?: RequestOptions, diff --git a/src/lib/config.ts b/src/lib/config.ts index b62e3d45..c8302a5a 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -55,7 +55,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0", - sdkVersion: "0.0.1-alpha.21", - genVersion: "2.461.4", - userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.21 2.461.4 1.0 @novu/api", + sdkVersion: "0.0.1-alpha.25", + genVersion: "2.462.1", + userAgent: "speakeasy-sdk/typescript 0.0.1-alpha.25 2.462.1 1.0 @novu/api", } as const; diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts index 91eb14be..7f057cee 100644 --- a/src/sdk/sdk.ts +++ b/src/sdk/sdk.ts @@ -2,7 +2,7 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { cancelByTransactionId } from "../funcs/cancelByTransactionId.js"; +import { cancel } from "../funcs/cancel.js"; import { trigger } from "../funcs/trigger.js"; import { triggerBroadcast } from "../funcs/triggerBroadcast.js"; import { triggerBulk } from "../funcs/triggerBulk.js"; @@ -126,11 +126,11 @@ export class Novu extends ClientSDK { * Using a previously generated transactionId during the event trigger, * will cancel any active or pending workflows. This is useful to cancel active digests, delays etc... */ - async cancelByTransactionId( + async cancel( transactionId: string, options?: RequestOptions, ): Promise { - return unwrapAsync(cancelByTransactionId( + return unwrapAsync(cancel( this, transactionId, options,